2016-05-09 19 views
0

私はこれを修正しようとしていますが、私のためにはうまくいきません。セッションが開始されましたが、unset($_SESSION['variable']を使用してログアウトした後、セッションが設定されていないため、ログインできません。変数を設定解除した後にセッションが開始しないように修正するには

私を助けてください。注:変数の設定を解除した後はログインできません。 $ _SESSIONを使用する前に

//this is login.php 
<?php 
    session_start(); 
    ob_start(); 
    $msg = ""; 
    if (isset($_POST['login'])){ 
     include "dbconnect.php"; 
     if($_SESSION['emaill'] !== NULL){ 
      $emaill= $_SESSION['emaill']; 
      $passWord = $_POST['passWord']; 
      if (empty($emaill && $passWord) == false){ 
       $sql = "SELECT * FROM `sono` WHERE `eMail`='$emaill' && `passWord`='$passWord'"; 
       $check = mysqli_query($dbconnect, $sql) or die (mysqli_error($dbconnect)); 
       $result = mysqli_num_rows($check); 
       if ($result > 0){ 
        $emaill= $_SESSION['emaill']; 
        header ('location: home.php'); 
        exit(); 
       } else 
        $msg = "<p style='color: red; padding-left: 10px'>Invalid password or email address</p>"; 
      } else 
       $msg = "<p style='color: red; padding-left: 10px'>Please enter your email and password to login</p>"; 
     } else 
      $msg = "<p style='color: red; padding-left: 10px'>My scripts not working yet</p>"; 
    } 
?> 

// this is for logout 
<?php 
    session_start(); 
    if (isset($_SESSION['emaill'])){ 
     unset($_SESSION['emaill']); 
     header('location: login.php'); 
    } 
?> 
+3

[PHP:「注意:未定義の変数」と「注意:未定義のインデックス」]の可能な重複(http://stackoverflow.com/questions/4261133/php- - :あなたは以下のようにチェックしてみてください –

+2

ログアウトでは、$ _SESSION ['emaill'] 'を破棄しますが、再度ログインしようとすると、8行目の' email'の存在を確認しません'if($ _ SESSION ['emaill']!== NULL){'使用しようとする前に – RiggsFolly

答えて

3

[ 'emaill']、(ISSETでそれを確認してください)のような:

if(isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){ 
---- 
--- 
} 
+1

Rahjithに感謝します。私は電子メールをテストしましたが、それはもはや存在しません。それは私に未定義のインデックスをもう一度与えていませんが、ログインクエリが機能していません。上記の最後のエラーを表示しました。 $ msg = "

スクリプトがまだ動作していません

"; –

+0

sqlをechoしてmysqlを直接実行し、表示されているエラーを確認してください –

+0

sqlをエコーし​​た後、表示されています注意:未定義の変数:C:\ xampp \ htdocs \ buth_net \ nursingSchool \ login.php mysqlから実行すると、空の結果が返されます。私は大事なのは、ログアウト後にセッションが開始していないと思います。 –

0

あなたは空を使用することができ、ここで

if(isset($_SESSION['emaill']) && $_SESSION['emaill'] !== NULL){ 
0

issetチェックを追加します。値が存在するかどうかをチェックするためにSESSIONの前に機能します。変数がログアウト時に未設定または破棄されているため、ログイン時にセッションを認識できません。

if(!empty($_SESSION['emaill'])) 
{ 

// Your code here 

} 
関連する問題