繁体   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