Цитата:
Сообщение от Malish aka 78
Попробывал дописать этот скрипт, что бы можно было добавлять сообщения. Вот что у меня получилось (ногами не пинать):
PHP код:
<?
$html_output=''; //переменная в которой будем собирать весь HTML код, для последубщего вывода
$messages = file('messages.dat'); // Читаем весь файл с сообщениями в переменную $messages
for($i=0;$i<=count($messages)-1;$i++) //проходим по всему массиву с сообщениями
{
$mess = split('<split>',$messages___91;$i___93;); // разбиваем сообщение по разделителю "<split>" на дату,имя и сообщение
$html_output.=sprintf('
<tr>
<td><b>%s</b><br>%s</td>
<td><i>%s</i></td>
</tr>',$mess___91;1___93;,$mess___91;0___93;,$mess___91;2___93;);
//здесь значения даты,имени и сообщения форматируются HTML тэгами, для форматированного вывода в броузере
}
?>
<html>
<head>
<title>
Гостевая книга v1.1
</title>
</head>
<body>
<table width="100%" border="1" cellpadding="10" cellspacing="1">
<tr>
<td>
<form method="POST" action="index.php">
<b><font face="Tahoma" size="2">Имя:</font>
</b><input type="text" name="name" size="29"><p>
<textarea rows="9" name="text" cols="51"></textarea></p>
<input type="submit" value="Отправить" name="knopka">
</form>
<?php
if(isset($_POST___91;'knopka'___93;))
{$handle = fopen("messages.dat", "a");
$spl = "<split>";
$date = date("F j, Y, g:i a");
$name = $_POST___91;'name'___93;;
$text = $_POST___91;'text'___93;;
$zapisat ="$date $spl $name $spl $text \n";
fwrite($handle,$zapisat);
fclose($handle);
}
?>
</td>
</tr>
<tr>
<td align="center">
<table cellpadding="5" cellspacing="5">
<?=$html_output?> <!-- выводим все сообщения -->
</table>
</td>
</tr>
</table>
</body>
</html>
|
Молодец.
Только нельзя доверять тому что шлют с внешнего мира на сервер.
Предлагаю добавить addslashes для защиты от специально составленных символов и htmlspecialchars для защиты от взлома дизайна сюда:
$name =
htmlspecialchars(
addslashes($_POST['name']));
$text =
htmlspecialchars(
addslashes($_POST['text']));
, так же могут подменить POST значение , предлагаю добавить после условия "if(isset($_POST['knopka']))", ещё одно условие на проверку значения $_POST['knopka'], т.е.
if(addslashes($_POST['knopka'])==="Отправить")