Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Не верно считывает данные из формы, указываю одно, а записывает в фаил друго 
:(
    Опции темы
Enya
Дата 9.5.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Код

<? 
if ($_SERVER['REQUEST_METHOD']=='POST') { 
  //обрабатываем полученные переменные. 
  foreach($_POST as $key => $value) { 
    //сначала делаем обработку, которая не испортит данные, 
    //если их придется выводить в форму снова, при ошибке 
    $value=trim($value); // убираем пробелы в начале и в конце переменной. 
    if (get_magic_quotes_gpc()) $value = stripslashes($value); //убираем слеши, если надо 
    $value=htmlspecialchars($value,ENT_QUOTES); //заменяем служебные символы HTML на эквиваленты 
    $_POST[$key]=$value; //все изменения записываем в массив $_POST 
    //дальше делаем изменения, которые пойдут только в файл, 
    //а в форму их выводить не нужно. 
    $value=str_replace("\r","",$value); // заменяем все переводы строк 
    $value=str_replace("\n","<br>",$value); //на <br> 
    $msg[$key]=$value; //и присваиваем новые значения элементам массива $msg. 
  } 
  //дальше делаем разнообразные проверки. Они здесь для 
  //примера, вы можете добавлять, какие захотите 
  //главное то, что при любых ошибках переменная $err становится не пустой. 
  //то есть, она одновременно является и флагом ошибки и 
  //содержит все сообщения об ошибках. 
  $err=''; 
  if (!$name) $err.="Вы забыли написать свое имя<br>"; 
  if (!$notes) $err.="Вы забыли написать сам отзыв!<br>"; 
  if (!$Qudrat) $err.="Не указанно кол-во квадратов!<br>";
  //if (strlen($Qudrat) > 20) $err.="количество квадратов не может быть больше 25%<br>"; 
  if (strlen($name) > 30) $err.="Длина имени не может превышать 30 символов<br>"; 
  if (strlen($notes) > 1000) $err.="Длина отзыва не может превышать 1000 символов<br>"; 
  if (strlen($email) > 50) $err.="емейл длинноват...<br>"; 
  if (preg_match("/[0-9a-zA-Zа-яА-ЯЁё]{30,}/",$notes,$matches)) { 
    $err.="В отзыве присутствует слишком длинное слово ".$matches[0].". Cократите или разбейте его, пожалуйста."; 
  } 
  $email_ok=eregi("^([_\.0-9a-z-]+@)([0-9a-z][0-9a-z-]+\.)+([a-z]{2,4})$", $email); 
  if (!$email_ok && $email) $err.="Ошибка в емейле. Если не хотите, то просто не пишите!<br>"; 
  //если ошибок нет, то пишем в файл 
  if (!$err) { 
    $s=$msg['name']."|".$msg['email']."|".$msg['notes']."|".$Qudrat['Qudrat']."\n";
    $fp=fopen("gbook.txt","a"); 
    fwrite($fp,$s); 
    fclose($fp); 
    //после записи перенаправляем браузер на страницу, 
    //которая отображает сообщения 
    Header("Location: ".$_SERVER['PHP_SELF']); 
    //и обязательно завершаем работу скрипта 
    exit; 
  } 
  //если у нас были ошибки при заполнении формы, то в файл 
  //ничего не запишется, скрипт не завершится, а выведется 
  //форма, с заполненными полями и сообщения об ошибках 
} else { 
  //если это не пост, то присваиваем переменным, выводимым 
  //в форме пустую строку 
  $_POST['name'] = $_POST['email'] = $_POST['notes'] = $_POST['Qudrat'] =''; 
} 
?> 
<html> 
<head></head> 
<body> 
<table border=1 align=center>
    <tr>
        <td>
        <? if ($err) echo '<font color=red><b>'.$err.'</b></font>'; ?> 
            <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="POST"><br> 
                Name: <input type="text" name="name" value="<? echo $_POST['name'] ?>"><br> 
                Email: <input type="text" name="email" value="<? echo $_POST['email'] ?>"><br> 
                Notes: <textarea rows="3" cols="30" name="notes"><? echo $_POST['notes'] ?></textarea><br>
                Qudrat: <input type="text" name="Qudrat" maxlength="6" value="<? echo $_POST['Qudrat'] ?>"><br>
                <input type="submit" name="submit"> 
            </form> 
        </td>
    </tr>
</table>
</body>
</html>  

Вот воожу в поле 
Цитата

Qudrat: <input type="text" name="Qudrat" maxlength="6" value="<? echo $_POST['Qudrat'] ?>"><br>
10
а сохраняет только 1
Вот как выглядит в файле
Цитата
Igor|[email protected]|ewqe|1
admin01|[email protected]|fgdfhg hff fhg fgh|2
Ïðèíöåñà Òóðàíäîò|[email protected]|dasfdasfasdf daf dasf ffd|2
А нужно, чтобы сколько введи в поле, столько и записал. 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Darhazer
Дата 9.5.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 28.9.2005
Где: HellCity (Sofia, Bulgaria)

Репутация: 7
Всего: 29



А почему пользует $Qudrat['Qudrat'] а не $msg['Qudrat'] ? 


--------------------
I'm a wheel, I'm a wheel, I can roll, I can feel
But you can't stop me turning
'Cause I'm the sun, I'm the sun, I can move, I can run
But you'll never stom me burning
PM MAIL WWW ICQ YIM   Вверх
Enya
Дата 9.5.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет




Darhazer, спасибо.

Не, ребята, нельзя так долго работать....... smile  smile  smile  smile  


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.