Ваш первый Сайт С использованием РНР-скриптов

СОЗДАНИЕ КНИГИ ОТЗЫВОВ ПОСЕТИТЕЛЕЙ САЙТА

Теперь напишем код для книги отзывов. В браузер будет выведена одно­колонная таблица с последними 10 отзывами (можете сделать больше или меньше). Далее расположится форма с текстовыми полями для ввода данных посетителя. Ну и потом следует текстовая область для ввода отзыва и кнопка для запуска программы обработки данных. Сделает все это программа Soobshenie.php. На рис. 6.5 изображена часть сграницы statji.php, а именно, то место где расположены отзывы, поля для ввода данных от посетителя и текстовая область с кнопкой для ввода и отправки отзыва.

СОЗДАНИЕ КНИГИ ОТЗЫВОВ ПОСЕТИТЕЛЕЙ САЙТА

Но сначала в рабочей папке htdocs создайте новую подпапку otzivi. Там у нас будут храниться текстовые файлы отзывов. В уже знакомом нам РНР - редакторе создайте новый файл и сохраните его под названием soobshe- nie.php. Вообще можете назвать этот файл как угодно, например otziv.php. Естественно, и вставлять его на страницы нужно будет под этим именем. Но я назвал файл вывода отзывов soobshenie.php. С этим именем, при помо­щи оператора include, я его и вставил на страницу statji.php. Код вам должен быть уже понятен. Данная программа (листинг 6.4) осуществляет вывод в ко­лонку отзывов, сохраненных в обыкновенном текстовом файле, выводит форму для ввода данных пользователем и обрабатывает эти данные.

Листинг 6.4 (файл Soobshenie.Php) <Html> <Head>

<Ш1е>Сообщения<АШе>

</head>

<body>

<div Id="loIoЗ">Здecь вы можете оценить подборку и оставить свое Coo6UieHHe</div><br>

<table width="50%" border="2" bordercolor=" green" bgcoIor="silver"><trxtd> <?php

$filen=" otzi vi/$ind ".". txt"; $chislo=10;

If(!file_exists($filen)) {

$open=fopen($filen, "w");

Fclose($open);

}

$lolo=file($filen); krsort($lolo);

Foreach($lolo as $line2)

{

$j++;

If($j<=$chislo) {

Echo $line2."<brxbr>"; }

}

Echo "</tdx/trx/table>";

If(isset($_POST [ 'otziv* ]))

{

$ind=$_POST[4nd'];

$filen="otzivi/$indM. M.txt";

$otziv=$_POST['otziv'];

$data=date(,d. m.Y');

$iшja=$_POST['imja,];

$adress=$_POST['adress'];

$nov=fopen($filen, "a");

$danie=strip_tags($imja).M e-mail: ".strip_tags($adress)." Добавлено: ".$data; fwrite($nov, "<B

Style=color:#000066>M.$danie."</B><br>".strip_tags($otziv).chr(13).chr(10)); fclose($nov);

Echo "<a href=# onClick='history. back()'xbutton>BepHyTbCH</buttonx/a>";

}

Else {

Echo "<form action=soobshenie. php method=POST> Ваше Имя: <input type=text name=imjaxbr> Ваш e-mail: <input type=text name=adress><br> Ваше Сообщение<Ьг>

<textarea name=otziv cols=50 rows=15 wrap=virtualx/textarea> <input type=hidden name=ind value=$ind>

<input type=SUBMIT Уа1Ие=Добавить>

</form>"; }

?>

</body> </html>

Я объясню лишь некоторые строки кода:

<div id="lolo3">3decb Вы можете оценить подборку и оставить свое сооб - UEHue</div><br> - выводим надпись в контейнере <div>. Идентификатор 1о1оЗ задает тип и цвет шрифта надписи. Этот идентификатор и его парамет­ры должны быть указаны в файле стилей stil.css. А сам файл стилей указан на странице statji.php, куда будет вставлен этот код;

< table width="50%" border^" 2 " bordercolor= "green" bgcolor= "silver "> <tr><td> - делаем одноколонную таблицу, задаем ее цвет линий и фона;

$fden="otzivi/$ind".".txt"; - присваиваем переменной $fden путь к текстовому файлу отзывов. Он у нас будет находиться в папке otzivi. Название этого фай­ла будет соответствовать названию той страницы, куда мы вставим этот код. Название страницы без расширения у нас в переменной Bind. Эта переменная у нас определена на странице statji.php. А поскольку данный код мы вставля­ем именно на ту страницу, то переменная $ind будет определена и в этом ко­де. Расширение «.txt» мы присоединяем к названию файла при помощи точки или оператора конкатенации. Само расширение тоже, естественно, должно начинаться с точки. В итоге в нашем случае текстовый файл с отзывами бу­дет называться statji.txt,

$chislo=10; - в этой переменной будем хранить число вывода последних от­зывов в браузер. Можете изменить его на свое усмотрение;

If(!fde_exists($fden)) - если файла с отзывами еще нет (данный код запускает­ся впервые), то он будет создан (следующие две строки в фигурных скобках под номером 1);

Ц

$Ореп = fopen (Sfilen, "w"); fclose(Sopen); i}

$lolo=fde($fden); - при помощи функции fde создаем массив строк (отзывов) и присваиваем этот массив переменной $lolo

Krsort(Slolo); - сортируем массив в обратной последовательности, чтобы бо­лее свежие отзывы были наверху;

Foreach($lolo as $line2) - далее идет известный вам цикл, который построчно выводит 10 отзывов в окно браузера. Принцип его работы я объяснять не бу­ду, поскольку это уже было сделано в прошлых главах;

2{ $j++;

If(Sj<=Schislo)

3{

Echo $Нпе2. "<br><br> ";

3} 2} ■

Echo "</td></tr></table>"; - закрываем таблицу с отзывами посетителей;

If(isset($_POST['otziv'])) - далее идет условие. Мы проверяем, получен ли элемент суперглобального массива $_POST['otziv']. Дело в том, что именем Otziv мы назвали текстовую область формы (форма создается ниже, в конце этого же кода), в которую посетитель будет вводить новый отзыв. Программ­ный код в фигурных скобках под номером 4 выполнится только тогда, когда посетитель записал свой отзыв и нажал на кнопку формы «Добавить». Если кнопка еще не нажата и данные формы не отправлены, этот программный код (в фигурных скобках под номером 4) выполняться не будет!

4{

$ind=$ POST ['ind']; - здесь мы переменной $ind присваиваем значение эле­мента суперглобального массива $ POST ['ind']. Вы спросите, а зачем мы это делаем, ведь этой переменной мы присвоили название файла, куда мы встав­ляем весь этот код листинга 6.4? Дело в том, что при нажатии кнопки Доба­вить» посетитель перейдет снова на эту же страницу (Soobshenie.php), по­скольку в теге формы <form> (см. окончание этого кода) мы указали именно эту страницу, а не statji.php, где мы определили переменную Bind. Получает­ся, что после нажатия кнопки «Добавить», переменная $ind опять будет не определена. Но до нажатия кнопки эта переменная еще будет иметь значе­ние statji. Как же это значение вновь передать на эту же страницу soobshe­nie.php после нажатия кнопки? Сделать это просто. В форме у нас есть скры­тое поле (Type=hiddenj с именем name=ind. С помощью этого поля в парамет­ре value мы и передаем при отправке данных значение statji на эту страницу. Как и все передаваемые из формы данные, это значение помещается в супер­глобальный массив $_POST (в теге формы был выбран метод передачи Method=POST). И поскольку мы присвоили скрытому полю имя ind, значение Statji будет находиться в элементе этого массива $ POST ['ind']. Вот и все, те­перь значение statji мы опять присваиваем как бы вновь созданной перемен­ной $ind;

$fden="otzivi/$ind".".txt"; - снова присваиваем переменной $filen путь к тек­стовому файлу отзывов;

$otziv=$_POST['otziv']; - переменной Sotziv присвоено значение супергло­бального массива $_POST['otziv'], в котором находится введенный посетите­лем отзыв;

$data=date('d.m.Y'); - в переменной $data сохраняем текущую дату в форма­те: день. месяц. год

$imja=$_POST['imja']; - в переменной $imja сохраняем содержимое тексто­вого поля с именем name=imja, куда посетитель вводит имя;

$adress=$_POST['adress'J; - в переменной $ adress сохраняем содержимое текстового поля с именем name=adress, куда посетитель вводит свой e-mail;

$nov=fopen($fden, "а"); - итак, данные из формы получены. Теперь их надо записать в текстовый файл для отзывов. Открываем файл для записи. Второй аргумент ("А") функции fopen говорит о том, что новые данные будут запи­сываться в конец файла. Открытому файлу присваиваем идентификатор $nov;

$danie=strip_tags($imja)." e-mail: ".strip_tags($adress)." Добавлено: ".$data; - Создаем строку с полученными данными от посетителя и датой отправки. Эту строку мы добавим перед отзывом. В начале строки ставим введенное посе­тителем имя. Функция strip tags удалит все теги и слэши, если вдруг они бы­ли введены посетителем. Зачем это нужно, объяснено в разд. 6.1. Затем, ис­пользуя точку (оператор конкатенации) и кавычки для ввода текста, ставим введенный пользователем e-mail. После этого добавляем в эту строку теку­щую дату; •

Fwrite($nov, "<В sty le=color :#000066>".$danie." </В>

<br>".strip_tags($otziv).chr(13).chr(10)); - используя функцию fwrite, записы­ваем в текстовый файл для отзывов то, что написано во втором аргументе этой функции. А второй аргумент у нас длинный (в одну строчку не уместил­ся). На самом деле ничего сложного в нем нет. Созданную в прошлой про­граммной строке переменную Sdanie помещаем между тегами <В> и </В>, которые задают тип и цвет шрифта. Это сделано для красоты. Цвет и шрифт можете задать свой. Оператор <br> отделяет строку Sdanie от текста отзыва, который у нас в переменной $otziv. Этот текст тоже нужно обработать функ­цией strip Jags. Далее идут 2 символа chr(13) и chr(10). Вместе они обозна­чают перевод строки. Нам нужно, чтобы отзыв очередного посетителя начал­ся с новой строки. Вместо данных символов можно применить символ «п», как мы это делали при записи в файл новостей в прошлой главе, но использо­вание комбинации из двух символов chr(13) и chr(10) более предпочтитель­но;

Fclose($nov); - после записи закрываем текстовый файл;

Echo "<а href=# onClick='history. back()'><Ъииоп>Вернуться</ЬиПоп></a> "; - Вывод в браузер кнопки для возврата на предыдущую страницу. Запомните эту строку кода. После того как мы нажмем кнопку «Добавить» для отправки данных в форме, мы попадем на эту же страницу soobshenie.php. Но нам же нужно вернуться опять на страницу statji.php. Для этого и существует кнопка «Вернуться». Данная команда универсальна. С какой бы страницы вы ни пришли, т. е. в какую бы страницу вы ни вставили бы данный код soobshe­nie.php, вы все равно вернетесь на предыдущую страницу;

4} - конец блока команд, который будет выполняться только тогда, когда в форме нажата кнопка «Добавить»-,

Else - если кнопка «Добавить» еще не нажата, то просто загрузится форма для ввода данных и отзыва посетителя. Эта форма появится сразу после за­грузки страницы со статьями statji.php, поскольку страница с этим кодом (soobshenie.php) будет вставлена в нее при помощи оператора include

(см. листинг 6.3);

{

Echo "<form action=soobshenie.php method=POST> - далее выводится форма.

Смысл вводимых элементов (2 текстовых поля для ввода имени и адреса,

Текстовой области для записи отзыва, скрытого поля и кнопки «Добавить»)

Разобран выше в этом коде.

Ваше Имя: <input type=text name=imja><br>

Ваш e-mail: <input type=text name=adress><br>

Ваше Сообщение<Ьг>

<textarea name=otziv cols=50 rows=15 wrap=virtual> </textarea> <input type=hidden name=ind value=$ind> <input type=SUBMIT Уа1Ие=Добавить>

</form> "; }

?>

</body> </html>

Ваш первый Сайт С использованием РНР-скриптов

Создание сайта

Итак, при помощи данной книги вы создали сайт. Конечно, сайт в таком виде не очень привлекателен, так как он создавался исключительно для при­мера. Но используя полученные знания в этой книге, …

ИСПОЛЬЗОВАНИЕ СЕРВИСА ROBOXCHANGE ДЛЯ ОПЛАТЫ

Если у вас нет никакой возможности получить персональный аттестат, или просто лень это делать, то для оплаты товаров со своего сайта вы можете воспользоваться сервисом Roboxchange. Этот сервис дает возможность …

ИСПОЛЬЗОВАНИЕ СЕРВИСА WEB MERCHANT INTERFACE ДЛЯ ОПЛАТЫ

Сервис Web Merchant Interface позволяет получать денежные средства на свои электронные кошельки от клиентов при оплате ими электронных товаров на вашем сайте. Электронные кошельки WebMoney и Yandex мы с вами …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.