2014-06-30 84 views
0

我不知道我的登录脚本有什么问题。它一直说无效的用户名或密码。但在我看来,一切都是按照原样设定的。用户登录无效未知错误

PHP5:

<?php require ('../lib/config.php'); ?> 
<?php 

ob_start(); 
$tbl_name='users'; 
$user_name='Username'; 
$pass_name='Password'; 
$salt=''; 

mysql_connect("$cchost", "$ccuser", "$ccpass")or die("cannot connect"); 
mysql_select_db("$ccname")or die("cannot select DB"); 

$username=str_replace(' ','_', $myusername); 
$myusername=$_POST['username']; 
$mypassword=$_POST['password']; 
$password=hash('whirlpool', $mypassword); 

$username = stripslashes($username); 
$password = stripslashes($password); 
$username = mysql_real_escape_string($username); 
$password = mysql_real_escape_string($password); 
$sql="SELECT * FROM $tbl_name WHERE $user_name='$username' and $pass_name='$password'"; 
$result=mysql_query($sql); 
$row=mysql_fetch_array($result); 
$donator=$row['donator']; 
$player=$row['player']; 
$count=mysql_num_rows($result); 

if ($donator == '1') { 
session_register("donator"); 
} 
if ($player == '1') { 
session_register("player"); 
} 
if($count==1){ 
session_register("username"); 
header("Location: index_ucp.php"); 
} 
else { 
header("Location: login_ucp.php?err=1"); 
} 
ob_end_flush(); 
?> 

HTML表单:

<div class="login"> 
     <form method="post" name="frmLogin" class="well form-inline" action="dologin.php"> 
     <input name="username" type="text" class="input-medium" placeholder="Username"> 
     <input name="password" type="password" class="input-medium" placeholder="Password"> 
     <button name="btnLogin" type="submit" class="btn">Sign in</button> 
     </form> 
</div> 

我想了好几个小时来修复它,但我不能。你们都是我最后的希望。 在此先感谢!

+0

检查值isset'isset($ _ POST [ “username”])&&!empty($ _ POST [“username”]'和密码相同 – karthikr

+0

旁注:从['session_register()']手册(http://www.php.net/manual/en/ function.session-register.php)**警告** 此功能自PHP 5.3.0起已经被取消,从PHP 5.4.0起移除。 - 在文件顶部添加错误报告 'error_reporting(E_ALL); ini_set('display_errors',1);' –

+0

@karthikr我已经做到了,如果没有,那么有错误消息。现在正在测试.. - 没有,它仍然说无效的用户名和密码。 –

回答

2

您似乎是在错误的顺序这两条线:

$username=str_replace(' ','_', $myusername); 
$myusername=$_POST['username']; 

后来的代码将使用$username将不会被初始化正确

+0

你有一个点。但是,我希望OP不会对那些进入那里的人有所期待。发生什么风险是,如果我们说,有人进入“彼得派珀”,那会改为“彼得派普”。如果用户名是“PeterPiper”,那么将不会匹配。我认为OP应该使用'trim()',但我只是做出一个非常疯狂的猜测。 –

+0

我认为期待用户正确输入用户名是合理的。只有很多变化可以解释。 –

+0

是的。我只是想知道为什么OP首先使用'str_replace()'。 –

相关问题