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

Печать RSS
676

S
Автор
Землянин
0
не получается. Информация все равно как то "просачивается" сквозь проверку

Добавлено через 04:36 сек.
<?php                     
echo'<form action="?" method="post"> 
Имя:<input type="text" name="name"></br> 
Сообщение:<textarea name="message"></textarea></br> 
<input name="submit" type="submit" value="Отправить"> 
</form>'; 
$file = "../local/guest.dat"; 
$submit = $_POST['submit'];
$tf = $_post['name'];
if(isset($_post['post']) and isset($_post['name'])) 
{ 
$name = htmlspecialchars($_POST['name']); 
$message = htmlspecialchars($_POST['message']);
$text = "\n$name: $message<br />"; 
$sfile = fopen($file,"a+"); 
fwrite($sfile,$text); 
fclose($sfile); 
} 
$f = fopen($file,"r");
$text = fread($f, filesize($file));
fclose($f);
echo($text);
?>
Вот мой код. Это последнне что я сделал. Поправьте так, чтобы проверялось и работало. Просто я уже замучался на этом шагу. Уже не знаю что делать(( sad
Изменил: SIR2100 (20.03.2011 / 12:27)
F

Землянин
0
91. SIR2100, проверяй на пустые сообщения ещё,я ж тебе код писал
S
Автор
Землянин
0
так при проверке на пустые сообщения, значение переменных старое остается.

Добавлено через 00:41 сек.
if(isset($_post['post']) and isset($_post['name']))  
{  

}
Вот проверка на пустые сообщения

Добавлено через 06:14 сек.
Даже такую проверку данных обходит
if(isset($_POST['Submit'])){
if(isset($_POST['name']) AND isset($_POST['message'])) 
{ 
}}

Добавлено через 08:56 сек.
При обновлении страницы записывается старое значение переменной
Изменил: SIR2100 (20.03.2011 / 12:37)

2000 лет д.н.э.
0
гг смотри в код свой)))
последние 4 строчки
____________
(isset($_post['post']) это ты вообще что проверяешь?
K

Транклюкаторщик
0
94. ramzes, люди упорно пытаются написать что - то наугад D
все же гении, мануалы им не нужны
S
Автор
Землянин
0
Всё нах!!! Сел и сделал! smile

Добавлено через 00:32 сек.
<?php                      
echo'<form action="guest.php" method="post">  
Имя:<input type="text" name="name"></br>  
Сообщение:<textarea name="message"></textarea></br>  
Записать?<input type="text" name="auto"></br>  
<input name="submit" type="submit" value="Отправить">  
</form>';  
$file = "../local/guest.dat";  
$name = htmlspecialchars($_POST['name']);  
$message = htmlspecialchars($_POST['message']); 
$pr = "$name$mesage";
$s = htmlspecialchars($_POST['auto']);
if ($s == "нет")
{
 echo'Ведение записи отключено<br/>';
}
elseif ($s == "да")
{ 
if (!$pr) {echo'Вы не ввели имя и сообщение<br />';}
 elseif(!$name) {echo'Вы не ввели имя<br />';}
  elseif (!$message) {echo'Вы не ввели сообщение<br />';}
   else{

 $text = "\n<b>$name:</b> $message<br />";   
 $sfile = fopen($file,"a+");  
 fwrite($sfile,$text);  
 fclose($sfile);
}
}
elseif(!$s)
{
echo'Вы не ввели переменную!!!<br/>';
}
else {echo'Введено не верное значение<br />';}
$f = fopen($file,"r"); 
$text = fread($f, filesize($file)); 
fclose($f);

echo($text);
echo'<span class="gtext">Записывать* - пока значение "да", запись ведется при каждом обновлении<br/></font>';
$s = "нет";
?>
Сделал из того что знал хД E

Добавлено через 01:52 сек.
И даже все работает так как задуманно хД практически. Остались мелкие правки.

Добавлено через 07:28 сек.
Получилось что-то типа защитыот ботов хД E
S
Автор
Землянин
0
И все равно косячок остался. При обновлении страницы после написания сообщения, значние переменной остается старым. Это я не знаю как исправить. В конце скрипта ей должно присвоиться значение "нет", но этого не происходит sad
K

Транклюкаторщик
0
бррр, юные извращенцы ...
<?

# Функции:
#--------------------#

# проверка входных данных
function check_in($var){
return mysql_escape_string(trim(htmlentities($var, ENT_QUOTES, 'UTF-8')));
}

# точный strlen()
function my_mb_strlen($str){
if (function_exists('mb_strlen')) {return mb_strlen($str, 'utf-8');} elseif(function_exists('iconv_strlen')) {return iconv_strlen($str, 'utf-8');} else {return strlen($str);}
}

# проверка длины строки (от $min символов до $max)
function check_strlen($string,$min,$max){
$a =  filter_var(my_mb_strlen($string), FILTER_VALIDATE_INT, array('options'=>array('min_range'=>$min,'max_range'=>$max)));
if($a !== false){return true;} else {return false;}
}

#--------------------#

$fname = 'archive.dat';
$save = (isset($_GET['save'])) ? true : false;

if($save){
if(isset($_POST['nick'],$_POST['message'])){

$_POST['nick'] = check_in($_POST['nick']);
$_POST['message'] = check_in($_POST['message']);

if(check_strlen($string,$min,$max)){

$file_str = file_get_contents($fname);
$write_str = "\r\n".$_POST['nick'].'|'.$_POST['message'];
$write = $file_str.$write_str;

if(file_put_contents($fname,$write)){echo 'Сообщение добавлено!';} else {echo 'Ошибка записи!';}

} else {echo 'Неверная длина данных!';}
} else {echo 'Неверные данные!';}

} else {

echo '
<form action="?save" method="post">
Ник:<br/><input name="nick" type="text" /><br/>
Сообщение:<br/><textarea name="message" cols="20" rows="10"></textarea><br/>
<input type="submit" value="Добавить" />
</form>
';


}

?>
должно работать, не проверял
первая строчка в файле пустой будет
Изменил: KOZZ (20.03.2011 / 15:08)

Пацак
0
Интересно, зачем тебе mysql_escape_string если он работает с файлами?
S
Автор
Землянин
0
98, мне много что не понятно в скрипте. Поэтому я буду свой доделывать. Со временем сделаю каптчу из вот этого "да" и "нет" и все.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск