[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка введенных данных
vq_set
Привет. Я сам С++ программист и синтаксис php конечно очень похож, но я его не учил, так сайтик пишу, вот есть форма входа (index.php):


<?php
session_start();
?>
//тут <html>
<form action='login.php' method='post'>
<
input class="inup" type="text" onblur="if (value == '') {value='E-mail'}" onfocus="if (value == 'E-mail') {value =''}" value=<?php echo $_SESSION['user']; ?> name="email"><br>
<
input class="inup" type="password" onblur="if (value == '') {value='Пароль'}" onfocus="if (value == 'Пароль') {value =''}" value="" name="pass"><br>
<
input type="submit" class='btn' value="Войти"><br>
<
input type=button class='btn' value=' Регистрация ' onclick='window.location="registration.php"'>
</
form>
//тут </html>
<?php
if(isset($_SESSION['user'])) echo "Здравствуйте, ".$_SESSION['user']."!"; // - этот параметр берется после прохождения регистрации, тут он роли не играет.
?>


Вот таблица users, данные из которой используются в обработчике:


CREATE TABLE `users` (
id_user bigint(20) unsigned NOT NULL auto_increment,
user_ip CHAR(15),
email CHAR(64),
pass CHAR(16),
name CHAR(16),
PRIMARY KEY (`id_user`)
)
ENGINE=MyISAM DEFAULT CHARSET=utf8;


Все бы хорошо, но при регистрации, пользователь указывает только e-mail и пароль. (простая рега). При входе тоже, только e-mail и пароль. Помогите пожалуйста правильно оформить обработчик.

А вот сам обработчик (стянул с какого-то скрипта, чуть переделал):


<?php
@include ("config.inc.php");
$dbcnx = @mysql_connect($DBSERVER,$DBUSER,$DBPASS);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение
страницы невозможно.</P>"
);
exit();
}
if (! @mysql_select_db($DB,$dbcnx) ) {
echo( "<P>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы
невозможно.</P>"
);
exit();
}
$query = "SELECT pass FROM users WHERE email='".$_POST['email']."'";
$nme = mysql_query($query);
if(!$nme)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
if(mysql_num_rows($nme) > 0)
{
$password = mysql_result($nme, 0);
if ($_POST['pass'] == $password)
{
if(session_start())
{
$_SESSION['user'] = $_POST['email'];
$_SESSION['password'] = $_POST['pass'];
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=page.php'>
</HEAD><body>"
;
}
}

else
{
echo "Ошибка идентификации: неправильный пароль!";
exit();
}
}

else
{
echo "Ошибка идентификации: пользователь не найден!";
exit();
}
?>


При входе он выдает мне "Ошибка идентификации: неправильный пароль!", конечно же пароль правильный, просто меня смущает строчка SELECT pass FROM users WHERE email='".$_POST['email']."' которая не знаю, что делает.



Спустя 52 минуты, 39 секунд (7.01.2012 - 15:58) YVSIK написал(а):
котротко сказать эта строчка '".$_POST['email']."' клеит
а если весь скрипт разбирать по частям
тут такого намешано
легче писать новый
убрать все собачки
убрать все (exit(); ) остановки
и начать писать заново , это будет лучшим решением

Спустя 6 минут, 33 секунды (7.01.2012 - 16:04) vq_set написал(а):
Ну самое простое, что я нашел, нет, конечно если посоветуете обработчик получше - я только за, но ведь тут-то ничего сложного, я не пойму только, что делает это:
SELECT pass FROM users WHERE email='".$_POST['email']."'

Спустя 57 минут, 34 секунды (7.01.2012 - 17:02) YVSIK написал(а):
$result = mysql_query("SELECT `pass` FROM  `users ` WHERE `email` = '".$_POST['email']."', $db);

)) а существует ли в таблице users и поля pass , путем перебора запись которая соответствует переменной ( $_POST['email'] )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.