使用php和javascript进行服务器重定向

使用php和javascript进行服务器重定向,php,javascript,login,Php,Javascript,Login,我从另一个页面调用这个函数 Redirect($loc); 我想让它重定向我的服务器 function Redirect($loc) { echo ("<script type=\"text/javascript\">var timeout=1; setTimeout(\"window.location.replace('" . $loc . "')\", timeout*1000 );</script>"); } 函数重定向($loc)

我从另一个页面调用这个函数

  Redirect($loc);
我想让它重定向我的服务器

function Redirect($loc) 
{    
   echo ("<script type=\"text/javascript\">var timeout=1; setTimeout(\"window.location.replace('" . $loc . "')\", timeout*1000 );</script>");    
} 
函数重定向($loc)
{    
echo(“var timeout=1;setTimeout(\”window.location.replace(“$loc.”)\”,timeout*1000);”;
} 
我有两个问题。一是函数中的脚本是否正确?
其次,假设我使用的是localhost,并且我希望我的应用程序是可移植的,那么我如何向它传递url呢。因此,我将我的文件称为Registration.php,它位于我网站的用户文件夹中,如何构造url?

这比您的更适合重定向,以使您的应用程序可移植,使用相对路径,而不是绝对路径

function redirect($where = '') {
    if(!empty($where)) {
        echo '<script type="text/javascript">window.location = "' . $where . '";</script>';
        exit(); // to prevent script execution if user switched off JS
    }       
}
函数重定向($where=''){
if(!empty($where)){
echo'window.location=“”.$where.“;”;
exit();//在用户关闭JS时阻止脚本执行
}       
}

使用Javascript重定向有什么特殊原因吗?如果客户端禁用了Javascript怎么办

执行重定向的更好方法是在服务器端执行,如下所示:

function redirect($location)
{
    header('Location: ' . $location);
    die();
}
这将把location头发送到浏览器,从而立即重定向它,节省带宽和在客户端禁用Javascript的可能性

请注意,由于这是一个标头,您需要在输出任何数据之前调用此方法(使用
echo
或其他方式),或者使用,以便不必对应用程序进行太多更改


如注释中所述,覆盖相对URL,您可以使用一个常量存储web根目录,其工作方式如下(替换行):


用法示例:

<?php
define('WEB_ROOT', '/');
function redirect($location) 
{
    header('Location: ' . WEB_ROOT . $location);
    die();
}
redirect('Users/Registration.php');

什么意思?如何构建URL?您只需将
/Users/Registration.php
传递给该方法。您的意思是:“../StoredProcedure/User/login.php”我对您的应用程序结构一无所知,但您可以自己尝试。嗯..谢谢,我没想过。我如何构建我的相对路径别忘了说,他只能在任何浏览器输出之前发送此重定向,还可以描述元重定向:)它需要是相对的吗?一般来说,一个好方法是使用一个中心变量(配置文件?)存储web根目录,然后从中附加位置?@user973254元重定向很糟糕,但添加了关于header.hmm的注释。因此,当我上传例如home.php时,它会使用我的web服务器url名称www.forum/home.php而不是localhost/home.php吗
<?php
define('WEB_ROOT', '/');
function redirect($location) 
{
    header('Location: ' . WEB_ROOT . $location);
    die();
}
redirect('Users/Registration.php');