JS Won't Redirect


JS Won't 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');
}
?>

如果你做过任何类型的调试,比如查看你正在生成的页面的源代码,甚至检查浏览器的调试控制台,你都会被告知语法错误。你正在生成这个:

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

对你来说,这看起来像有效的Javascript吗?

NeverEVER直接将PHP中的文本转储到Javascript代码块中正是出于这个原因。PHP可能只是输出一个URL,但它将进入JS代码块,因此您生成的JS代码必须是VALID代码。始终使用json_encode():

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

其产生:

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

注意'引号。。。