我玩弄,并尝试将嵌套函数并入我的登录脚本。这些功能都在下面。此外,我的功能下面是登录脚本的一部分,我试图将它们合并到一起。但是,每次我尝试登录时,它都会显示无效的用户名。但是,如果我在登录脚本中使用函数a和b而不是函数d,则一切正常。有人可以告诉我我在哪里,错了吗?谢谢。PHP的新...需要帮助...关于嵌套的功能
//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';`
1:你不嵌套函数。 2:将它们分解为更简单的任务3:'var_dump'和'print_r'是你最好的朋友,可以知道你的位置以及你不在脚本中的位置。 – Joseph 2012-02-20 05:15:45
你期望它做什么?你正在调用函数,而对返回值无所作为。 – 2012-02-20 05:17:08
也这行'返回($密码!= $ retrievepassword ['密码'])? true:false;'你的返回false应该是真的 ' – 2012-02-20 05:18:08