我是PHP腳本編程新手,來自Java背景。這是一件微不足道的事情,到現在爲止我已經變成了一個謎題。所以這裏是問題所在,我給變量賦了一些值,當試圖在if/else語句中使用該值時,該變量實際上並未擁有先前分配的值。下面是代碼: -當在PHP中的if/else語句中訪問時變量超出範圍
<?php
session_start();
$email = $_POST["Email"];
$password = $_POST["Password"];
$db_username="root";
$db_password="root";
$database="mydb";
$localhost = "mysql";
$con = mysql_connect($localhost,$db_username,$db_password);
mysql_select_db($database,$con) or die("Unable to select database");
$query = "select * from photobook.users where email ='$email' and password ='$password';" ;
$result = mysql_query($query);
$num=mysql_num_rows($result);
if($num == 1){
while($row = mysql_fetch_array($result))
{
$_SESSION['email'] = $row['email'];
$_SESSION['username'] = $row['username'];
}
header("location: home.php");
}
else{
include "photoBookProtocol.php";
print "<br>email value after photobookprotocol file include is $email";
print "<br>password value after photobookprotocol file include is $password";
$obj=new Protocol();
$var = $obj->loginCheck($email,$password);
print "value of var received is $var";
if($var == 0){
session_destroy();
print "<br>user does not exist";
//header("location: login.php");
}
else{
$_SESSION['email'] = $var[0];
$_SESSION['username'] = $var[1];
print "<br>user exists";
header("location: home.php");
}
}
mysql_close($con);
?>
所以,當我通過裏面的「其他」子句中loginCheck的$ email和$密碼($電子郵件,$密碼)沒有什麼過去了。任何想法爲什麼發生這種情況?
你怎麼知道沒有什麼傳遞? – melpomene
'photoBookProtocol.php'是否覆蓋變量?所有看起來都對我好。 –
無論出現什麼錯誤 - 您需要了解如何防止SQL注入 - https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet – Laurence