2014-01-30 5 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

당신은 당신의 PHP 코드의 상단에'으로 session_start()를'추가 했습니까? –

+0

sesions를 설정하기 전에 해당 페이지에 session_start()를 넣었습니까? – 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 전역에 액세스하려면 session_start()이 필요합니다.

이 기능을 사용하고 있습니까? 그렇지 않다면, 그것을 떨어 뜨리고 그것을 테스트하십시오.

+0

대단히 감사합니다 – user3185201

0

SESSION 변수를 사용할 때 세션을 시작하거나 다시 시작한다는 의미입니다.

그래서 프로세스가 완료되기 전에 세션 사용 session_start()를 시작하거나 다시 시작하기 위해

+0

대단히 감사합니다. – user3185201

관련 문제