如何使用get方法来执行PHP的不同功能。

时间:2017-08-01 03:28:50

标签: javascript php html

我写了一个简单的php文件,用不同的URL打开不同的网站。 PHP代码在这里。(它的文件名是user.php)

<?php 

$id =  $_GET["name"] ;

 if ($id=joe) {

header('Location: http://1.com');
}

 if ($id=marry) {

header('Location: http://2.com');
}

 if ($id=katty) {

header('Location: http://3.com');
}

?> 

我使用这3种方法来调用php文件。

1.http://xxxxxx.com/user.php?name=joe
2.http://xxxxxx.com/user.php?name=marry
3.http://xxxxxx.com/user.php?name=katty

但php文件每次只打开http://3.com。如何解决此问题。? 如何为每个名字打开不同的网站。?

4 个答案:

答案 0 :(得分:1)

你的比较是错误的。 joe,marry和katty是字符串类型

<?php 

$id =  $_GET["name"] ;

 if ($id=='joe') { //<--- here

header('Location: http://1.com');
}

 if ($id=='marry') { //<--- here

header('Location: http://2.com');
}

 if ($id=='katty') { //<--- here

header('Location: http://3.com');
}

?> 

这是PHP比较运算符描述。 http://php.net/manual/en/language.operators.comparison.php

答案 1 :(得分:1)

您应该将==用于非=

的条件语句
 if you use = , you say :
 $id='joe'; 
 $id='marry';
 $id='katty';

 if($id='katty') return 1 boolean

答案 2 :(得分:1)

首先,使用== vs =是你所拥有的错误,但无论何时你做一个脚本都要注意不要多余。如果没有条件,您可能还想考虑制作默认设置:

<?php
# Have your values stored in a list, makes if/else unnecessary
$array = array(
    'joe'=>1,
    'marry'=>2,
    'katty'=>3,
    'default'=>1
);
# Make sure to check that something is set first
$id    = (!empty($_GET['name']))? trim($_GET['name']) : 'default';
# Set the domain
$redirect = (isset($array[$id]))? $array[$id] : $array['default'];
# Rediret
header("Location: http://{$redirect}.com");
# Stop the execution
exit;

答案 3 :(得分:1)

所以看起来你的问题已经在上面得到了回答,但如果你刚刚开始(使用数组,简短的php if语句等),它可能对你来说不太清楚。

我假设你只是在考虑你想要实现的目标而学习PHP,所以这里有一个比其他人在这里发布的更容易理解的简化答案: / p>

<?php
    // Check that you actually have a 'name' being submitted that you can assign
    if (!empty($_GET['name'])) {
        $id = $_GET['name'];
    }
    // If there isn't a 'name' being submitted, handle that
    else {
        // return an error or don't redirect at all
        header('Location: ' . $_SERVER['HTTP_REFERER']);
    }

    // Else your code will keep running if an $id is set
    if ($id == 'joe') {
        header('Location: http://1.com');
    }

    if ($id=marry) {
        header('Location: http://2.com');
    }

    if ($id=katty) {
        header('Location: http://3.com');
    }
?>

希望这有助于您更好地了解正在发生的事情。