[英]Variable out of scope when accessed in if/else statement in PHP
我是PHP腳本的新手,來自Java背景。 到目前為止,這是一件微不足道的事情,對我來說已經變成了腦筋急轉彎。 所以這是問題所在,我為變量分配了一些值,並且當嘗試在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);
?>
因此,當我在“ else”子句中的loginCheck($ email,$ password)中傳遞$ email和$ password時,沒有任何傳遞。 知道為什么會這樣嗎?
您的變量作用域沒有問題,因此:
loginCheck()
接收到正確的變量,但是函數中存在錯誤 附帶說明,由於您的腳本依賴於POST數據,因此在繼續操作之前,您應該有一個條件來檢查是否存在所需的數據:
if(isset($_POST['Email'], $_POST['Password']))
{
// something posted
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.