我在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>';
?>
答案 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之前完成任务。我很确定标题也必须在开放标记之前完成。
希望这有帮助!