Вы не зашли.
Главная » PHP » SESSION
#1. 2010 Off (1)
Участник
2010.02.24 09:09
У меня проблема.
Вот например авторизация админа.

<?php

session_start();

$al="admin";

$ap="pass";

if($_POST['login']==$al && $_POST['pass']==$al) {

$_SESSION['login']=$al;

$_SESSION['pass']=$ap;

print "<a href=/index.php>Home</a>";
}
print "
<form method=post>

login<input type=text name=login>

pass<input type=text name=pass>

<input type=submit value=login>
</form>";
?>

теперь индекс:
<?php

session_start();

$al="admin";

$ap="pass";

if($_SESSION['login']=$al && $_SESSION['pass']=$ap) {

print "privet admin";
}

?>
теперь файл конфигурации php.ini:

session.use_trans_sid = on

--ВСЁ--

В общем когда авторизируюсь под логином админа и перехожу на главную то мне не пишет что я админ. Сессия, авторизация, индекс, пхп.ини - вроде всё верно. Но в чем error? или надо зарегать в session_register(); ? Гемарой, будь добр поделись знанием. у меня Регистер глобал - офф.
#2. Gemorroj Off (107)
Administrator
2010.02.24 10:10
стартовать сессию нужно во всех файлах где она используется
#3. 2010 Off (1)
Участник
2010.02.24 11:11
Щас попробую.
#4. 2010 Off (1)
Участник
2010.02.24 14:02
Да всё равно не работает. Не один скрипт открыл, всё написано правильно как и у меня. Я даже проверял оператором иф админ вошел или нет. Не хочет работать вобще. Я мля не понимаю. Я специально создал одну страничку для теста. сессия_старт(); - стоит! сессия[логин и пароль]. но всё равно пишет мне что я не админ и как бы вобще не авторизирован. Че за нахер? может у меня php.ini не правильно сконфигурирован? да врядли. Я открывал два скрипта, там также написано как и у меня.
Добавлено спустя   1 минуту  38 секунд:
Чо та я наверно не так сделал.
Добавлено спустя   4 минуты  4 секунды:
Гемарой, вот в том то и прикол, сессия стартует во всех файлах где она используется. Сессия у меня всегда самая первая на первой строке.
#5. 2010 Off (1)
Участник
2010.02.24 17:05
Всё! код, видь он у меня правельный был. Но каким то фигом у меня php.ini заблудился. А я сижу, думаю где проблема а там php.ini на приколе. Гг.
#6. @Office Off (0)
Участник
2010.03.01 22:10
Имхо, по мне лучше сделать вот так:
$set['pass'] = 123; //Пароль
if(isset($_GET['pass']))
{
    if ($_GET['pass'] == $set['pass'])
    {
        $_SESSION['pass'] = $_GET['pass'];
        @setcookie("pass", $_GET['pass'], time()+3600);
    }
}
$admin = $_SESSION['pass'] == $set['pass'];
А потом проверяешь типо if($admin) echo 'ты админ';
else echo 'Не админ :p';
tongue
#7. Gemorroj Off (107)
Administrator
2010.03.01 22:10
да, интересный вариант)
#8. НЕЗНАЙКА Off (11)
Участник
2010.03.02 18:06
Только пасс крыть надо
ДАУН-Данная Аватара Унаследована Незнайкой
#9. @Office Off (0)
Участник
2010.03.02 21:09
НЕЗНАЙКА, че его крыть то?
Добавлено спустя   3 минуты  55 секунд:
Вот еще 1 вариант smile
$login = 'логин';
$passwd = 'пароль';
if(!isset($_SESSION["ok"])) {
  @$name = trim($_POST["name"]);
  @$pass = trim($_POST["pass"]);
  if(empty($name)) {
    echo '<form action="'.$_SERVER["PHP_SELF"].'" method="POST">
          <small>Логин:</small>
          <br />
          <input type="text" name="name">
          <br />
          <small>Пароль:</small>
          <br />
          <input type="password" name="pass">
          <br />
          <input type="submit" value="OK">
          </form>';
    exit();
  }
  if($name == $login and $pass == $passwd) {
    if($opera_mini == TRUE) {
      $_SESSION["ok"] = md5(md5($_SERVER["HTTP_USER_AGENT"]).md5(date("d")));
      $_SESSION["p"] = md5($pass);
    } else {
        $_SESSION["ok"] = md5(md5($_SERVER["HTTP_USER_AGENT"]).md5($_SERVER["REMOTE_ADDR"]));
        $_SESSION["p"] = md5($pass);
      }
  }
  if($name != $login) {
    exit('Вы ввели неправильные данные.');
  }
  if($pass != $passwd) {
    exit('Вы ввели неправильные данные.');
    }
  } else {
      if($opera_mini == TRUE) {
      if($_SESSION["ok"] != md5(md5($_SERVER["HTTP_USER_AGENT"]).md5(date("d")))) {
        unset($_SESSION["ok"]);
        $_SESSION["ok"] = FALSE;
        unset($_SESSION["p"]);
        $_SESSION["p"] = FALSE;
        unset($_SESSION["p"]);
        session_destroy();
        exit('ERROR AUTHORISATION');
      }
    } else {
        if($_SESSION["ok"] != md5(md5($_SERVER["HTTP_USER_AGENT"]).md5($_SERVER["REMOTE_ADDR"]))) {
          unset($_SESSION["ok"]);
          $_SESSION["ok"] = FALSE;
          unset($_SESSION["p"]);
          $_SESSION["p"] = FALSE;
          unset($_SESSION["p"]);
          session_destroy();
          exit('ERROR AUTHORISATION');
        }
      }
      if($_SESSION["p"] != md5($passwd)) {
          unset($_SESSION["ok"]);
          $_SESSION["ok"] = FALSE;
          unset($_SESSION["p"]);
          $_SESSION["p"] = FALSE;
          unset($_SESSION["p"]);
          session_destroy();
          exit('ERROR AUTHORISATION');
      }
    }
tongue
#10. НЕЗНАЙКА Off (11)
Участник
2010.03.03 14:02
Затем, чтобы куки не утащили. А там пароль в чистом виде
ДАУН-Данная Аватара Унаследована Незнайкой
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.016 s