通过PHP根据即将到来的URL操作URL

时间:2009-08-09 04:16:47

标签: php get

如何通过起始网址的名称操纵目标网址?

我的网址是

www.example.com/index.php?ask_question

我在目标网址

中执行以下操作
    if ($_GET['ask_question']) {                        
            // Problem HERE, since if -clause is always false
        if ( $login_cookie_original == $login_cookie )
        {
            include "/codes/handlers/handle_login_status.php";
            header("Location: /codes/index.php?ask_question");
            die("logged in - send your question now");
        } 
    }

5 个答案:

答案 0 :(得分:4)

if (isset($_GET['ask_question'])) {          
    ...

如果您使用$ _GET的print_r(),您会看到

Array
(
    [ask_question] => 
)

表示ask_question已设置,但为空,因此测试为false。

答案 1 :(得分:2)

$location = "test.php";
if(isset($_SERVER['QUERY_STRING']))
{
    header("Location:".$location . "?" . $_SERVER['QUERY_STRING']);
}
else
{
    header("Location:".$location);
}

答案 2 :(得分:1)

您可以检查$ _SERVER ['QUERY_STRING']变量,看它是否包含'ask_question'

编辑:修正拼写错误

答案 3 :(得分:1)

我认为您想用以下内容替换它:

if (isset($_GET['ask_question'])) {

只有在URL中包含它才会出现。

答案 4 :(得分:1)

您可以使用$_GET超级全局检索问号后面的值。对于示例?ask_question=true

//is ask_question true?
if($_GET['ask_question'] == 'true') {
    echo 'ask_question is true';
} else {
    echo 'ask_question is not true';
}

对于没有值的变量(例如?hello),请以这种方式使用$_GET

if(isset($_GET['hello'])) {
    echo 'hello is there';
} else {
    echo 'hello is not there';
}

您已经提出了很多关于PHP的基本问题,而您似乎并没有掌握该语言的工作原理。我建议您在下一个问题之前仔细阅读文档。