Показать сообщение отдельно
Старый 23.06.2008, 08:41   #25
Ruble
Местный
 
Аватар для Ruble
 
Регистрация: 26.04.2006
Сообщений: 467
Вы сказали Спасибо: 57
Поблагодарили 52 раз(а) в 23 сообщениях
Отправить сообщение для Ruble с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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'])==="Отправить")
Ruble вне форума