информационная безопасность
без паники и всерьез
 подробно о проекте
Все любят медЗа кого нас держат?Где водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Взлом шлюзов Check Point закончился... 
 eMudhra объяснила появление крайне... 
 Apache HTTP/2 позволяет выполнять... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[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 {
  выводим форму;
}




---

1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach