Воронеж инструкция по выживанию

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



как написать скрипт

Сообщений 1 страница 10 из 13

1

Часто на форумах сайтоклепателей создаются темы типа "как научиться писать скрипты" и где взять так называемую "основу, каркас"?
Прежде всего - что есть собственно скрипт? По сути дела это маленькая программа. Она записана в самый обычный текстовый файл, и последовательно, с верхней строчки до нижней, читается интерпретатором. Может состоять всего лишь  из одного файла но чаще для удобства код разбивают на несколько файлов. Текст разбивается на строчки которые содержат команды, которые исполняет интерпретатор. Команд этих не так уж много, и все они отвечают за самые основные действия.
Главным образом -  выводят текст, принимают, записывают и читают.

0

2

Для начала пробуем написать самую маленькую и простенькую программку. Для чего сгодится страничка на хостинге (бесплатном ясный хрен) или можно создать одностраничный сайт в компьютере и практиковаться. Пусть она будет называться как угодно да хоть - form.html. Содержимое ее будет такое:

<html>

<head>

<title>Форма ввода</title>

</head>

<body>

<b>Введите ваше сообщение!</b><br>

<form action=index.php method=post>

<input type=text name=text>

<input type=submit value=Написать>

</form><br>

<a href=index.php>Назад</a>

</body>

</html>
Как видно из всего она начинается с кода <html> и заканчивается </html> другими словами это html теги. Вот вам и основа вот вам и каркас. Между ними и будем вставлять собственно php код.

0

3

Первый пункт у нас заключается в выводе текста. Как его сделать? Прежде, чем разобрать строку с командой, интерпретатор должен знать, где начинается, а где заканчивается этот наш php-код. Об этом ему говорят специальные указатели. Начало кода обозначается как <?php . Конец кода - ?> . То есть, между ними пишется код.

0

4

Вывод
Теперь нам нужно написать строку с командой на вывод текста. Команда эта пишется как echo . Она говорит интерпретатору, что необходимо что-то написать. А после самой команды указывается, что именно выводить. Если нужно вывести просто текст, то его записывают в одинарные или двойные кавычки. Получиться нечто вроде такого: echo 'И ЗДЕСЬ ПИШЕМ ЛЮБОЙ ТЕКСТ (да хоть х@й)!' . Ещё стоит добавить, что строки необходимо как-то разделять между собой. За их разделение отвечает знак ; . Его следует ставить в конце каждой строки (за некоторым исключениями). Вот у нас получается код, выводящий слово:

<?php

echo 'х@й!';

?>

0

5

В скриптах, которые более сложнее, чем этот, есть одна вещь, без которой никак нельзя обойтись. Для удобной работы с данными их заключают в некое место, которое имеет свое имя. Вот это некое место с данными называется переменной. Один раз записав в нее данные, их можно вызывать и изменять в любой части скрипта при помощи одного лишь короткого имени! Переменная создается вот так: $a='х@й'; . Знак доллара дает знать, что за ним идет название переменной, а знак приравнивания записывает в нее данные аналогично тому, как мы их выводим с помощью команды echo . Кстати, и с ее помощью мы выводим то, что записано в переменную. Попробуем усложнить написанный выше скрипт:

<?php

$a='х@й!';

echo $a;

?>

при выводе переменной в кавычки ее заключать не надо.

Отредактировано внук сабанеева (2014-12-28 07:35:49)

0

6

Ввод
За ввод данных пользователем у нас будет отвечать такой вот html-код:
<form action=index.php method=post>

<input type=text name=text>

<input type=submit value=send>

</form>

Этот код создает форму для отправки сообщения. Обратим внимаение на участок первой строки: action=index.php . В параметр action мы пишем имя скрипта, в который хотим послать введенные в форме данные. name=text - это имя, под которым эти данные можно открыть в нашем скрипте.
То, что передалось с формы, записывается в скрипте в глобальном массиве $_REQUEST . Массив - это тоже переменная. Но она содержит в себе сразу несколько значений, записанных в нее под разными именами. Впрочем, не буду разъяснять это подробно, ибо важно, что бы вы уловили сам принцип. Если мы задали name=text, то данные в массиве можно будет вызвать так: echo $_REQUEST['text']; . Если мы задали данные как name=send, то вызываем их в скрипте как echo $_REQUEST['send']; . Так же мы можем присвоить данные из массива переменной - $a=$_REQUEST['text']; .

0

7

Зная это, мы можем вывести текст, который написали в форме. И так, допустим, у нас есть html-файл с вышеприведенным кодом формы. Неважно, как он называется. И есть файл index.php. В нем пишем такое содержимое:

<?php

echo $_REQUEST['text'];

?>
Так мы выведем все, что напишем в форме.

0

8

Запись
Вывести то мы вывели! Но вот как это все записать куда-нибудь в надежное место для хранения? Например, в файл. Команды для этого в php не существует. Однако в нем есть такая предустановленная функция ! Называется она file_put_contents . Применять ее следует так: file_put_contents('file.txt','Х@й'); То, что написано в скобочках - параметры функции. Параметры перечисляются через запятые. В нашем случае первый - путь к файлу, в который надо что-либо записать. Второй же параметр - то, что надо записать.

В принципе, параметры можно передавать внутри переменных:

<?php

$lnk='file.txt';

$text='х@й';

file_put_contents($link,$text);

?>

Это, по сути, отдельная программа, которую можно вызывать в php, зная ее имя и то, какие параметры туда надо вводить. Они значительно облегчают жизнь в решении всяческих проблем при написании скриптов. Их существует великое множество под всякие нужды. Посмотреть их можно, к примеру, на php.su .

Таким образом мы можем записать то, что ввели в форме, в файл:

<?php

file_put_contents('file.txt',$_REQUEST['text']);

?>

0

9

Этот код не содержит вывода данных на экран, но он записывает данные в файл. Если файла не существует, функция его создаст. Но лучше создать его самому с нужными правами для записи, т.к. на некоторых хостингах по умолчанию создаваемым файлам присваиваются такие права, которые впоследствии не позоволят в него что-либо записать. Придеться менять права вручную.

Чтение из файла данных.
Для этого в php предусмотрена своя функция - file_get_contents . И требует они только один параметр - путь к файлу. Каким образом мы с помощью этой функции прочтем содержимое файла?
А вот каким - $text=file_get_contents('file.txt'); . Оказывается, функция может возвращать данные, которые можно записать в переменную. Или же вывести на экран с помощью команды echo - echo file_get_contents('file.txt'); . В нашем случае возвращаемые данные - содержимое файла.

Пишем скрипт!

Про страничку с html кодом формы было написано выше. Пусть она так и будет называться form.html. Содержимое ее так же оставим без изменения:

<html>

<head>

<title>Форма ввода</title>

</head>

<body>

<b>Введите ваше сообщение!</b><br>

<form action=index.php method=post>

<input type=text name=text>

<input type=submit value=Написать>

</form><br>

<a href=index.php>Назад</a>

</body>

</html>

Вставляем Файл, в который будем записывать данные file.txt.

И сам наш скрипт index.php. Вот его код:

<?php

echo '<p align=center>Сообщения</p>';

echo '<a href=form.html>Оставить сообщение</a><br>';

$lnk='file.txt';

$w=$_REQUEST['text'];

file_put_contents($link,'<p>'.$w.'</p>',FILE_APPEND);

echo '<p>';

echo file_get_contents($lnk);

echo '</p>';

?>

0

10

Это весь скрипт! Как он работает. Первое - треттий параметр функции file_put_contents - FILE_APPEND . Он отвечает за то, что при записи данных в файл он не перезаписывался. Новые данные записываются просто в конец файла. Второе находится во втором параметре той же функции - '<p>'.$w.'</p>' . Дело в том, что с помощью точек можно совмещать разные строки и переменные.
Так же при входе на скрипт вы можете увидеть помимо всех данных сообщение об несуществующей переменной - Notice: Undefined index: text in /usr/home/www/index.php on line 5 или что-то вроде того. Дело в том, что пока мы не написали сообщение, элемент массива $_REQUEST['text'] остается необъявленным. Эту ошибку можно заглушить с помощью знака @ таким образом - @$_REQUEST['text'] .

0