HTML重定向到Root

时间:2014-08-28 20:56:49

标签: php html asp.net redirect

我了解如何让页面重定向:

<meta http-equiv="refresh" content="10; url=http://example.com/" />

我需要10-20秒的延迟(如上所示)才能让访问者看到他们的数据已成功收集。

我们有以下网站:

  • 本地电脑:http://localhost
  • 员工测试:http://dev.example.com
  • 客户BETA:http://beta.example.com
  • LIVE:http://www.example.com

显然,我不希望在工作之后更改我的电脑上的代码,以便它在员工测试环境中工作,我们在测试时再次更改它,或者在它进入实时之前再次更改。< / p>

重定向,如上所述,将在有人在我们的网站上提交表单后使用。

如何创建知道其位置的重定向?

我目前的任务是找出如何在PHP中执行此操作,以便我可以在页面提供之前编写标记。

但是,我也在其他客户的ASP.NET中开发页面,所以我想看看这样做的方法,也可以在Windows中处理。

2 个答案:

答案 0 :(得分:3)

将您的重定向标记更改为指向网址/,该网址始终是您所在域的根路径。

<meta http-equiv="refresh" content="10; url=/" />

答案 1 :(得分:1)

在PHP中:

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
    header('location: /'); //or header('location: '.$_SERVER['HTTP_HOST']);
}

使用jQuery setTimeout函数:

setTimeout(function(){ window.location = '/'; }, 10000);  //10.000 milliseconds delay

Here您可以了解有关PHP SERVER超级全局的更多信息,并点击此链接到PHP header()函数。

使用ajax向服务器发送请求

如果你使用jQuery,你应该考虑这个解决方案:通过ajax请求PHP文件并进行数据库更新或一些服务器端的东西。如果成功,请在一段时间后显示消息并重定向。

示例:

<强> jQuery的:

$('#form').on('submit', function() {
    var inputs = $(this).serialize(); //safe the submitted data
    $.post('path_to_file.php', inputs, function(data) {  //returned a json array
        var data = $.parseJSON(data);  //decode the json data
        if('errors' in data) {  //were there any errors?
            $.each(data['errors'], function() {
                $('#error-box').append(this); //show the error message
            });
        } else {  //if no errors
            $('#succes-box').html('Update was successful.');
            setTimeout(function(){ window.location = '/'; }, 10000); //Redirect after 10s
        }
    });
});

<强> path_to_file.php

<?php
//Do something with post data.....
$response = array();
if(!$query) {
    $response['errors'][] = 'There was an error querying the database.';  //error example
}
echo json_encode($response);

希望这有帮助。