使用标头和JavaScript代码重定向

时间:2014-07-21 03:54:10

标签: javascript php html

我在PHP中创建了一个重定向页面,只要有人访问该页面,它就会在浏览器中添加一个cookie并将用户重定向到其他页面:ex:google.com

要做到这一点,我使用了javascript来重定向,但问题是,当我提取我的网址时,它不会显示google.com。在提取过程中,它会显示相同页面的信息,然后我使用php header()进行重定向,并向我显示google.com信息。

现在我需要帮助才能使此代码与Cookie和标题一起使用。

代码:

<?php
header("location: https://www.google.com");
echo '<!DOCTYPE html>
<html lang="en">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta charset="utf-8">
        <title>Redirecting...</title>
        <script type="text/javascript">
        function createCookie(name,value,days) {
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
            }
            else var expires = "";
            document.cookie = name+"="+value+expires+"; path=/";
        }
        createCookie("karachi","testing",100);
        </script>
    </head>
    <body>

    </body>
</html>';
?>

2 个答案:

答案 0 :(得分:3)

而不是在JavaScript上设置它。为什么不使用PHP。

$date_of_expiry = time() + (86400 * 30); // 30 days
if(setcookie('karachi', 'testing', $date_of_expiry)) {
    sleep(3); // sleep 3 seconds
    header('Location: http://www.google.com/'); 
}

或替代方案:

$date_of_expiry = time() + (86400 * 30); // 30 days
if(setcookie('karachi', 'testing', $date_of_expiry)) {
    echo '<h1>Redirecting.. Please wait.</h1>';
    echo '<meta http-equiv="refresh" content="3;url=http://www.google.com">';
}

在Javascript上:

echo '<h1>Redirecting.. Please wait.</h1>';
// echo 'logic javascript';
echo '
<script>
setTimeout(function(){
    window.location.href = "http://www.google.com"
}, 3000);
</script>
';

答案 1 :(得分:1)

给它一个机会。我没有测试它,但它会给你一个正确的想法:

<?php ?>
       <script type="text/javascript">
        function createCookie(name,value,days) {
            if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
            }
            else var expires = "";
            document.cookie = name+"="+value+expires+"; path=/";
        }
        createCookie("karachi","testing",100);
        </script>
<?php
header("location: https://www.google.com");
?>

我在开头打开并关闭了php标签,因为我假设这将是一个php文件。您也可以将cookie代码放在单独的.html或.php文件中,并在标题前使用include。

include_once 'cookiecode.php';

标题的技巧是在显示任何显示在屏幕上的html之前完成任务。我很确定标题也必须在开放标记之前完成。

希望这有帮助!