Программирование > PHP
Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
$@m:
PHP стал изучать совсем недавно, а не так давно встала необходимость написать скрипт для регистрации и авторизации зарегистрированных пользователей. Если регистрацию я осилил, то с авторизацией проблемы... Ситуация стандартная- есть БД в MySql. Пользователь авторизуется по фамилии (в БД- LastName) и паролю (в БД- Password). Помню, как-то давно на одном из форумов (возможно, на этом) нарыл скрипт для авторизации пользователя. Так вот при запуске появляется ошибка:
Warning: Unable to jump to row 0 on MySQL result index 2
собственно, текст скрипта:
<?PHP
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 "<h3>User Login</h3>
<form action=\'$_SERVER[PHP_SELF]\' method=\'post\'>
Username: <input type=\'text\' name=\'user\'>
Password: <input type=\'password\' name=\'pass\'>
<input type=\'submit\' value=\'Login\'>
</form>";
} 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 "<h1>Congratulations</h1>";
echo "You\'re now logged in. Try visiting <a href=\'page2.php\'>Page 2</a>.";
}
?>
Знатоки, помогите разобраться, мне это еще вчера надо было...:) Заранее спасибо
andymc:
--- Цитировать ---Unable to jump to row 0 on MySQL result index 2
--- Конец цитаты ---
Когда ты пытаешься $num = mysql_result($sql_result,0);, ты должен сначала проверить кол-во найденных рядов
Если юзера с такими данными в базе нет, то рядов не будет, значит будет ошибка.
Можешь написать просто $num = @mysql_result($sql_result,0);
чтобы ошибка не беспокоила
$@m:
Да, ошибка действительно исчезла, но тогда скрипт, при вводе логина и пароля, которые есть в базе, "молчит", хотя должен выдать:
echo "<h1>Congratulations</h1>";
echo "You\'re now logged in. Try visiting <a href=\'page2.php\'>Page 2</a>.";
X-Disa:
А вместо этого он что-нибудь показывает?)
$@m:
Да нет...страница обновляется и всё:)
Навигация
Перейти к полной версии