reg.htm
<form id="signup" action="../php/dbase.php">
<label> Логин </label>
<input name="login" type="text" id="login" size="36" class="required">
<label>Пароль</label>
<input name="password" type="text" value="Введите пароль" size="36" class="required">
<label>E-mail </label>
<input name="email" type="text" value="Введите ваш E-mail адрес" id="email" size="46" class="required email"
<input type="submit" value="Зарегистрироваться">
</form>
dbase.php
if ((!$_POST['login']) || (!$_POST['password']) || (!$_POST['email'])) {
echo "Не все данные введены<br>
Пожалуйста, вернитесь назад и закончите ввод.";
exit;
}
$query = "insert into users (login, password, email) values
('".$_POST ['login']."', '".$_POST ['password']."', '".$_POST ['email']."')";
$result = mysql_query ( $query ) or die(mysql_error());
if ($result) echo "Регистрация завершена успешно.";
else echo "Попробуйте позднее.";
mysql_close ( $link );
Проблема в том, что проверку не проходит условие в начале скрипта и выдаётся ошибка ( "Не все данные введены..."), если условие из скрипта исключить, в таблицу добавятся пустые строки. В базе поля login, password, email имеют тип varchar. В чём косяк?
Спустя 58 секунд (10.02.2011 - 22:35) Snus написал(а):
<form id="signup" action="../php/dbase.php" METHOD="POST">
Спустя 3 минуты, 35 секунд (10.02.2011 - 22:38) l@pteff написал(а):
реакции ноль, здесь скорее всего в базе с типами данных что-то напутал

Спустя 4 минуты, 13 секунд (10.02.2011 - 22:42) Snus написал(а):
l@pteff
Давай по порядку... перестал давать сообщение Не все данные введены. ?
Давай по порядку... перестал давать сообщение Не все данные введены. ?
Спустя 2 минуты, 9 секунд (10.02.2011 - 22:44) l@pteff написал(а):
нет не перестал
Спустя 19 минут, 35 секунд (10.02.2011 - 23:04) l@pteff написал(а):
ещё момент: заполняю форму, убираю условие - добавляет в базу пустые значения (как я уже говорил). Заполняю форму второй раз (с другими данными и опять же без условия) - пишет "логин занят", т.е. не добавляет ещё одну пустую строку (хотя логин ввожу абсолютно другой)
Спустя 11 минут, 49 секунд (10.02.2011 - 23:16) l@pteff написал(а):
если добавляю в условие проверку ошибок:
Вместо нормального описания ошибки скупо появляется какая-то единица
if ((!$_POST['login']) || (!$_POST['password']) || (!$_POST['email'])) {
echo "Не все данные введены<br>
Пожалуйста, вернитесь назад и закончите ввод." or die(mysql_error());
exit;
}
Вместо нормального описания ошибки скупо появляется какая-то единица
Спустя 23 минуты, 15 секунд (10.02.2011 - 23:39) l@pteff написал(а):
из-за чего это? может дело в настройках самого сервака?
Спустя 14 минут, 39 секунд (10.02.2011 - 23:54) Lenarfate написал(а):
Цитата |
echo "Не все данные введены<br> Пожалуйста, вернитесь назад и закончите ввод." or die(mysql_error()); |
тут ты сам понимаешь, что делаешь?
Спустя 10 минут, 20 секунд (11.02.2011 - 00:04) l@pteff написал(а):
да уж, понаставил лишнего...
Парни ну может у кого есть мысли почему инфа из формы может не читаться?

Спустя 6 минут, 9 секунд (11.02.2011 - 00:10) Lenarfate написал(а):
безнадежно

Спустя 13 минут, 10 секунд (11.02.2011 - 00:23) l@pteff написал(а):
Lenarfate до переустановки апача всё отлично работало с этими же скриптами, поэтому считаю что проблема не такая уж безнадёжная...
Спустя 1 час, 34 минуты, 47 секунд (11.02.2011 - 01:58) RCuPeR написал(а):
<form id="signup" action="../php/dbase.php" method="post">
<label> Логин </label>
<input name="login" type="text" id="login" size="36" class="required">
<label>Пароль</label>
<input name="password" type="password" value="Введите пароль" size="36" class="required">
<label>E-mail </label>
<input name="email" type="text" value="Введите ваш E-mail адрес" id="email" size="46" class="required email"
<input type="submit" value="Зарегистрироваться">
</form>
$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;
if($login != NULL && $password != NULL && $email != NULL){
$query = "INSERT INTO `users` (`login`, `password`, `email`) VALUES ('".$login."', '".$password."', '".$email."')";
$result = mysql_query ( $query ) or die(mysql_error());
} else {
exit("ERROR");
}
if ($result) {
echo 'Registering is completed';
} else {
echo 'FUCK ! Error !';
}
Спустя 8 минут, 26 секунд (11.02.2011 - 02:07) Сандин написал(а):
Цитата (RCuPeR @ 10.02.2011 - 22:58) |
|
Можеш пояснить как работает эта строчка? почему так и так..заранее спасибо
Спустя 5 минут, 54 секунды (11.02.2011 - 02:13) inpost написал(а):
$_POST ['login'] - почему через пробел?
Проверку сделай на: !empty($_POST)
Проверку сделай на: !empty($_POST)
Спустя 31 минута, 15 секунд (11.02.2011 - 02:44) Invis1ble написал(а):
l@pteff
в начале скрипта поставь
и напиши сюда, что выведет
в начале скрипта поставь
var_dump($_POST);
die(var_dump((!$_POST['login']) || (!$_POST['password']) || (!$_POST['email'])));
и напиши сюда, что выведет
Спустя 2 минуты, 8 секунд (11.02.2011 - 02:46) Invis1ble написал(а):
кстати вот это
Цитата |
<input name="password" type="text" value="Введите пароль" size="36" class="required"> |
прикольно =)
Спустя 4 минуты, 10 секунд (11.02.2011 - 02:50) Invis1ble написал(а):
имхо, здесь
Цитата |
action="../php/dbase.php" |
в пути к обработчику бок и данные попросту отсылаются на деревню к дедушке

Спустя 8 часов, 38 минут, 36 секунд (11.02.2011 - 11:29) RCuPeR написал(а):
Цитата (Сандин @ 10.02.2011 - 23:07) | ||
Можеш пояснить как работает эта строчка? почему так и так..заранее спасибо |
$login = isset($_POST['login']) ? $_POST['login'] : NULL;
$password = isset($_POST['password']) ? $_POST['password'] : NULL;
$email = isset($_POST['email']) ? $_POST['email'] : NULL;
Проверяет состояние переменной. Т.е, если $_POST['login'] пустой, ему присваивается NULL, что равносильно ='';
Если нет, в переменную $login добавляется значение $_POST['login'].
Спустя 2 дня, 29 минут, 14 секунд (13.02.2011 - 11:58) l@pteff написал(а):
Цитата |
кстати вот это Цитата <input name="password" type="text" value="Введите пароль" size="36" class="required"> прикольно =) |
:) полностью поле для ввода пароля выглядит так:
<input name="password" type="text" value="Введите пароль" size="36" class="required" onFocus="this.type='password'" onBlur="if(this.value == '') { this.value='Введите пароль'; this.type='text';}"
Спустя 2 минуты (13.02.2011 - 12:00) l@pteff написал(а):
вобщем, история завершилась так. Создал такой же сервак на другой машине, всё работает, хотя делал всё вроде так же. Тупо копирнул рабочий вариант-и всё. В чём был глюк-так и не понял

Спустя 4 минуты, 10 секунд (13.02.2011 - 12:04) l@pteff написал(а):
Invis1ble, взял на заметку, спасибо, думаю ещё пригодится не раз:
Цитата |
в начале скрипта поставь var_dump($_POST); die(var_dump((!$_POST['login']) || (!$_POST['password']) || (!$_POST['email']))); |
Цитата |
имхо, здесь Цитата action="../php/dbase.php" в пути к обработчику бок и данные попросту отсылаются на деревню к дедушке |
кстати очень может быть