我在网站的主页上有一个表单,用作包含,询问“输入你的邮政编码”,并在PHP文件中使用简单的if else语句,它显示首选位置(由客户提供)
在提交时,位置部分只使用$ _POST功能,并且只显示一些简单的if位置。
我遇到的问题是将该值传递给其他页面。一旦输入邮政编码并显示结果,该结果就需要转移到其他页面,但这并不是我很难搞清楚。
/我添加了一个链接 - * /
http://www.subigya.com/stackoverflow/zipcode
文件:
http://www.subigya.com/stackoverflow/zipcode/zipcode.zip
我现在意识到一些不同的问题,我不能简单地让会话运行,我不知道为什么。
答案 0 :(得分:3)
POST和GET只会转到您请求的页面。 session_start()根据通过GET或POST请求传递的会话标识符创建会话或恢复当前会话,或通过cookie传递。
如果您的邮政编码确实已发布,那么您只需使用$myzip = $_POST['zipcode'];
用会话来做你必须:
session_start();
位于页面顶部并设置可修改的w / $_SESSION['zipcode'] = 'myzipcode';
或者重置值$myzip = $_SESSION['zipcode'];
在process.php中更新您当前的代码:
<?php
session_start();
if(count($_POST)>0)
{
$zip = $_POST['zipcode'];
$_SESSION['zipcode'] = $zip;
} else if(isset($_SESSION['zipcode']))
$zip = $_SESSION['zipcode'];
echo 'Current zipcode in session: ' . $_SESSION['zipcode'] . PHP_EOL;
if ($zip=="00000"){
echo'
<div id="result1" class="zipcodeResult">
<p><span class="locationName yellow">Location Name</span><br />
Address 1<br />
City, Texas 77025<br />
888.88.8888<br />
GM, <span class="underline">John Quest</span><br /><br />
<a href="#" target="_blank">Menu</a> | <a href="#" target="_blank">Catering</a> | <a href="#">Private Dining</a><br />
<a href="#" target="_blank">Take Out</a> | <a href="#">Map & Hours</a><br /><br />
<a href="search.php" class="backtoSearch">Change My Location</a></p>
</div>';
}else {
unset($_SESSION['zipcode']);
echo '
<div id="result6" class="zipcodeResult">
<p><span class="locationName yellow">Unrecognized Zip Code</span><br />
The zip code you have provided <br />
is out of range. <br /><br />
We primarily serve <br />
the greater Houston area <br />
in the state of Texas.<br /><br />
<a href="search.php" class="backtoSearch"> Click here to enter <br />
another zip code.</a></p>
</div>';
}
?>
这只是对现有process.php的简单修改。我添加了session,基本上将输入的zipcode存储到会话变量$_SESSION['zipcode'];
中。每次用户在process.php中输入zipcode时,它都会显示会话var zipcode中的内容。因为你在iframe中有它,看看会话是否正常工作只需点击你已经回显的链接,这应该指向自己。如果您使用GET或POST,则会显示Session var zipcode,但如果您使用Session,则会显示。希望这会有所帮助。
答案 1 :(得分:0)
使用PHP有多种方法可以将信息从一个页面传输到另一个页面
1)会议(http://no2.php.net/manual/en/book.session.php)
在一页上:
$_SESSION['someKey'] = 'someValue';`
在另一页上:
echo $_SESSION['someKey'];
要使会话正常工作,您需要在两个页面的顶部运行session_start();
(实际上每个页面都需要会话存在)。
2)POST(http://www.php.net/manual/en/reserved.variables.post.php)
3)GET(http://www.php.net/manual/en/reserved.variables.get.php)
答案 2 :(得分:0)
如果您暂时只需要邮政编码,并且不需要为用户保留邮政编码,那么您可以使用会话将其存储为整个会话。
如果从一个页面移动到另一个页面,也可以使用GET(在查询字符串中添加zipcode)。这是合适的,如果您需要携带它以获得最少的页数,并且您没有太多的东西可以随身携带。
POST是另一种方式,在这种情况下,你必须使用跨页面发布。
如果您认为数据应该保留在用户的偏好中以供将来使用,那么最好将其放在用户配置文件中并使用它。
使用会话或将其保留在用户配置文件中有一个好处,您可以在整个站点的任何页面上使用它。你不需要明确地随身携带它。但对于POST和GET,您需要明确地将数据带到另一页。这可能需要一些管理。