[英]window.location.href - help redirecting
我的代码是:
$movie_id = $_GET['like'];
$temp = "www.hifff.se/details.php?id=" . $movie_id";
echo ("<SCRIPT LANGUAGE='JavaScript'>
window.alert('Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!')
window.location.href='" . $temp . "';
</SCRIPT>");
我假设我的$ temp设置是错误的。 因此没有工作。 但我不明白设置它时我做错了什么。 我也听说这不适用于铬? 这个:
setTimeout(function(){document.location.href = "page.html;"},500);
应该。 我也不知道如何将它应用到我的代码中。 有人可以帮助我吗?
让我们一起分析你的代码。 第一行:
$movie_id = $_GET['like'];
在编写代码时,您将在学习进度时学习不同的设计模式和最佳实践。 我对你的建议是防守计划。 这段代码可能在一开始就有用,但可以轻松破解。 使用isset
函数检查GET变量是否存在( http://www.php.net/isset )。
$temp = "www.hifff.se/details.php?id=" . $movie_id";
您正在使用PHP's magic quotes
。 魔术引号允许其中的变量和其他特殊字符。 PHP会自动为你解析它们,所以不需要使用连接(并且代码块甚至是错误的,请参阅句子末尾的引用):
$temp = "www.hifff.se/details.php?id=$movie_id"; // this works.
注意:刚刚发现自PHP 5.4以来不推荐使用魔术引号。 如果您认为不需要它们,请不要使用它们。
echo ("<SCRIPT LANGUAGE='JavaScript'>
从很久以来,语言属性已被弃用..请改用type="text/javascript"
。 这将有效,因为大多数新浏览器无论如何都在其<script>
标签中使用javascript。
此外,通常的做法是使用"
双引号”作为标记属性。如果有人查看源代码,那么HTML中的每个地方都有单引号和双引号。详细信息,我的朋友。这将是结果:
echo ('<script type="text/javascript">
在以下行中,您将调用window
对象。 此对象已在全局范围内,因此除非您已覆盖此对象,否则无需编写window.
了。 你也错过了;
在警报结束时。
alert('Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!');
最后,我们结束了。 再次, window
已经是this
,因此没有必要再次写入整个事物。 少即是多。 您还忘记将http://
附加到temp
变量。 请注意,在这种情况下您使用完整的URL
; 在网站内写一个位置是一种更好的做法。
您也不需要所有这些引号,因为echo
使用魔术引号,因此退出引号并在这种情况下连接变量是不必要的。
location.href='$temp';
最后评论:你在一行中echo
所有内容。它看起来有条理/整洁吗? 我认为不是,最好将所有内容分成小块,而不是仅将所有内容都放在一行中。 它看起来会更好,更有条理。 您获得的任何错误都将更容易找到。 当您的代码被其他人使用或查看时,最好保持programming style
: http : //en.wikipedia.org/wiki/Programming_style 。
我会写这样的代码:
if (isset($_GET['like'])) {
$temp = "www.hifff.se/details.php?id=" . $_GET['like'];
$text = 'Du får bara lajka en gång per film och dygn. Lajka gärna en annan film eller se filmen igen och återkom imorgon!';
echo '<script type="text/javascript">'
. "alert($text); location.href='$temp';"
. '</script>'
;
}
$temp = "http://www.hifff.se/details.php?id=" . $movie_id"";
您必须将http
添加到您的URL才能执行正确的重定向
替换此行
$temp = "www.hifff.se/details.php?id=" . $movie_id";
同
$temp = "www.hifff.se/details.php?id=" . $movie_id;
删除行尾的双引号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.