Программирование > PHP

Авторизация

<< < (3/7) > >>

Rodent:
Neter
То есть если count($error) мне выдает 0, то можно продолжать работать?

Всем
Ладно я не много отвлекся от темы. может кто-нить еще даст советы по оптимизации данного вида авторизации. Или то что есть нормально?

Rodent:
Я под конец совсем запулся с сессиями.
как я понял, для того чтобы зарегистрировать переменную нужно написать
session_start();
session_register("user");
После этого данная переменная появляется в в сессии, но она пока без значения, теперь мы ей присваиваем значение
$user="admin";
по идее в сессии теперь находиться переменная user со значением admin. правильно???
Теперь. как мне добыть данную переменную на других страницах сайта???
Опять открыть сессию и зарегить переменную
session_start();
session_register("user");
теперь, по идее опять же, если написать
echo $user;
мне браузер должен вывести admin.
Я прав или нет??? сама схема работы сессии мной понята правильно???

Rodent:
И еще мне не совсем нравиться моя авторизация на других страницах сайта



Ситуация такая. что я допустим нормально зарегился на страничке авторизаторе, перехожу на другие защищенный странички где вставлена ссылка
reqiure (auth.php);
и допустим что авторизация не прошла. Тогда скрипт должен тут же прекратить долнейший вывод странички и перенаправить пользователя еще раз зарегиться.

Rodent:
Я не слишком много вопросов задаю???
я новичок в пхп, но я стараюсь, перед тем как задавать вопросы проникнуться данной проблемой.
Ну а в общем данный форум, мне кажется, для того и существует чтобы помогать таким как мне и делиться опытом.
Или я опять же не прав???

Neter:
Rodent После товарища под ником "хах" твои вопросы как бальзам на душу :)

Я несколько подправил твой код.

auth.php
<?
$users["demo"]=md5("demo");

session_start();

$error = array(); // Типа так надо :)
$_SESSION[\'username\'] = "";
$_SESSION[\'userpass\'] = "";

if (@$_POST["logon"]){ // @ Нужна для подавления ошибок . т.е. если человек не жмакнул кнопку
        $userName = trim(@$_POST["user"]);
        $userPass = trim(@$_POST["pass"]);
        if ($userName=="") { $error[]="Не заполнено поле \\"Имя\\""; }
        if ($userPass=="") { $error[]="Не заполнено поле \\"Пароль\\""; }
        if (array_key_exists($username, $users) && $users[$userName]!=md5($userPass)) { $error[]="Неверный пароль"; } // @ тут нужна потому что если индекса с логином не окажется чтобы РНР не ругался.
        if (!count($error)) {
                $_SESSION[\'username\'] = $userName; // С переменными сесси гораздо удобней работать как с суперглобальным массивом.
                $_SESSION[\'userpass\'] = $userPass;
        }
}

if (count($error)){ // Если $error не пуст покажем его содержимое.
        echo "Ошибка";
        foreach ($error as $value) { echo "<li>$value</li>"; }
}

if (!$_SESSION[\'username\']){
?>
<form action="<?=$_SERVER[\'PHP_SELF\'];?>" method="post">

Username: <input name="user" type="Text" size="10">

Password: <input name="pass" type="Password" size="10">

<input name="logon" type="submit" value="Войти">
</form>
<?
exit; // Вывести форму и закончить выполнение скрипта.
}
?>

test.php
<? 
require("auth.php");
?>
А вот тут уже что угодно :)

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии