我是 PHP 新手,只是想完成我的第一个应用程序......这是一个房地产页面。用户可以添加开放日的信息。代码指示添加一般信息。然后图片。这条路线非常适合会话。有登录系统。同一用户将在登录时添加新的开放日并编辑当前的开放日。
有一个编辑帐户的链接,此时用户可以编辑任何内容,包括列表、添加图片等。但是当我走这条路时,会话从第一个信息条目中为地址带来相同的值,而不是为项目带来相同的值待编辑。
我的猜测是我基本上有两条路线:a)同时有两个会话
问题:如何区分它们?怎么称呼他们?我只是还不能理解 php.net。也许在几个月内。我试过了。
b) 我学会了(经过大量的汗水和无尽的夜晚)使用 URL 的非常基本的 _POST。但我学到的方法对连续页面最有用。我需要经历很多圈...
问题:有没有办法继续传递帖子并在几个不同的页面上获取值?或者创建一个全局变量?
除了我研究过的之外,还有更好的方法吗?
谢谢你的时间。
编辑**编辑
我被要求在这里放一些代码。一旦我获得了开放日的所有信息,我就有一个文件可以在 DB 中插入所有数据,并获取地址、城市和州以对地址进行地理编码,以便在 DB 中插入数据(lat、lng)
$username = $_SESSION['user']['username'];
$sql="INSERT INTO braaasil_brokerstour.property(day, hours,laundry_equip, VERY LONG QUERY, ETC.)
VALUE ('$_POST[day]','$_POST[hours]','$_POST[laundry_equip]',VERY LONG QUERY, ETC. ETC'$username')"
or die ("fail");
if (!mysqli_query($connection,$sql))
{
die('Error: ' . mysqli_error($connection));
}
$P_ID = $connection->insert_id;
printf ("New Record has id: %d.\n", $P_ID);
$_SESSION['P_ID'] = $P_ID;
ETC. ETC.
然后,我在 SESSION 中获得了一些值以在不同的页面中使用。
<?php session_start();
$address = $_SESSION['address'];
$city = $_SESSION['city'];
$zip_code = $_SESSION['zip_code'];
$P_ID = $_SESSION ['P_ID'];
问题是同一用户可能会添加新列表并修复旧内容,并且会话就在那里。pageInsertNew.php(地理编码的东西)获得一个会话会很好。pageFIX.php(更新/修复东西)创建一个不同的会话。这样我就可以分开东西了。
我将使用这些关于 ID 和地址的信息将图片插入到具有用户 ID 和地址的不同表中,以确保如果出现问题我们可以轻松调试。
我真的很感激所有的答案。但是我需要一整天的时间来理解它们,研究它们,然后我会回来的。我是新来的,但我想您可能会收到一封电子邮件,告诉您我在这里所做的任何更改。
再次感谢您的所有回复。我不知道今天如何实施它们,让我们希望事情很快就会改变。
此外,在一些喜欢 post/get 的人和一些人喜欢 session 之间存在这个问题。在这一点上,我无法以我的计算机技能来判断这一点。
编辑#2 谢谢imsiso。这是我需要的第二个价值来源(第一个在这个问题的上面)。两者具有相同的名称(地址、城市、邮政编码)。两者都由同一用户在同一会话中使用或不在同一会话中使用。
<?php
require_once('config.php');
$query = sprintf("select P_ID, address, city from property WHERE username = '".(
htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'))."'");
$result = mysql_query($query, $db);
$images = array();
while ($row = mysql_fetch_array($result)) {
$address = $_SESSION['address'];
$city = $_SESSION['city'];
$zip_code = $_SESSION['zip_code'];
$P_ID = $_SESSION ['P_ID'];
echo $P_ID;
echo $city;
?><br />
Edit pictures:
<form action="formAddPic2.php" method="post">
<li> <a href="formAddPic2.php?P_ID=<?php echo $row['P_ID']; ?>">Property ID: <?php print $row['P_ID'] ?> </a><br /><br />
   Address: <?php print $row['address']?>, <?php print $row['city'] ; ?>
</li>
<form>
<?php
如您所见,我已放弃会话并返回获取/发布属性 ID,但现在我还需要获取地址的值,以防万一我开始遇到问题。
因此,在一个循环之后,这就是我将尝试的:
$properties=array(
/* like: id=>array(
'id'=>id
),*/
1=>array(
'id'=>1,
'property_name'=>'echo $row['P_ID']', // automatic id in database
'zip_code => 'echo $row['zip_code']',
'some_other_things'=>'some other value',
),
2=>array(
'id'=>2,
'property_name'=>'echo $row['P_ID']', // automatic id in database
'zip_code => 'echo $row['zip_code']',
'some_other_things'=>'some other value',
),
);
$_SESSION['properties']=array();
$_SESSION['properties']=$properties;
因此,数组将在循环之后进行,而不是像 @imsiso 的答案那样调用这些值。此外,一个循环可能总是空的,这取决于用户是否必须添加新列表并修复旧内容,或者只是修复或添加新内容。