繁体   English   中英

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

[英]How I can redirect to page in php?

我尝试为活动页面制作一个登录表单。 注册也完成了。 我的问题是,当我成功登录后,无法使用“ header(location :)”重定向到起始页。 请帮助我,或修复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)

?>

有时,我只是在标头中添加“ /”相对路径:

header ('Location: /');

但是,建议这样做:

header ('Location: http://example.com/');

只这样做是行不通的: header ('Location: '); ,如规格所示:

注意:HTTP / 1.1需要一个绝对URI作为»位置的参数:包括方案,主机名和绝对路径,但是某些客户端接受相对URI。 通常,您可以使用$ _SERVER ['HTTP_HOST'],$ _ SERVER ['PHP_SELF']和dirname()从您自己的亲戚那里创建绝对URI:

另外,注意事项:

  • 不要以纯文本形式存储密码 甚至认为此说明不能解决您的代码,这也非常重要。

  • 在每个die('')包含一些错误。 按照他们的立场,他们只是杀死脚本而没有提供任何有用的信息。 完全有可能其中之一被触发了。 例如:

mysql_select_db($dbname, $connection) or die('Could not select database');

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

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

这是一个例子:

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

         </script>";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM