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