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