session_start();
$user= $_GET['user'];
$password = $_GET['password'];
if ($user && $password)
{
try
{
login($user,$password);
$_SESSION['valid_user'] = $user;
}
catch(Exception $e)
{
echo 'You could not be logged in.
You must be logged in to view this page.';
exit;
}
} function login($user, $password) {
$link= mysql_connect('localhost','root','225201')or die('could not connect:'.mysql_error()); mysql_select_db('forum') or die('could not select database');
$result =mysql_query("select * from forum
where user='$user'
and passward = sha1('$password')");
if (!$result)
throw new Exception('Could not log you in.');
if (mysql_num_rows($result)>0)
return true;
else
throw new Exception('Could not log you in.');
}
我一用sha1()加密后,登录老提示'You could not be logged in.
You must be logged in to view this page这个错误。不用sha1就可以了。$query="insert into forum(id,user,passward,email) values
('','$user',sha1('$passwd'), '$email')"; 我在入库时加密了 求助
$user= $_GET['user'];
$password = $_GET['password'];
if ($user && $password)
{
try
{
login($user,$password);
$_SESSION['valid_user'] = $user;
}
catch(Exception $e)
{
echo 'You could not be logged in.
You must be logged in to view this page.';
exit;
}
} function login($user, $password) {
$link= mysql_connect('localhost','root','225201')or die('could not connect:'.mysql_error()); mysql_select_db('forum') or die('could not select database');
$result =mysql_query("select * from forum
where user='$user'
and passward = sha1('$password')");
if (!$result)
throw new Exception('Could not log you in.');
if (mysql_num_rows($result)>0)
return true;
else
throw new Exception('Could not log you in.');
}
我一用sha1()加密后,登录老提示'You could not be logged in.
You must be logged in to view this page这个错误。不用sha1就可以了。$query="insert into forum(id,user,passward,email) values
('','$user',sha1('$passwd'), '$email')"; 我在入库时加密了 求助
eh .....我说呢。还说帖子怎么无辜就被删了,我很怀疑就是我说的那个问题。= =|| 所以lz一定要注意 ' 与"的区别阿
$result =mysql_query("select * from forum
where user='$user'
and passward = sha1('$password')");
sha1函数写在双引号中并不会被执行,楼主改成
$result =mysql_query("select * from forum
where user='$user'
and passward = '".sha1($password)."'"); 另外这里是passward不是password??
^^嗬嗬,csdn挣分太难了,兄弟混了多久混出这样的成绩来,佩服佩服
呵呵没有当然不是怕lz你不给分了,只不过就是说这么来回来去的回复可用分也不加,弄了半天还是乞丐kaka怎么样问题解决了?
+------------------------------------------+
| sha1('df') |
+------------------------------------------+
| 4a8a9fc31dc15a4b87bb145b05db3ae0bf2333e4 |
+------------------------------------------+
1 row in set (0.03 sec)另外,你返回的地方,具体位置不能确定在那里。
if (!$result)
throw new Exception('Could not log you in.');
if (mysql_num_rows($result)>0)
return true;
else
throw new Exception('Could not log you in.');
有两个地方输出的内容是一样的,这个你不好定位是result错误还是mysql_num_rows错误。输出的地方做点小变化,提醒自己具体是哪个地方出错。最好就是你把sql语句也打印出来看看。我估计的是,你提交的方式是post,而你取值的方式是get。估计就是这里没有能取到值。看看html是不是用get方式提交的吧