Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[PHP] проблема с сессиями 29.09.03 18:28
Автор: choor Статус: Elderman
|
Что тут не правильного? Всё делаю по докам:
<?php
include("pass.inc.php");
if($_POST["pass"]) { $pass=$_POST["pass"]; }
session_start();
if (!isset($_SESSION['pass']))
{
$_SESSION['pass'] = $pass;
}
if(md5($_SESSION['pass'])!=$password)
{
?>
<center>
Пароль доступа:<br>
<form method=post action=sess.php>
<input type=password name=pass><br>
<input type=submit value="Войти">
</form>
<?
}
else
{
echo "Авторизация принята";
}
---
Все эта мутата из-за "register_globals=off" было бы "on"
другой вопрос, а так какие-то проблемы :(
|
|
может быть из-за этого ? 30.09.03 11:31
Автор: tdes <jin> Статус: Member
|
> Что тут не правильного? Всё делаю по докам: > > <?php > include("pass.inc.php"); > > if($_POST["pass"]) { $pass=$_POST["pass"]; } > > session_start(); >
Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.
что происходит в pass.inc.php ?
session_start()
|
| |
нет 30.09.03 12:28
Автор: choor Статус: Elderman
|
Там просто пароль в md5
|
| | |
а в чем конкретнее заключается проблема ? 30.09.03 12:45
Автор: tdes <jin> Статус: Member
|
|
|
[PHP] проблема с сессиями 30.09.03 11:01
Автор: paganoid Статус: Member
|
> Что тут не правильного? Всё делаю по докам: > > <?php
> include("pass.inc.php");
>
> if($_POST["pass"]) { $pass=$_POST["pass"]; }
>
> session_start();
>
> if (!isset($_SESSION['pass']))
> {
> $_SESSION['pass'] = $pass;
> }
>
> if(md5($_SESSION['pass'])!=$password)
> {
> ?>
> <center>
> Пароль доступа:<br>
> <form method=post action=sess.php>
> <input type=password name=pass><br>
> <input type=submit value="Войти">
> </form>
> <?
> }
> else
> {
> echo "Авторизация принята";
> }
> ---
> > Все эта мутата из-за "register_globals=off" было бы "on" > другой вопрос, а так какие-то проблемы :(
ежели в начале скрипта явно напишешь
$pass="";
$password="";
мутоты с register_globals=off будет меньше. Только я вот не понимаю самой схемы - почему session_start вызывается ДО проверки пароля? И зачем пароль хранится в переменных сессии? Вобщем назначение этого фрагмента кода совершенно неясно.
|
| |
[PHP] проблема с сессиями 30.09.03 12:32
Автор: choor Статус: Elderman
|
> $pass=""; > $password=""; Дык если я их сразу вместе задам, как будет проходить авторизация? :)
А пароль храню в сессии чтобы 1000 раз его не вводить, разве не ясно? ;)
|
| | |
[PHP] проблема с сессиями 30.09.03 13:16
Автор: paganoid Статус: Member
|
> > $pass=""; > > $password=""; > Дык если я их сразу вместе задам, как будет проходить > авторизация? :)
задавать их нужно до использования, тогда notice'ов не будет.
$pass ="" нужно сделать, чтоб переменная была инициализирована до каких бы то ни было условных блоков, или по крайней мере заменить
if($_POST["pass"]) { $pass=$_POST["pass"]; } на
$pass=$_POST["pass"] ? $_POST["pass"] : "";
> А пароль храню в сессии чтобы 1000 раз его не вводить, > разве не ясно? ;)
Неясно ;) Логичнее было бы имхо при корректности входа выставлять некий флажок, а по нему уже определять, корректный ли юзер или нет (а у тебя и каждый раз md5 вызывается, подтормаживает, и открытый пароль лежит в переменных сессии)
вот варьянт:
session_start ();
if (isset($_POST["pass"])){
$_SESSION["logged_in"] = (md5($_POST['pass'])==$passwordhash ? 1 : 0);
}
if (isset($_SESSION["logged_in"]) && $_SESSION["logged_in"] == 1){
аутентификация пройдена
}
else {
выводим форму;
}
---
|
|
|