Php如何重定向而不复制相同的url查询

时间:2012-12-27 19:17:17

标签: php

我正在验证网页上的表单,我需要在重定向时重定向回同一个网址,并使用相同的网址查询和查询末尾的其他&valid=false

如何执行此操作以便重定向不会重复网址:

http://test.com/index.php?a=1&b=2&valid=false&a=1&b=2&valid=false

我正在使用$_SERVER['REQUEST_URI']

2 个答案:

答案 0 :(得分:2)

有很多方法可以做到,这里有一个简单的方法:

$url = $_SERVER['REQUEST_URI'];
if (!isset($_GET['valid'])) {
    $url.='&valid=false';    //assuming there are always additional parameters, otherwise you must check whether to use '?' or '&' 
}

但你也可以使用parse_url(),strpos(),正则表达式等

答案 1 :(得分:1)

修改参数后可以使用http_build_query()

<?php
    $_GET['a'] = 1;
    $_GET['b'] = 2;
    $_GET['valid'] = 'true';

    $url = $_SERVER['SCRIPT_NAME'].'?'.http_build_query($_GET);
?>

就像那样,如果没有定义$_GET['valid']那么它将被创建,否则它将被修改。