简体   繁体   English

PHP的新功能…需要帮助…关于嵌套函数

[英]NEW to PHP… Need Help… Regarding nested functions

i'm playing around and trying to incorporate a nested function into my login script. 我在玩耍,试图将嵌套函数合并到我的登录脚本中。 The functions are all below. 功能如下。 Also, beneath my functions is the portion of the login script im trying to incorporate them in. However, everytime I try to log in, it says invalid username. 另外,在我的功能下面是尝试将其合并到登录脚本中的部分。但是,每次我尝试登录时,它都显示无效的用户名。 However if I user function a and b in the login script instead of function d, everything works fine. 但是,如果我在登录脚本中使用功能a和b而不是功能d,则一切正常。 Can some tell me where i',m going wrong? 有人可以告诉我我错了吗? Thanks. 谢谢。

//a -username

function username_check($username){

$usercheck = "SELECT user_id FROM users WHERE username ='$username'";
$userqry = mysql_query($usercheck) or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($userqry);
return ($num_rows == 1) ? true : false;
}

//b - password

function password_check($password, $username){

$passwordcheck = "SELECT password FROM users WHERE username ='$username'"; 
$passwordqry = mysql_query($passwordcheck) or die ("Could not match data because ".mysql_error());

while($retrievepassword = mysql_fetch_array($passwordqry))  

{

 $password = md5($password);

 return ($password != $retrievepassword['password']) ? true : false;

 }
 }
 //c    -email

 function email_check($email){

 $emailcheck = "SELECT user_id FROM users WHERE email = '$email'"; 
 $emailqry = mysql_query($emailcheck) or die ("Could not match data because ".mysql_error());
 $num_rows = mysql_num_rows($emailqry); 

 return ($num_rows == 1) ? true : false;
 }

 //d -username + password + email check? all in one? DOESNT WORK

 function user_check($username = NULL, $password = NULL, $email = NULL) {

 if(($email !=NULL)) {
 email_check($email);
 }

 elseif(($username !=NULL) && ($password!=NULL)){
 password_check($password,$username);   
 }

 elseif(($username !=NULL) ) {
 username_check($username);
 }

 }


 //LOGIN SCRIPT

 if (user_check($username1) ==false) { 
    $logerrors[] = 'Invalid username';

 }
 elseif (user_check($password1, $username1)) { 
    $logerrors[] = 'Incorrect password';`

很好,函数d不返回任何值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM