Zipcode表单条目中的URL重定向

时间:2014-06-06 17:48:14

标签: php forms

好。在寻求帮助之前,我一直努力想要解决这个问题,但是4个小时之后,谷歌的前4页点击了,我很怜悯。 我想要一个简单的一行表单,用户可以输入他们的邮政编码,它会自动将它们重定向到合作伙伴网站。 IE浏览器。用户输入80013并将其转发到www.domain1.com 用户输入80303并将其转发至www.domain2.com

我知道我错过了一些非常小的东西,但无论我尝试在PHP中使用什么变体,无论我打电话给哪个zip数组,它都只会转到domain1.com。

HTML:

<form method='get' action='3.php'>
  <div class="zipcode">
    <label for="zip">Zip Code: </label>
    <input name="zip" type="text" maxlength="5" id="zip" />
  </div>

  <div class="button">
    <input type='submit' name="did_submit" value="Get Started!">
  </div>
</form>

3.php

<?php

$zip = $_POST['zip']; //your form method is post

$loc1 = array (80013,80015,80016,80017,80018,80019,80104,80107,80108,80109,80112,80116,80118,80120,80121,80122,80123,80124,80125,80126,80127,80128,80129,80130,80134,80135,80138,80160,80161,80162,80163,80165,80166,80433,80453,80465,80470);
$loc2 = array (80601,80602,80603,80614,80640,80022,80037,80241,80233,80229,80239,80240,80249,80238,80216,80202,80205,80206,80207,80209,80203,80218,80220,80222,80226,80231,80224,80246,80210,80230,80204,80237,80010,80012,80014,80040,80041,80042,80044,80045,80046,80047,80247,80110,80111,80150,80151,80113,80155,80102,80427,80621,80444,80137);
$loc3 = array (80303,80305,80302,80304,80301,80310,80466,80516,80026,80027,80020,80021,80023,80002,80003,80004,80005,80007,80030,80031,80401,80403,80427,80439,80452,80457,80422,80033,80234,80260,80221,80212,80211,80215,80214,80226,80228,80223,80204,80232,80227,80235,80236);

if(in_array($zip == $loc1)) {
    header("Location: http://www.domain.com");
} 

elseif(in_array($zip == $loc2)) {
    header("Location: http://www.domain2.com");
} 
else {
    header('Location: http://www.domain3.com');
}
exit();

?>

请帮忙!

3 个答案:

答案 0 :(得分:1)

您在表单中使用method='get',但在PHP中,您使用的是$_POST。你需要选择其中一个。

答案 1 :(得分:1)

你几乎拥有它。试试这个:if(in_array($zip, $loc1))

当您键入$zip == $loc1时,它会尝试将字符串与数组进行比较,该数组将始终返回FALSE。此外,您需要将表单的方法设置为GET,或者在脚本顶部指定$zip = $_GET['zip'];,以保持请求方法的一致性。

最后,这不会影响脚本的结果,但exit();和结束标记(?>)都是多余的,并且在此处没有效果,假设这是整个脚本。

答案 2 :(得分:0)

您正在使用html form method="GET",而您正在使用php file访问$_POST。有问题。

你写的in_array()错了

应该是例如:

<?php
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}
if (in_array("mac", $os)) {
    echo "Got mac";
}
?>