[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция залогинивания?
Stasonix
Правильный ли ход мыслей у меня?
в таблице users(id,email,password,logged)
данные:
1|myemail@gmail.com|123|0

хочу залогиниться, в классе User это так выглядит:


class User {

public $psw;
public $email;

// Функция залогинивания
public function logged_in()
{

$sql = "UPDATE users SET logged=1 WHERE (email='$this->email') AND (password='$this->psw') AND (logged=0)";
$query = mysql_query($sql);

if (!$query)
{

die("log in error: ". mysql_error());

return FALSE;
}
else
{

return TRUE;

}

}
}



в итоге используя эту функцию:


// получим
$user = new User();
$user->email=$_POST['email'];
$user->psw=$_POST['pass'];
if ($user->logged_in()){
echo "Вы вошли";
}
else
{
echo "Проверьте ваш пароль и email, они не совпадают";
}


у меня логинит все что хочешь (все подряд), наверное где-то я ошибся в самой функции logged_in(), не подскажите в чем может быть причина?



Спустя 30 минут, 35 секунд (2.04.2012 - 18:48) Placido написал(а):
Потому что mysql_query('UPDATE ...') возвращает true, даже если ни одна запись не была обновлена. Для UPDATE нужно использовать mysql_affected_rows(): если > 0, значит, что-то было обновлено.

Спустя 19 минут, 40 секунд (2.04.2012 - 19:08) johniek_comp написал(а):
метод logged_in натолкнул меня на мысль что это кохана, если это так то бросайте кохану, рано пока

Спустя 3 минуты, 42 секунды (2.04.2012 - 19:11) Stasonix написал(а):
нет, это уже ни kohana, просто по старой памяти первое что пришло в голову именно так и назвать этот метод, а фреймворк пока оставил, дей-но рановато, кстати так учудил:


// Функция залогинивания
public function logged_in()
{

$sql = "UPDATE users SET logged=1 WHERE (email='$this->email') AND (password='$this->psw') AND (logged=0)";
$query = mysql_query($sql);

if (!mysql_affected_rows())
{

return FALSE;

}
else
{

return TRUE;

}

}



вполне сносно вышло. Спасибо!
Быстрый ответ:

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