如何在PHP中重定向到页面?

时间:2013-08-20 23:48:32

标签: php mysql sql header login-script

我尝试为我的活动页面创建一个登录表单。注册也完成了。我的问题是,当我成功登录时,我无法使用'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)

?>

2 个答案:

答案 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');

  • 不要将mysql_ *函数用于新代码,因为它们已被弃用,PDO或mysqli_ *要好得多。

答案 1 :(得分:0)

您可以使用Javascript而不是PHP页面进行重定向,尤其是因为某些webhosts不允许在文件中间使用header()。

这是一个例子:

       echo "
         <script type='text/javascript'>
              window.location.replace('http://www.yoursite.com/new_page.html');

         </script>";