我已经制作了这个代码并且已经尝试修复它好几天了。我试图让它重定向到$ 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');
}
?>
答案 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';
请注意'
引号...