簡體   English   中英

PHP的形式變量沒有定義-我在做什么錯?

[英]php form variables not defined - what am i doing wrong?

我正在嘗試使我的登錄表單工作-數據庫已創建並且用戶存在-我收到的錯誤消息是:

Successfully connected to server.
Successfully connected to the MemberDirectory database: 
Notice: Undefined variable: loginEmail in C:\xampp\htdocs\CSC8417\Project\userlogin.php on line 231
Notice: Undefined variable: password in     C:\xampp\htdocs\CSC8417\Project\userlogin.php on line 231
SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY...

產生此錯誤的代碼是:

<div class="login-form">
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input type="hidden" name="submit" value="true" class="submit-container"/>
        <table class="form-container">
            <tr><td><label class="form-title">User Email: </td><td><input type="text" name="loginEmail" class="form-field"/></label></td></tr>
            <tr><td><label class="form-title">Password: </td><td><input type="password" id="password" name="password" class="form-field"/></label></td></tr>
            <tr><td></td><td><input type="submit" class="submit-button" name="submit" value="Login" href="account.php"/></td></tr>
        </table>
</div>
<?php
include ('libcommon.php');

if(isset($_POST['submit'])){
$loginEmail =  $_POST['loginEmail']; 
$password   =  $_POST['password'];

}
function SignIn() { 

    if(!empty($_POST['loginEmail'])) {            //checking the 'user' name which is from Sign-In.html, is it empty or have some text 

        $query = mysql_query("SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error()); 
        if(!empty($row['loginEmail']) AND !empty($row['password'])) { 
            $_SESSION['loginEmail'] = $row['password']; 
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
            } else { 
            echo "SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
    }
}

 SignIn();  

?>

您需要創建變量

$loginEmail = $_POST['loginEmail'] 

在功能Signin中的if語句中。
只是一個建議-您應該在if語句中調用Signin()檢查表單提交。

您試圖在無法訪問的范圍內訪問變量。 使用global關鍵字將變量設置為global。 最終代碼:

<div class="login-form">
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input type="hidden" name="submit" value="true" class="submit-container"/>
        <table class="form-container">
            <tr><td><label class="form-title">User Email: </td><td><input type="text" name="loginEmail" class="form-field"/></label></td></tr>
            <tr><td><label class="form-title">Password: </td><td><input type="password" id="password" name="password" class="form-field"/></label></td></tr>
            <tr><td></td><td><input type="submit" class="submit-button" name="submit" value="Login" href="account.php"/></td></tr>
        </table>
</div>
<?php
include ('libcommon.php');

if(isset($_POST['submit'])){
global $loginEmail =  $_POST['loginEmail']; 
global $password   =  $_POST['password'];

}
function SignIn() { 

    if(!empty($_POST['loginEmail'])) {            //checking the 'user' name which is from Sign-In.html, is it empty or have some text 

        $query = mysql_query("SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error()); 
        if(!empty($row['loginEmail']) AND !empty($row['password'])) { 
            $_SESSION['loginEmail'] = $row['password']; 
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
            } else { 
            echo "SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
    }
}

 SignIn();  

?>

現在將刪除兩個錯誤,但是您的代碼並不完美。您應該在考慮所有異常的情況下進行代碼編寫。

嘗試此更新的代碼。在函數“ SignIn()”中設置變量

碼:

<div class="login-form">
    <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="POST">
    <input type="hidden" name="submit" value="true" class="submit-container"/>
        <table class="form-container">
            <tr><td><label class="form-title">User Email: </td><td><input type="text" name="loginEmail" class="form-field"/></label></td></tr>
            <tr><td><label class="form-title">Password: </td><td><input type="password" id="password" name="password" class="form-field"/></label></td></tr>
            <tr><td></td><td><input type="submit" class="submit-button" name="submit" value="Login" href="account.php"/></td></tr>
        </table>
</div>
<?php

function SignIn() { 

    if(!empty($_POST['loginEmail']) && isset($_POST['submit']) ) { 
        $loginEmail =  $_POST['loginEmail']; 
        $password   =  $_POST['password'];
        //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
        echo "SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'";
        $query = mysql_query("SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error()); 
        if(!empty($row['loginEmail']) AND !empty($row['password'])) { 
            $_SESSION['loginEmail'] = $row['password']; 
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
            } else { 
            echo "SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
    }
}

 SignIn(); 

?>

或者嘗試這種方式,它將為您提供幫助!

<?php

function SignIn($loginEmail,$password) { 

    if(!empty($_POST['loginEmail']) && isset($_POST['submit']) ) { 

        //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
        echo "SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'";
        $query = mysql_query("SELECT * FROM members where loginEmail = '$loginEmail' AND password = '$password'") or die(mysql_error()); 
        $row = mysql_fetch_array($query) or die(mysql_error()); 
        if(!empty($row['loginEmail']) AND !empty($row['password'])) { 
            $_SESSION['loginEmail'] = $row['password']; 
            echo "SUCCESSFULLY LOGIN TO USER PROFILE PAGE..."; 
            } else { 
            echo "SORRY... YOU ENTERED WRONG ID AND PASSWORD... PLEASE RETRY..."; 
            } 
    }
}

 if(!empty($_POST['loginEmail']) && isset($_POST['submit']) ) { 
     $loginEmail =  $_POST['loginEmail']; 
     $password   =  $_POST['password'];
     SignIn($loginEmail,$password ); 
 }

?>

謝謝!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM