我尝试为我的活动页面创建一个登录表单。注册也完成了。我的问题是,当我成功登录时,我无法使用'header(location :)'重定向到startpage。请帮帮我,或修复php的错误。谢谢!
注意:php的链接是样本,不是真实的。
<?php
$hostname="host"; // Host of MySQL
$user="user"; // Username at MySQL
$password="pass"; // Password at MySQL
$dbname="db"; // Database on MySQL
$connection=mysql_connect($hostname, $user, $password);
if(! $connection)
{
die(''.mysqlerror());
}
mysql_select_db($dbname, $connection) or die('');
$given_email=mysql_real_escape_string($_POST['email']);
$given_pass=mysql_real_escape_string($_POST['pass']);
$sql="SELECT * FROM users WHERE email='$given_email' and password='$given_pass'";
$result=mysql_query($sql) or die(mysql_error());
$row=mysql_fetch_array($result);
$active=$row['active'];
$count=mysql_num_rows($result);
if($count==1)
{
//echo "OK";
header( 'Location: http://www.yoursite.com/new_page.html' ) ;
//setUrl ("http://testseite.aufderlicht.bplaced.de/loggedin/start.html");
}
else
{
setUrl ("http://testseite.aufderlicht.bplaced.de/login/err/err.html");
}
//mysql_close($connection)
?>
答案 0 :(得分:0)
有时我只是将'/'相对路径放在标题中:
header ('Location: /');
但是,这是推荐的:
header ('Location: http://example.com/');
仅执行此操作无效: ,如规范中所示:header ('Location: ');
注意: HTTP / 1.1需要绝对URI作为»Location:包括方案,主机名和绝对路径的参数,但某些客户端接受相对URI。您通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:
另外,很少说明:
<强> Do NOT store passwords in plain text 即可。即使认为本说明不会修复您的代码,也非常重要。
在每个die('')
中包含一些错误。他们认为,他们只会在不提供任何有用信息的情况下杀死脚本。完全可能是其中一个被触发了。例如:
mysql_select_db($dbname, $connection) or die('Could not select database');
答案 1 :(得分:0)
您可以使用Javascript而不是PHP页面进行重定向,尤其是因为某些webhosts不允许在文件中间使用header()。
这是一个例子:
echo "
<script type='text/javascript'>
window.location.replace('http://www.yoursite.com/new_page.html');
</script>";