[英]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.