Обработка данных с формы

RASAMAHA

Новичок
empty, да тут подходит empty но проблема всё равно осталсаь. Дело в том, что всё хорошо, если ты вводишь или не вводишь данные, тогда всё работает на 5+ но при старте. Сразу выводиться сообщение с ошибкой, что бы ни писал.

Как я вижу проблему, так это то что переменная существует, и она пустая при старте, то есть как будто я уже послал с формы данные, но пустые.

Может есть функция проверки того, послал ли что-то пользователь или нет? Или ещё чего. Но empty, isset и уж тем более, как написано в статье
PHP:
if (!$name) $err.="Вы забыли написать свое имя<br>";
не помогают... Может у меня иделаогия или построение скрипта не то?
 

RASAMAHA

Новичок
empty, сейчас...
Вот... index.php
PHP:
<?php

$name   =  $_POST['name'];
$email  =  $_POST['email'];
$mess   =  $_POST['mess'];

if(empty($name)) echo "&#207;&#229;&#240;&#229;&#236;&#229;&#237;&#237;&#224;&#255; \$name &#239;&#243;&#241;&#242;&#224;, &#240;&#224;&#226;&#237;&#224; 0 &#232;&#235;&#232; &#226;&#238;&#238;&#225;&#249;&#229; &#237;&#229; &#241;&#243;&#249;&#229;&#241;&#242;&#226;&#243;&#229;&#242;";

if (!empty($mess) and !empty($name) and !empty($email))
{
$fp = fopen("mess.dat","a+");

fwrite($fp,"<b>&#209;&#229;&#227;&#238;&#228;&#237;&#255;:</b> <font color='green'>$date</font><br>----------------------<br><b>&#194;&#224;&#248;&#229; &#232;&#236;&#255;:</b> $name<br><b>&#194;&#224;&#248;&#229; &#236;&#251;&#235;&#238;:</b> $email<br><b>&#209;&#238;&#238;&#225;&#249;&#229;&#237;&#232;&#229;:</b> $mess<br><hr>\n");
fclose($fp);

}

readfile("mess.dat");

?>
mess.php
PHP:
<html>
<body>
     <table border='0' width=45% align='center' cellpadding='2' cellspacing='0'>
      <form action='index.php' method='post'>
        <tr valign='center'>
            <td><b>&#194;&#226;&#229;&#228;&#232;&#242;&#229; &#200;&#236;&#255;: </b></td><td><input name='name' type='text' value=''>
         </td>
        </tr>
        <tr valign='center'>
         <td><b>&#194;&#226;&#229;&#228;&#232;&#242;&#229; E-Mail: </b></td><td><input name='email' type='text' value=''>
         </td>
        </tr>
        </table>
        <br>
        <table border='0' width=45% align='center' cellpadding='2' cellspacing='0'>
        <tr valign='center'>
         <td>
            <textarea name='mess' rows=10 cols=50></textarea>
         </td>
        </tr>
        <tr valign='center'>
         <td align='center'>
            <br><input type='submit' value='&#206;&#242;&#239;&#240;&#224;&#226;&#232;&#242;&#252;'>
         </td>
        </tr>
      </form>
     </table>
</body>
</html>
 

empty

Guest
RASAMAHA
тебе же давали ссылки, на пример обработки формы. Почему не читаешь? ;(
Я не буду тебе отвечать, ты не хочешь учиться. Тебе дали конкретный ПРАВИЛЬНЫЙ пример - http://phpclub.ru/talk/showthread.php?old=1&threadid=30705
Почему ты ему не слдуешь?
Разберись в этом и будет тебе счастье:
PHP:
if ($_SERVER['REQUEST_METHOD']=='POST') { 
  foreach($_POST as $key => $value) { 
    //пробегая по массиву ПОСТ обрабатываем полученные переменные. 
  } 
  //дальше проверяем поля формы 
  if (!$err) { 
    //записываем и перенаправляем 
    Header("Location: ".$_SERVER['PHP_SELF']); 
    exit; 
  } 
} 
//выводим форму.

ЗЫ: Cмысл твоих присваиваний в начале? Зачем плодить переменные?
 

RASAMAHA

Новичок
empty, я так и думал что всё сделал не так. Но это первая работа. А ту тему я читал, но вот как раз этот кусок понять не могу. Буду лучше стараться!

А за помощь мои безграничные благодарнсти. Без вас, я бы вообще ничего не сделал :)
 

empty

Guest
RASAMAHA
Вот твой пример:

PHP:
<?php
$err = '';

if($_SERVER["REQUEST_METHOD"]=="POST"){
	if(empty($_POST['name']))		$err .= '<li>Вы не ввели имя!</li>'; 
	if(empty($_POST['email']))		$err .= '<li>Вы не ввели email!</li>'; 
	if(empty($_POST['mess']))		$err .= '<li>Вы не ввели сообщение!</li>'; 
	
	if(!$err){
	$fp = fopen("mess.dat","a+"); 
	fwrite($fp,"..."); //тут ты пишешь в файл. в файл обычно теги не пишут. в файл обычно пишут только данные, а не хтмл-код. Потому чситай, что в файл ты пишешь тоже не правильно.
	fclose($fp);
	header("Location: $_SERVER[PHP_SELF]");
	exit;
	}
	if($err)	$err = "Ошибка!<br><uL>$err</ul>";
} 

readfile("mess.dat"); 
?>
 
Сверху