2014-01-11 42 views
0

目前我正在一个网站上工作,并且遇到登录脚本中的问题。登录时出现错误PHP代码

<?php 
    include 'includes/connect.php'; 
    include 'includes/core.php'; 
?> 
<?php 
    $user = sanitizeString($_POST['username']); 
    $pass = sanitizeString($_POST['password']); 

    if($user == "" || $pass = ""){ 
     $error = "Not all fields were entered<br />"; 
    } else { 
     $query = "SELECT username,password FROM admins WHERE username='$user' AND password='$pass'"; 
     if(mysql_num_rows(queryMysql($query)) == 0){ 
      print "Wrong Username/Password <br />"; 
      print "$user"; 
      print "$pass"; 
     } else { 
      $_SESSION['user'] = $user; 
      $_SESSION['pass'] = $pass; 
      print "Successfully Logged In. Redirecting..."; 
     } 
    } 
?> 
<html> 
    <head> 
     <title> 
      Login 
     </title> 
     <link rel="stylesheet" type="text/css" href="css/stylesheet.css"> 
    </head> 

    <body> 
     <div id="mainDiv"> 
      <h2>&nbsp;&nbsp;&nbsp;Login</h2> 
      <form action="login.php" method="post"> 
       Username: <input type="text" name="username"><br> 
       Password: <input type="password" name="password"><br><br> 
       <input type="submit" name="login" value="Login"> 
      </form> 
     </div> 
    </body> 
</html> 

我知道大部分这是不完整的,但这不是问题。问题是,当我尝试登录时,我收到“不正确的用户名/密码”。经过进一步调查,我发现$ pass没有设置。

enter image description here

为什么$传没有被设置和显示?

+0

请勿将输入元素命名为与其“类型”值相同的名称。这可能不会解决问题,这只是良好的做法 – Deryck

+0

为什么你不让你的如果是这样的? if(trim($ user)!=“”&& trim($ pass)!=“”){'。我还看到,if语句中的第二个表达式不是一个比较。调试的最佳方式是使用'var_dump'输出变量' – demonking

+0

'if($ user ==“”|| $ pass =“”){'您已经创建了'$ pass' ='“”'添加一个等于make它是一个比较运算符 – manta

回答

5

变化

if($user == "" || $pass = ""){ 

if($user == "" || $pass == ""){ 

你被设置$通= “”,而不是检查,如果它是 “”。

+0

我一直在为此工作15分钟* Facepalm *谢谢jboneca。 –

+0

然后请标记这个答案;) – demonking

+0

我可以在7分钟内。 –

0

我不禁注意到,除非PHP和HTML是两个单独的文件,否则您会发回给自己。离开。其次,在同一文件中将两者结合在一起并不明智。

第三,您需要先启动会话,然后才能为其添加值。

第四,如果没有附加字符串,则不需要在“”中包含var。

只是有些想法...并不觉得不好,单=已经比我想承认的次数多了。