Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: не получается обработать форму
 
 автор: user_dk   (25.05.2005 в 00:09)   письмо автору
 
 

Ребята, помогите пожалуйста, у меня не обрабатываются формы, т.е. не могу считать инфу из полей,тем более вывести, даже самые элементарные формы не могут обрабатываться.До сих пор не могу понять в чем проблема?

   
 
 автор: servannin   (25.05.2005 в 00:17)   письмо автору
 
   для: user_dk   (25.05.2005 в 00:09)
 

Вы бы хоть код привели в пример, какие формы конкретно и т.д.?

   
 
 автор: user_dk   (25.05.2005 в 00:24)   письмо автору
 
   для: user_dk   (25.05.2005 в 00:09)
 

Хорошо.
Вот регистрационная форма:
<html>
<head>
<title> Регистрационная форма</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body text = "#000000" >
<h2 align = CENTER> Регистрация пользователей </h2>
Поля, обязятельные для заполнения, обозначены значком <font color = red>*</font>
<hr>
<form name = "register" method = "POST" action = "php_reg.php">
<table width = "450" border = "0" cellpadding = "0" cellspacing = "0" cols = 2>
<p align = "left"><Font face = "Times New Roman" size = 4 > Выберите свой логин и пароль </font></p>
<tr>
<td> <font color = red>*</font>Логин:</td>
<td align = "right"><input type = "text" name = "name" size = "30"></td>
</tr>

<tr>
<td><font color = red>*</font>Пароль:</td>
<td align = "right"><input type = "password" name = "password" size = "30"></td>
</tr>
<tr>
<td><font color = red>*</font>Подтверждение пароля:</td>
<td align = "right" ><input type = "password" name = "confpassword" size = "30"></td>
</tr>
</table>

<br>

<table width = "450" border = "0" cellpading = "0" cellspacing = "0" cols = "2">
<p align = "left"><Font face = "Times New Roman" size = 4 > Дополнительная информация о пользователе </font></p>
<tr>
<td><font color = red>*</font>ФИО:</td>
<td align = "right"><input type = "text" name = "fio" size = "30"></td>
</tr>

<tr>
<td>Телефон:</td>
<td align = "right"><input type = "text" name = "phone" size = "30"></td>
</tr>

<tr>
<td><font color = red>*</font>E-mail:</td>
<td align = "right"><input type = "text" name = "mail" size = "30"></td>

</table>

<p align = center><input type="submit" name="Submit" value="Зарегистрироваться"></p>
</form>
<hr>
</body>
</html>

Вот php скрипт:

<?php
echo "Content-Type: text/html\n\n";
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. //
}
}
$str = $_POST['name']."|".$_POST['password']."\n";
$file = fopen("dat.db","r+");
if (!$file)
echo ("Ошибка открытия файла");
fputs($file, $str);
fclose($file);
?>

   
 
 автор: servannin   (25.05.2005 в 00:48)   письмо автору
 
   для: user_dk   (25.05.2005 в 00:24)
 

Нет,здесь всё работает,только ,например,на сервере создайте файл : dat.db
В этот файл только сохраняется логин и пароль,если хотите чтобы сохранялось всё что вводит пользователь нужно исправлять скрипт.
Вот например, уже и телефон сохраняется:
измените код:

$str = $_POST['name']."|".$_POST['password']."\n";

на:

$str = $_POST['name']."|".$_POST['password']."|".$_POST['phone']."\n";

Вообщем,разбирайтесь,ничего сложно здесь пока нет 8-)

   
 
 автор: user_dk   (25.05.2005 в 01:07)   письмо автору
 
   для: user_dk   (25.05.2005 в 00:24)
 

Да, так и есть, только в файле dat.db сохраняется не имя пользователя и пароль, а непонятный символ, причем один...
По-моему что-то не так с методом POST, во всех остальных тестируемых примерах происходит аналогичное, в смысле сохранения данных из формы в файл.

   
 
 автор: servannin   (25.05.2005 в 01:16)   письмо автору
 
   для: user_dk   (25.05.2005 в 01:07)
 

У меня всё работает.
И с методом POST здесь всё в порядке.
Подождите , может кто нибудь из знатоков на форуме 8-) вам поможет.

   
 
 автор: user_dk   (25.05.2005 в 01:23)   письмо автору
 
   для: user_dk   (25.05.2005 в 01:07)
 

Могут ли быть неправильными какие-нибудь настройки сервера или может необходимо что-нибудь изменить в php.ini? Просто у меня сервер IIS ?? Не смог нормально настроить Apache, поэтому пришлось пользоваться тем, что есть...

   
 
 автор: user_dk   (25.05.2005 в 17:49)   письмо автору
 
   для: user_dk   (25.05.2005 в 01:23)
 

Разобрался.Поставил прогу Denver.Все заработало кроме некоторых функций php.
Не работает filesize()

   
 
 автор: cheops   (25.05.2005 в 12:40)   письмо автору
 
   для: user_dk   (25.05.2005 в 01:07)
 

Хм... у меня тоже всё нормально, выведе в обработчике содержимое массива $_POST
<?php
  print_r
($_POST);
?>

Что в нём?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования