Код магнитолы

Оппозиция в России ?

Россия и Украина

Мысли в слух...

Российская...власть ?

Skype

Создаём сайт

JS - телефон

Любимые сериалы

Гостевая


На главную



Теперь посмотрим, как выглядит страничка с формой обратной связи, которая будет обрабатываться файлом action.php:
index.php

<!doctype html>
<html lang="ru-RU">
<head>
<meta charset="utf-8" />
</head>
<body bgcolor="e0eee0">
<?php
require_once('dbconnect.php');                    // открываем соединение с сервером      
try
{
  $sql="SELECT * FROM comm ORDER BY dt DESC";     // выбор всех записей из таблицы, начиная с последней по времени dt
  $q = $pdo->query($sql);
  $q->setFetchMode(PDO::FETCH_ASSOC);             // возвращаем набор результатов как массив
}
catch(PDOException  $e){echo'<font color="coral">Данные не выбраны</font>'.$e->getMessage();}
$num=0;                                           // количество сообщений
while($row = $q->fetch()):                        // отслеживаем выборку в цикле
  $id=$row['id'];                                 // фиксируем номер отзыва/записи
  if($id%2){$color="#ffffff";}	                  // цвет для четных записей   
  else{$color='#ffffcc';}                         // цвет для нечетных записей
?>
<!-- вывод данных на страничку-->
<table border='0' width='80%' bgcolor='<?php echo $color ?>'> 
 <tr><td><i><?php echo $row['data'] ?></i></td></tr>
 <tr><td><b><?php echo $row['name']?></b></td></tr> 
 <tr><td><?php echo $row['mesage'] ?></td></tr>
</table>
<?php
endwhile;
$num++;
if($num==0){echo'<font color="coral">Отзывов нет</font>';} 
?>
<!--форма отправки сообщения-->
<table>
<form name="forma" action="action.php" method="POST">
  <tr>
    <td><b>Ваш ник/логин:</b></td>
    <td><input name="name" rows="1" cols="30" title="Сюда - имя"></td>
  </tr>
  <tr>
    <td><b>Ваше сообщение:</b></td>
    <td><textarea name="mesage" rows="10" cols="50" title="Сюда - отзыв"></textarea></td>
  </tr> 
  <input type="hidden" name="botas" value="">
  <tr>
    <td><img src="capcha.php" width="100" height="30"></td>
    <td></td>
  </tr> 
  <tr>
    <td><b>Символы с картинки :</b></td>
    <td>
      <input class="input" type="text" name="norobot"> 
      <input type="submit" class="button" value="Добавить"> 
      <input type="reset" class="button" value="Очистить">
    </td>
  </tr>
</form>
</table>
</body>
</html>
Как видим - ничего экстраординарного, обычная форма. Для акуратности она "упакована" в таблицу. Часть этого кода выделена другим цветом. Именно она отвечает за вывод содержимого таблицы 'comments' на страничку, перед формой обратной связи. Для акуратности, содержимое таблицы так-же упаковано...в таблицу (не каламбур).
И так - у вас есть форма и есть таблица comments, которую ваши гости заполнят при помощи вышеупомянутой формы. Если при оформлении файлов мы не наделали синтаксических ошибок, то в результате всё будет выглядеть примерно так. Для наглядности комментарий упакован в 'border'.

Несколько слов о неприятном.
Как показывает практика - 6 ($len = 6;) символов в капче служат достаточным препятствием для спам-ботов. Но они то-же умнеют. Можно добавить элемент модерации отзывов, если вам не лень каждый раз навещать MySQL-базу. На начало 2020-го года существует неплохой, хотя и достаточно сложный, способ защиты от спама - KeyCaptcha. Порядок использования приведён здесь.

А что там в кавычках?

Это небольшое отступление связано с использованием в РНР-скрипте разного типа кавычек - одновременно. Остановимся мы на двойных и одиночных. Есть ещё обратные, но не стоит так глубоко лезть, ни к чему это.
Рассмотрим пример использования функции:
                 
$result = mysql_query("INSERT INTO kscount VALUES ('".$ip."','".$data."')");  
                                                  ('".$ip."',   NOW()   )");  		  
                                                  (  NOW()  ,'".$data."')"); 
Аргументом в функции у нас идёт строка - мы берём каждую её составную часть в двойные кавычки, чтобы интерпретатору было понятно, что это строка символов, в данном случае - инструкция.
А что-бы интерпретатору было понятно, что вместо переменных $ip и $data (это то-же набор символов) необходимо добавить их значения - их так-же берём в кавычки, теперь - одиночные (двойные у нас уже заняты). Но поскольку одиночные кавычки - это то-же строчные символы, то они попадают "внутрь" двойных. Точки вокруг переменных говорят интерпретатору, что их значения являются частью строки символов. Мой совет - начинайте с двойных кавычек.
Как видите - ничего сложного. Используйте редактор с подсветкой кода и 98% проблем будет снято. А ещё неплохо-бы подружится с индейцем племени Apache.

***

А теперь - небольшая интрига: добавлять отзывы на страничку можно без базы, файлов и РНР. Для этого необходимо познакомится с Java Script, DOM (Document Object Model) и динамичным HTML (DHTML). Но об этом

дальше...
...назад