2014-01-30 11 views
0

Я не могу начать сеанс, даже этот код работает правильно на другом веб-сайте, но на веб-сайте, который я сейчас создаю, он не будет работать. Это код:не может начать сеанс для пользователя

if(isset($_POST["username"])&& isset($_POST["password"])) { 
    $manager = preg_replace('#[^A-Za-z0-9\@\-\_\|\,\.\\p{L}\\\\]#i', '', $_POST["username"]);//filter everything but numbers and letters 
    $password = preg_replace('#[^A-Za-z0-9]#i', '', $_POST["password"]);// filter everything but numbers and letters 
    // Connect to the Mysql database 
    $q = "SELECT * FROM users WHERE username='$manager' AND password='$password' LIMIT 1"; 
    $r = mysqli_query($dbc, $q); 
    $userCount = mysqli_num_rows($r); 

    if($userCount == 1) { 

      while ($user = mysqli_fetch_assoc($r)) { 

       $id = $user['id']; 
       $pass = $user['password']; 
       $us = $user['username']; 

      } 

      $_SESSION["id"] = $id; 
      $_SESSION["manager"] = $us; 
      $_SESSION["password"] = $pass; 
      header("location:index.php?page=business"); 
      exit(); 

    } else { 
     echo 'That information is incorrect,try again <a href="index.php">Click Here</a>'; 
    } 

} 

до этой части кода

$id = $user['id']; 
$pass = $user['password']; 
$us = $user['username']; 

все отлично работает, но после того, как я установил сессионные переменные:

$_SESSION["id"] = $id; 
$_SESSION["manager"] = $us; 
$_SESSION["password"] = $pass; 
header("location:index.php?page=business"); 
exit(); 

не сеанс не найден, может любой из Помоги мне?

+1

Вы добавили 'session_start()' на верхней части PHP кодов? –

+0

Вы поставили session_start() на этой странице перед установкой sesions – krishna

+0

Вам нужно добавить session_start() на сценарий –

ответ

0

Не забудьте использовать начало сеанса, например:

session_cache_expire(20); 
     session_start(); 
     session_unregister($username_session); 
     session_register($username_session); 

$_SESSION[$start_session] = time(); 
     $validation = true; 
     $_SESSION[$username_session] = $user; 

Все мои сайты, я использую этот код для входа в систему, вы можете попробовать использовать на вашем входе в систему!

if ($_POST['btnLogin']) { 

$texto = mysql_query("SELECT user, password from " . $site . "User"); 


$user = $_POST["user"]; 
$pwd = md5($_POST["pwd"]); 

$users = array(); 
$pwds = array(); 

while ($row = mysql_fetch_array($texto)) { 
    array_push($users, $row['user']); 
    array_push($pwds, $row['password']); 
} 
$size = count($users); 
$validation = false; 
$i = 0; 
do { 
    if ($user == $users[$i] && $pwd == $pwds[$i]) { 
     session_cache_expire(20); 
     session_start(); // NEVER FORGET TO START THE <strong class="highlight">SESSION</strong>!!! 
     session_unregister($username_session); 
     session_register($username_session); 
     $inactive = 1200; 
     if (isset($_SESSION[$start_session])) { 
      $session_life = time() - $_SESSION[$start_session]; 
      if ($session_life > $inactive) { 
       header("Location: login.php"); 
      } 
     } 
     $_SESSION[$start_session] = time(); 
     $validation = true; 
     $_SESSION[$username_session] = $user; 

     header("Location: index.php"); 
    } 
    $i++; 
} while ($i < $size && $validation == false); 
if ($validation == false) { 
    $mensagemerro = 'Login Error!'; 
} 
if (!mysql_close($conn)) { 
    die('Could not close BD:' . mysql_error()); 
    } 
} 
?> 
+0

Я не уверен, что вы хотели опубликовать это в другом месте? Редактировать: Это не касается исходного вопроса об использовании сеансов. – Sean

+0

Это аналогичный код, который я использую! Я проверяю пользователя и пароль в базе данных mysql. Если положительно, я вхожу в index.php. Если нет, я печатаю сообщение об ошибке. Также используйте сеансы. Спасибо – user2428731

0

При использовании сеансов в PHP требуется session_start(), прежде чем вы сможете получить доступ к глобальному $ _SESSION.

Вы используете эту функцию? Если нет, оставьте его и проверьте.

+0

большое спасибо – user3185201

0

Когда вы собираетесь использовать переменную SESSION, это означает, что вы собираетесь начать или возобновить сессию.

так, чтобы начать или возобновить применение SESSION session_start() перед процессом

+0

большое спасибо – user3185201

Смежные вопросы