我写了一个简单的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。如何解决此问题。? 如何为每个名字打开不同的网站。?
答案 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');
}
?>
希望这有助于您更好地了解正在发生的事情。