Forum Webscript.Ru
Программирование => PHP => Тема начата: $@m от 21 Апреля 2007, 13:51:17
-
PHP стал изучать совсем недавно, а не так давно встала необходимость написать скрипт для регистрации и авторизации зарегистрированных пользователей. Если регистрацию я осилил, то с авторизацией проблемы... Ситуация стандартная- есть БД в MySql. Пользователь авторизуется по фамилии (в БД- LastName) и паролю (в БД- Password). Помню, как-то давно на одном из форумов (возможно, на этом) нарыл скрипт для авторизации пользователя. Так вот при запуске появляется ошибка:
Warning: Unable to jump to row 0 on MySQL result index 2
собственно, текст скрипта:
mysql_connect ("xxx","xxx","xxx");
mysql_select_db("xxx");
$_POST[\'LastName\'] = addslashes($_POST[\'LastName\']);
$_POST[\'Password\'] = md5($_POST[\'Password\']);
$sql_result = mysql_query("SELECT LastName FROM regusers WHERE LastName=\'$_POST[LastName]\' AND Password=\'$_POST[Password]\'") or die("Couldn\'t query the user-database.");
$num = mysql_result($sql_result,0);
if (!$num) {
// When the query didn\'t return anything,
// display the login form.
echo "User Login
";
} else {
// Start the login session
session_start();
// We\'ve already added slashes and MD5\'d the password
$_SESSION[\'LastName\'] = $_POST[\'LastName\'];
$_SESSION[\'Password\'] = $_POST[\'Password\'];
// All output text below this line will be displayed
// to the users that are authenticated.
echo "Congratulations
";
echo "You\'re now logged in. Try visiting Page 2.";
}
?>
Знатоки, помогите разобраться, мне это еще вчера надо было...:) Заранее спасибо
-
Unable to jump to row 0 on MySQL result index 2
Когда ты пытаешься $num = mysql_result($sql_result,0);, ты должен сначала проверить кол-во найденных рядов
Если юзера с такими данными в базе нет, то рядов не будет, значит будет ошибка.
Можешь написать просто $num = @mysql_result($sql_result,0);
чтобы ошибка не беспокоила
-
Да, ошибка действительно исчезла, но тогда скрипт, при вводе логина и пароля, которые есть в базе, "молчит", хотя должен выдать:
echo "Congratulations
";
echo "You\'re now logged in. Try visiting Page 2.";
-
А вместо этого он что-нибудь показывает?)
-
Да нет...страница обновляется и всё:)
-
$@m
В базе пароли хранятся в виде md5 хэша?
Если что попробуй написать echo mysql_error(); может быть там ошибка будет
-
А кажись в форме совсем другие имена полей, (user, pass) , а в POST ищешь LastName и Password, ?
-
if (!mysql_num_rows($sql_result)){
die();
}else{
$num = mysql_result($sql_result,0);
if (!$num) {
// When the query didn\'t return anything,
// display the login form.
.........................................
-
Спасибо всем большое, я разобрался