1 Востаннє редагувалося FakiNyan (11.12.2014 17:50:11)

Тема: Чому $_SESSION не парцює?

Хай. Значит роблю форму реєстрація і входження на сайт.
Коли юзер вводить дані (при логіні), то вони от так от обробляються

<?PHP

$login = $_POST["user_nameL"];
$pass = $_POST["passL"];

$db = new PDO('mysql:host=localhost;dbname=shop',"shop_admin","123");
      $stmt=$db->query("select count(*) from users where user_name='".$login."' and pass=password('".$pass."')");
      $res =  $stmt->fetch()[0];
      
      if($res!=0)
      {
        $_SESSION['user_name']=$login;
        echo $_SESSION['user_name'];
        header("Location: /");
        die();
      }
      else
      {
        echo "Wrong login or password";
      }
      

?>

А в стандартному виді, я перевіряю, чи не пуста змінна $_SESSION['user_name'].

<section id="login">
<?php
if(isset($_SESSION['user_name'])):
?>

<span id="welcome">Welcome <?=$_SESSION['user_name']?></span>
<a href="/exit/">Exit</a>
<?php
endif;
?>

<?php
if(!isset($_SESSION['user_name'])):
?>
<a id="log" href="/login/log">Log In</a>
<a id="sign" href="/login/sign">Sign Up</a>
<?php endif;?>
</section>

Ну і типу, коли юзер не увійшов, то йому пропонується увійти або зарегатись, а якщо увійшов, то показується напис - Велкам юзернейм, і дається змога вийти з сайту.
Але в мене не проходить перший if, ну ніяк. Ніби та змінна $_SESSION['user_name'] не встановлюється ніде.

2 Востаннє редагувалося Invader (11.12.2014 18:00:45)

Re: Чому $_SESSION не парцює?

Слідк викликати функції  session_start() кожного разу, коли ви збираєтесь працювати з сесіями. І виклик даної функції повинен передувати будь-якому іншому виводу від PHP скрипта.

3

Re: Чому $_SESSION не парцює?

Invader написав:

Слідк викликати функції  session_start() кожного разу, коли ви збираєтесь працювати з сесіями. І виклик даної функції повинен передувати будь-якому іншому виводу від PHP скрипта.

я то роблю, в мене є ще одна штука, котра зав'язана на $_SESSION, і вона працює чудово

4 Востаннє редагувалося Invader (11.12.2014 18:37:07)

Re: Чому $_SESSION не парцює?

Вищенаведені скриптти в різних файлах? Якщо так то чи в обох викликається session_start? Виведіть в першій програмі значення $_SESSION['user_name'].

І не забувайте, що $_SESSION['user_name'] може містити щось на зразок '   ', і isset($_SESSION['user_name']) буде дорівнювати TRUE.

Подякували: FakiNyan1

5

Re: Чому $_SESSION не парцює?

Invader написав:

Вищенаведені скриптти в різних файлах? Якщо так то чи в обох викликається session_start? Виведіть в першій програмі значення $_SESSION['user_name'].

І не забувайте, що $_SESSION['user_name'] може містити щось на зразок '   ', але isset($_SESSION['user_name']) всеодно буде дорівнювати TRUE.

пффф, додав сессіон_старт() в той файлик, де ініціалізується змінна, і запрацювало :3