2012-02-25 2 views
-1

У меня есть две функций в моем процессе регистрации, когда я проверил, как пользователь я бег ValidateUser ведьму устанавливает данные сеансаPHP сессия не держит

function validateUser(){ 
    session_regenerate_id(); //this is a security measure 
    $_SESSION['valid'] = 1; 
    messenger("you are now logged in"); 
    messenger($_SESSION); // this prints out fine 
} 

function isLoggedIn(){ 
    messenger($_SESSION); // this DOES NOT 
    if(isset($_SESSION['valid']) && $_SESSION['valid']) return true; 
    return false; 
} 

и вот как я называю их все его запустить с теми же страниц

session_start(); 
if(!isLoggedIn()){ 
    messenger('you are not logged in'); 
    if($page =="register"){ 
     $content = $page.".tpl"; 
     if($_POST && register_user()) $content = "login.tpl"; 
    }else{ 
     $content = "login.tpl"; 
     if($_POST && log_in()){ 
      if(isLoggedIn()) $content = $page.".tpl"; 
     } 
    } 
}else{ 
    if(!$page) $page = "bot"; 
    $content = $page.".tpl"; 
} 

примечание: log_in() вызывает ValidateUser

поэтому, когда пользователи получает страницу входа в систему вводит его информацию, то он получает доступ, яй! , но затем, когда он переходит на любую другую страницу, он отправляется обратно на страницу входа и данные сеанса исчезли. я делаю что-то не так с моей сессией?

ок позвольте мне упростить

page1.php

<?php 
session_start(); 
$_SESSION['foo'] = 'bar'; 
?> 

page2.php

<?php 
session_start(); 
echo $_SESSION['foo']; //will output bar 
?> 

но Foo не повторил

кажется проблемой сервера ... ..

+2

Извините, на чем вопрос ...? – deceze

+0

Странно, но я думаю, вы можете раскомментировать 'session_regenerate_id()' и повторите попытку. – Lake

+0

@deceze появляется я забыл закончить набирать lol я отредактировал мой вопрос – mcgrailm

ответ

1

Сервер session_save_path не был доступен для записи, поэтому я переопределил путь и исправил права доступа