2017-07-15 4 views
0

phpとpdoを使用してログインページを作成し、正しくログインしましたが、ログアウトボタンをクリックすると再び表示されます私も、使用済みのセッションにログインして、それが正常に実行されていない場合にのみ、でもBowserはログアウト後もログアウトしてもログインします。

<?php 
include('connect.php'); 
session_start(); 
if(isset($_POST['logout'])){ 
{ 
unset($_SESSION['logged_in']); 
session_destroy(); 
header("location:index12.php"); 
} 
} 
    if(isset($_POST['login'])) 
     { 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $errflag = false; 
    if($username == '' and $password == '') { 
    echo "you must enter username and password"; 
    $errflag = true; 
    } 
    if ($errflag == false) { 
    SignIn($username,$password); 
    } 
    } 
    function SignIn($username,$password){ 
    global $connect; 
    $search = $connect->prepare("SELECT * FROM users where username = 
    :username AND password = :password "); 
    $search->bindParam(':username',$username); 
    $search->bindParam(':password',$password); 
    $search->execute(); 
    $count = $search->rowCount(); 
    if($count> 0) 
    { 
     $_SESSION['username'] = $_POST['username']; 
      if(!isset($_SESSION['logged_in'])) 
       header("Location: myfile.php"); 
    } 
    else{ 
     echo "wron email or password"; 
    } 
} 
?> 

内側のページのコードは、ありがとう、私は上記のように更新

<?php 
echo "welcome to the website "; 
echo "congrats you are logged in "; 
?> 
<html> 
<head> 
<title> 
welcome here</title> 
</head> 
<body> 
<form method ="POST" action = "login.php"> 
<button name="logout" style="float:right;">logout</button> 
</form> 
<h1><center>google is one of the best search engine</center></h1> 
</body> 
</html> 

ですが、それは

に動作していません
+0

どのようにセッションを開始しますか? – funilrys

+0

答えを完全なエラーメッセージで更新してください! – funilrys

答えて

0

コードの一部を追加session_start();をページの先頭に追加します。あなたはconnect.phpでセッションを開始していない場合

<?php 
session_start(); 
if(isset($_POST['logout'])){ 
    { 
    unset($_SESSION['logged_in']); 
    session_destroy(); 
    header("location:index12.php"); 
} 
} 
?> 

また、あなたはにsession_start()を使用してセッションを開始する必要がなければなりません。

<?php 
session_start(); 
include('connect.php'); 
+0

上記のコードはすでにログアウトページにありましたが、動作していません –

+0

start_session()を保持するとフォールオーバーエラーが返されます---致命的なエラー:未知のエラー:未定義の関数start_session()をC:\ xampp \ htdocs \ login.php:3スタックトレース:#0 {メイン} C:\ xampp \ htdocs \ login.phpに投げられました –

+0

'session_start()'ではない 'start_session()'私の答えを見てください@Ram – funilrys

0

私はあなたがあなたのセッションを開始しないのか分からないけど、この提案:

私は、一般的に次のようになりますnew_session()関数を記述します。私はそれを何らかの制御をすることができるように、クッキーパラメータを設定することを好む。あなたは、この新しい機能の使用方法についてのsession_get_cookie_params()heresession_set_cookie_params()here

戻るあなたの例に

をドキュメントを見つけることができます

function new_session() 
{ 
    $cookieParams = session_get_cookie_params(); 
    session_set_cookie_params($cookieParams['lifetime'], $cookieParams['path'], $cookieParams['domain'], Sessions::SECURED_COOKIES, Sessions::HTTP_ONLY); 

    session_name('My_Awesome_App');  
    session_start(); 
    session_regenerate_id(); 

} 

、すべて

function destroy_session() 
{ 
    session_unset(); 

    $params = session_get_cookie_params(); 
    setcookie(session_name(), '', time() - 42000, $params['path'], $params['domain'], $params['secure'], $params['httponly']); 

    session_destroy(); 
} 

を破壊する別の1 new_session()をオンにする必要がありますあなたのページの一番上にあり、あなたのログアウトは次のようになります。

new_session(); 
if (isset($_POST['logout'])) { { 
     unset($_SESSION['logged_in']); 
     destroy_session(); // our new function 
     header("location:index12.php"); 
    } 
} 
+0

@ラム私も私の答えを更新... – funilrys

関連する問題