Помогите с готевой книгой

Печать RSS
675


2000 лет д.н.э.
0
Что есть "не работает"?
читай про elseif и switch
S
Автор
Землянин
0
Вот код. По идее, если мы не нажимаем на клавишу "отправить", то скрипт пропускает запись данных в файл. А если нажимаем, то записывает.
А скрипт сильно сопротивляется и отказывается записывать данные в файл.
Что делать?
<?php
echo'<form action="?" method="post">
Имя:<input type="text" name="name"/></br>
Сообщение:<textarea name="message"></textarea>
<input type="submit" value="Отправить"/>
</form>';
$file = "../local/guest.dat";

if(isset($_POST['Submit']))
{
$name = $_POST['name'];
$message = $_POST['message'];
$name = htmlspecialchars($name);
$message = htmlspecialchars($message);
$text = "\n</br><b>$name</b>: $message</br>";
$sfile = fopen($file, 'a+');
fwrite($sfile, $text);
fclose($sfile);
}
?>
P.S. 81, elseif я знаю, а кейс я не знаю зачем здесь нужен
Изменил: SIR2100 (18.03.2011 / 23:56)
В

Пацак
0
А скрипт сильно сопротивляется и отказывается записывать данные в файл.
буянит? E
..м.б вместо a+ r+ надо...да и
if(isset($_POST['Submit']))
напиши
if(isset($_POST['submit']))

Добавлено через 00:22 сек.
вообще какая ошибка....
F

Землянин
0
id1 (18 Марта 2011 / 23:03)
буянит? E
..м.б вместо a+ r+ надо...да и
if(isset($_POST['Submit']))
напиши
if(isset($_POST['submit']))
Добавлено через 00:22 сек.
вообще какая ошибка....
Так в этом та разницы никакой нет.

Пацак
0
ты проверяешь иссетом submit. Такой переменной нету. Поэтому он и возвращает false.
Если тебе нужно передавать значение, напиши там где кнопка name = "имя".
F

Землянин
0
Попробуй вот такой код
<?php
echo'<form action="?" <!--в action естественно ставь ссылку на обработчика--> method="post">
Имя:<input type="text" name="name"></br>
Сообщение:<textarea name="message"></textarea>
<input name="Submit" type="Submit" value="Отправить">
</form>';
$file = "guest.dat";
if(isset($_POST['Submit']))
{
$name = $_POST['name'];
$message = $_POST['message'];
$name = htmlspecialchars($name);
$message = htmlspecialchars($message);
$text = "'<b>'.$name:'<b />'.$message.<br />\n";
$sfile = fopen($file,"a+");
fwrite($sfile,$text);
fclose($sfile);
}
?>
Изменил: Facecontrol (19.03.2011 / 01:05)

2000 лет д.н.э.
0
<?php 
echo'<form action="?" method="post"> 
Имя:<input type="text" name="name"/></br> 
Сообщение:<textarea name="message"></textarea> 
<input type="submit" value="Отправить"/> 
</form>'; 
$file = "../local/guest.dat"; 

if(isset($_POST['name']) AND isset($_POST['message'])) 
{ 

$name = htmlspecialchars(trim$_POST['name'])); 
$message = htmlspecialchars(trim($_POST['message'])); 

$text = "\n</br><b>$name</b>: $message</br>"; 

$sfile = fopen($file, 'a+'); 
fwrite($sfile, $text); 
fclose($sfile); 
} 
?>
не хватает проверки на не пустые сообщения, на длину сообщений, и проверки антифлуда
</br> - это не верно, <br />
Изменил: ramzes (19.03.2011 / 19:45)
S
Автор
Землянин
0
Блин!! Я все равно не пойму как сделать проверку на то, нажата ли кнопка submit
F

Землянин
0
Сравни мой код и свой,а именно html форму.У тебя неправильно в Submit не установленно имя переменной которой будет этот тип.
В

Чатланин
0
Я не знаю почему многие пишут код обработчика ниже html формы.. может в этом есть какой то профит?
Я обработчик всегда пишу выше вывода и пересылаю через header назад.. Иначе при обновлении страницы, сообщение отправится второй раз.

Добавлено через 02:36 сек.
SIR2100 (20 Марта 2011 / 16:05)
Блин!! Я все равно не пойму как сделать проверку на то, нажата ли кнопка submit
А зачем тебе это нужно? Проверяй существование других переменных..
Изменил: Валерий (20.03.2011 / 12:12)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск