2016-09-19 69 views
-2

我有这样的代码,我已经试图修复它几天。我试图让它重定向到任何$ link变量设置。它所做的只是给我一个空白页面。任何答案?JS不会重定向

<?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'); 
} 
?> 
+2

那件事情是不是在客户端执行。请改为显示呈现的代码。 – Teemu

+0

只是一个空白页面。 – Nach

+1

为什么要在使用PHP进行重定向时使用Javascript? – Archer

回答

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'; 

注意'报价...

+0

我做了你所说的,但它仍然无效。 – Nach