2017-12-02 15 views
-1

を格納していない、ちょうど大学のプロジェクトとして2週間前に開始し、イムは、私のログインページにSESSIONに苦労。 print_r($ SESSION)関数を印刷すると空になります。以下は下のコードです(psは現時点でSQLインジェクションについて心配していません)。

他のすべてが完全に機能し、エラーが完全に表示されます。そのセッションの値が空になります!

構成的フィードバックのみお願いします!そして、2週間前に始めたばかりなので、plsはあまり複雑ではないようにしてください。あなたは以下のようなデバッグセッションに必要

<?php 
session_start(); 
include 'dbconnect.php'; 
$emailerror = $passworderror = ""; 

if(isset($_POST['submit'])) 
{ 


    $email= $_POST["email"]; 
    $password= $_POST["password"]; 

    if (empty($email)) { 
     $emailerror = "*Email must be entered"; 
    } 

    elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) 
    { 
     $emailerror= "*Invalid email address Entered";  
    } 

    // To check if email has already been used or if another account with the same email exists 
    else{   
     $emailquery = ("SELECT * FROM `Potential_Employee` WHERE `Email` = '$email'"); 
     $emailcheckresult = mysqli_query($connection, $emailquery); 


     if(mysqli_num_rows($emailcheckresult) == 1){    
      $row=mysqli_fetch_assoc($emailcheckresult); 

      if (!password_verify($password, $row['Password'])){ 
       $passworderror = "*Password is incorrect!"; 
      } 
      else{ 
       $_SESSION['Email'] = $email; 
       $_SESSION['logged_in'] = true; 
       echo "<script>document.location='EmployeeDashboard.php';</script>"; 

      } 

     } 
     else{ 
      $emailerror = "*Email does not exist"; 
     } 

    } 

    if (empty($password)) { 
     $passworderror = "*Password must be entered"; 
    } 

    elseif (strlen($password) < 4) 
    { 
     $passworderror= "*Password Has to be greater than 8 Characters"; 
    } 
+0

少し先端が、私はあなたの場合は... SQLIに言及習慣あなたのエラーを保存します。 '$ emailerror、$ passworderror'を' $ errors ['email']、$ errors ['password'] 'のような配列で指定すると、空であるかどうかを単純にチェックできます。より洗練されたグループ分けで、より簡単にビューなどに渡すことができます。一度、20以上の入力を持つフォームに移動すると、それらのグローバル変数をすべて覚えておく必要はありません。ハッピーコーディング.. –

+0

良い点@ LawrenceCheroneハッピーコーディング –

+0

@ LawrenceCheroneああありがとうございます。 – TomCreed

答えて

-1

:それはちょうど誤植だよう

print_r($_SESSION); 

それとも

echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>'; 
// Make second argument TRUE so it will return instead of echo 

それとも

echo '<pre>'; 
var_dump($_SESSION); 
echo '</pre>'; 
+0

私が尋ねることがあれば、デバッグはどういう意味ですか?申し訳ありませんが、私はこれらの用語に新しいです。また、Iveはあなたの最初の機能を試してセッションの内容を確認しましたが、Array - >()などのように表示されます。配列が空です – TomCreed

+0

は、すべてのセッションが出力されているかどうかを確認することを意味します。そのないそこにすべてのあなたのあなたが同じ場所で、私は私の$ _SESSION機能を置くことを見れば条件があるため、私は条件が満たされていると思い –

+0

その空の間違った方法で印刷されています別のページにリダイレクトされます。私は何かが停止したりと干渉していると思うのセッション –

関連する問題