Forum Webscript.Ru

Программирование => PHP => Тема начата: $@m от 21 Апреля 2007, 13:51:17

Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: $@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



Username:

Password:



";

} 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 in
Отправлено: andymc от 21 Апреля 2007, 20:19:32
Цитировать
Unable to jump to row 0 on MySQL result index 2
Когда ты пытаешься $num = mysql_result($sql_result,0);, ты должен сначала проверить кол-во найденных рядов
Если юзера с такими данными в базе нет, то рядов не будет, значит будет ошибка.

Можешь написать просто $num = @mysql_result($sql_result,0);
чтобы ошибка не беспокоила
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: $@m от 22 Апреля 2007, 12:43:52
Да, ошибка действительно исчезла, но тогда скрипт, при вводе логина и пароля, которые есть в базе, "молчит", хотя должен выдать:

echo "

Congratulations

";
echo "You\'re now logged in. Try visiting Page 2.";
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: X-Disa от 22 Апреля 2007, 13:59:11
А вместо этого он что-нибудь показывает?)
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: $@m от 22 Апреля 2007, 15:04:25
Да нет...страница обновляется и всё:)
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: andymc от 22 Апреля 2007, 19:11:29
$@m
В базе пароли хранятся в виде md5 хэша?
Если что попробуй написать echo mysql_error(); может быть там ошибка будет
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: Altaxar от 23 Апреля 2007, 14:33:58
А кажись в форме совсем другие имена полей, (user, pass) , а в POST ищешь  LastName и Password, ?
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: ferryman от 25 Апреля 2007, 10:55:00
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.
.........................................
Название: Помогите плз, ошибка: Unable to jump to row 0 on MySQL result index 2 in
Отправлено: $@m от 01 Мая 2007, 04:04:35
Спасибо всем большое, я разобрался