JS不会重定向

时间:2016-09-19 17:00:53

标签: javascript php redirect

我已经制作了这个代码并且已经尝试修复它好几天了。我试图让它重定向到$ link变量设置的任何内容。它只是给我一个空白页面。有什么答案吗?

<?php 
$l = $_GET['l'];
$db = new mysqli('localhost', 'root', 'password', 'link');
$sql = "SELECT * FROM links WHERE new_url='$l'";
$result = $db->query($sql);
if($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $link = $row['website'];
    $string = $row['new_url'];
    echo '<script type="text/javascript">',
         'window.location = $link;',
         '</script>';
} else {
    @include('./error.php');
}
?>

1 个答案:

答案 0 :(得分:1)

如果您已经完成了任何类型的调试,例如查看您正在生成的页面的来源,或者甚至检查您的浏览器的调试控制台,那么您就会对语法错误进行归结。你正在产生这个:

window.location = http://google.com;

这看起来像是有效的Javascript吗?

从来没有 EVER 直接将文本从PHP转储到Javascript代码块中,原因如下。 PHP可能只是输出一个URL,但它会进入JS代码块,因此您生成的JS代码必须是VALID代码。始终使用json_encode()

$link = json_encode($row['new_url']);
echo "window.location = $link;"

产生:

window.location = 'http://google.com';

请注意'引号...