Пожалуйста, оцените авторизацию

Spear

почемучка
Кажется, сделано.
Правильно?
PHP:
<?php
require_once("general_conf.php");

   if(!$_SERVER["REQUEST_METHOD"]) { 
   Header("Location: index.php?e=no_vars");
   exit; }
   
    # как в мануале сказано - если РНР поставил, то убираю слеши
  	if (get_magic_quotes_gpc()) {
  	$_POST['password'] = stripslashes($_POST['password']);
	$_POST['login'] = stripslashes($_POST['login']); }

    $sql = "SELECT count(id) FROM users WHERE account='".mysql_real_escape_string($_POST['login'])."' AND password='".md5($_POST['password'])."'";
    $result = $db->sql_query($sql);
    $setinfo = $db->sql_fetchrow($result);
    
    # пароль правильный
    if ($setinfo[0] == 1)
    {
		 session_start();
		 $_SESSION['id']=$setinfo['id'];
		 $_SESSION['login']=$_POST['login'];
		 Header("Location: main.php");
	} else { Header("Location: index.php?e=1"); return; exit; }	
?>
 

Spear

почемучка
if(!$_SERVER["REQUEST_METHOD"] == "POST")

и стрипслешить пароль тоже не надо.
забыл убрать, честное слово.

излишки черновика :) Уже начинаю тормозить (сутки не спал... блин меня РНР сильно затягивает :))
Ну а в остальном? Сессии, например?
 

Фанат

oncle terrible
Команда форума
а чё сессии?
нормальные сессии.

если у тебя есть класс для работы с БД, то тебе нужна функция доставания одной записи.
(по мне - это единственное, что нужно для аботы с БД)
чтобы не писать каждый раз
$sql...
$result...
$setinfo ...
 

Spear

почемучка
Фанат
БОЛЬШОЕ спасибо за авторизацию!
Теперь, чтобы проверить - залогинился юзер или нет,
достаточно в нужных страницах писать просто

session_start();
if ($_SESSION['id']>=1) {
// авторизирован.
}

Нужно ли потом делать ещё какие-либо проверки?
Я на куках сначала собирался на каждой странице делать запрос в бд, есть ли такой пользователь с такм-то паролем.

Сессии "подменить" можно? например, присвоить себе айди и логин админа? (вопрос, наверное, идиотский.. но тем не менее)


И все-таки - ещё раз спасибо, что указалывал на все ошибки и гвоорил как исправить!

ппс
ФАКи рулят :)
 

Фанат

oncle terrible
Команда форума
в принципе, в факе по сессиям есть замечание про неподдерживаемые куки.
а внизу ещё ссылка на параноика с подделкой.
почитай на досуге

и покажи, когда выспишо\ься, окончательный код.
всё равно ведь косяки остались.
только перед этим (когда выспишься), во-первых, запусти и посмотри, как работает, а во-вторых, просмотри каждую строчку и ответь на вопрос - что она делает?
 
Сверху