我有一个index.php文件,其中包含以下代码,其中我获取存储在我的数据库中的城市名称,打印所有城市,并为每个城市打印一个按钮。示例:拥有我的数据库中的城市(伦敦,纽约和旧金山),我会有类似的内容:
伦敦 - >按钮
纽约 - >按钮
San Franciso - >按钮
<?PHP
while($myrow = pg_fetch_assoc($result)) {
$nameofcity = $myrow[cityname];
echo $nameofcity;
$_SESSION['variabletopass'] = $nameofcity;
echo'<form name"formname" method="post" action="results.php">';
echo'<input type="submit" name="submit" value="See City">';
echo'</form>';
}
?>
然后我点击了按钮时打开的results.php。
<html>
<body>
<?php
$var_nameofcity = $_SESSION['variabletopass'];
//Here I look in my database for info base on $var_nameofcity
// something like select description from cities where city = $var_nameofcity
//And I print the info
echo $var_nameofcity;
echo 'Here it goes the Picture of the city';
echo 'description';
?>
</body>
</html>
我的问题是:自
以来 $_SESSION['variabletopass'] = $nameofcity;
echo'<form name"formname" method="post" action="results.php">';
echo'<input type="submit" name="submit" value="See City">';
echo'</form>';
在一段时间内,$ _SESSION ['variabletopass']将只获得最后一个谷,所以无论我按哪个按钮都打开我的最后一个城市(例如:旧金山)。< / p>
我该怎么做,所以传递的变量($ _SESSION ['variabletopass'] = $ nameofcity;)按下按钮时是与通讯城相关联的那个?
非常感谢
答案 0 :(得分:0)
将城市名称设置为表单中的隐藏输入:
<input type="hidden" name="city" value="<?php echo $nameofcity; ?>" />
然后当您发布表单时,该城市在$ _POST全局中可用作与隐藏输入相同的索引:
<?php $nameofcity = $_POST['city']; ?>
显然,请记住,您希望在读取$ _POSTed输入时进行一些安全检查,以保持脚本注入和可能的SQL注入。