2014-02-27 200 views
1

我对PHP和MySQL都很陌生,我努力让登录系统正常工作。注册工作正常,但是当我运行登录时,它无法识别表中是否有与输入数据匹配的内容。以下是我认为是问题领域的代码。PHP/MySQL登录系统 -

在此先感谢。

<?php 

function load($page = 'login.php') 
{ 
$url = 'http://'.$_SERVER['HTTP_HOST']. 
dirname($_SERVER['PHP_SELF']); 
$url = rtrim($url,'/\/'); 
$url.= '/'.$page; 

header("location:$url"); 
exit(); 
} 
function validate($dbc,$email ='',$pwd='') 
{ 
$errors = array(); 
if (empty($email)) 
    { $errors[] = 'Enter your email address.'; } 
else 
    { $e = mysqli_real_escape_string($dbc,trim($email));} 
if (empty($pwd)) 
    { $errors[] = 'Enter your password.';} 
else 
    { $p = mysqli_real_escape_string($dbc, trim($pwd)); } 
if (empty($errors)) 
{ 
    $q = "SELECT adultID, FirstName, Surname " 
      . "FROM adult_information " 
      . "WHERE Email = '$e' AND Password = SHA1('$p')"; 
    $r = mysqli_query($dbc, $q); 

    if (mysqli_num_rows($r) == 1) 
    { $row = mysqli_fetch_array($r, MYSQLI_ASSOC); 
     return array(true, $row);} 
    else 
    {$errors[]='Email address and password not found.';} 
} 
return array(false,$errors); 
} 
+3

逐步完成代码和调试。你期望一个有效的登录遵循通过代码的路径..转储变量和条件,以找出它实际采取的路径。 –

+1

尝试打印查询并查看它的外观。 –

+1

这是复制/粘贴作业。调试此代码我发现http://answer.techwikihow.com/913804/undefined-function-error-php-cant-why.html –

回答

0

我相信你会得到你在找什么,如果你改变

$q = "SELECT adultID, FirstName, Surname " 
     . "FROM adult_information " 
     . "WHERE Email = '$e' AND Password = SHA1('$p')"; 

$p = SHA1($p); 

$q = "SELECT adultID, FirstName, Surname " 
     . "FROM adult_information " 
     . "WHERE Email = '$e' AND Password = '$p'"; 

每当一个PHP到MySQL查询不执行正如所料,我的第一步是看看我实际传递给数据库的SQL。在这种情况下,应该在分配$ q的值后立即插入一条类似echo '<p>$q</p>';的行。

有时立即变得很明显,我有一个畸形的查询,只是看着它。如果不存在,我复制出现的SQL代码并将其作为查询在数据库管理器中运行,以查看它抛出的错误和/或检查结果数据。