ユーザーの資格情報を確認する関数を定義していますが、authが渡された場合はtrueを返し、失敗した場合はfalseを返します。次のように私の関数が定義されています関数内から値を返す
function _userLogin($username, $password){
include 'mysqli.php';
$logged_in;
$mysqli->select_db('Directories');
// query the login table for the username
$query = $mysqli->query("SELECT * FROM LOGININFO WHERE USERNAME='$username'");
$num_rows = mysqli_num_rows($query);
// check to see if the user exists
if ($num_rows > 0) {
$query = "SELECT * FROM LOGININFO WHERE USERNAME='$username'";
if ($result = $mysqli->query($query)){
while ($result_ar = mysqli_fetch_assoc($result)){
$dbuser = $result_ar['USERNAME'];
$dbpass = $result_ar['PASSHASH'];
$salt = $result_ar['SALT'];
}
} else {
echo "Could not connect to table: <br />".mysqli_error()."<br />";
// create the hash for password validation
$hash = hash('sha256', $salt.$password);
// validate the password
if ($hash == $dbpass){
$logged_in = True;
// retrieve info from the userinfo table
$query = ("SELECT * FROM USERINFO WHERE USERNAME='$username'");
if($result = $mysqli->query($query)){
while ($result_ar = mysqli_fetch_assoc($result)){
$name = $result_ar['name'];
}
}
} else {
$logged_in = False;
//$message = "Invalid USERNAME or PASSWORD";
//echo $message;
}
}
} else {
$logged_in = False;
//$message = "Invalid USERNAME or PASSWORD";
//echo $message;
}
return $logged_in;
}
私は関数を呼び出すと、私は、変数が定義されていないというエラーが出る返された値であるべきものを使用しようとしたとき、私はに実行しています問題は、このです。
_userLogin($username, $password);
if ($logged_in == True){
'do something';
} else {
'do something else'
}
私は間違っていますか?
を修正以外の任意の論理チェックを実行しませんでした: '$ LOGGED_IN = _userLogin($ユーザ名、$パスワード); '(PHPのドキュメント)(http://php.net/manual/en/functions.returning-values.php) –
は、私はそれが常に真実を返すようにしました、また、$ logged_inが関数内から定義されていないというエラーが出ます。何か案は? –
Paytonそれはしばらくして、あなたは答えを選択しなかったし、フィードバックもしなかった。あなたの問題を理解し、解決策を見つけてあなたのために書き留めるには、多くの時間が必要です。解決策があなたのために働いた場合は、それを選択しupvoteします。そうでない場合は、少なくとも私たちに(なぜ助けようとしたのか)この問題から学ぶことができる理由をお知らせください – BeetleJuice