繁体   English   中英

window.location.href - 帮助重定向

[英]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 stylehttp//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.

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