我将会话值存储到从URL获取的数组中并尝试显示它(在购物车中获取产品的大小)。 但第一个值被第二个值取代。
我的代码:
if(isset($_POST['radio'])){
$_SESSION['sz']=$_POST['radio'];
$si=$_SESSION['sz'];
}
<a href="product_detail.php?pdt_id='.$pdid.'&add=' .$pdid .'&size='.$si.'"
class="cartBtn" onclick="return fun1()">Add to cart</a>';
?>
显示页面:
$rt=$_GET['size'];
$_SESSION['wer']=$rt;
$array = $_SESSION['wer']; //Assigns session var to $array
//print_r($array);
echo $array[$x];
}
答案 0 :(得分:1)
关于第一部分错误:
<?php
if(isset($_POST['radio'])){
$_SESSION['sz']=$_POST['radio'];
$si=$_SESSION['sz'];
}
<a href="product_detail.php?pdt_id='.$pdid.'&add=' .$pdid .'&size='.$si.'" class="cartBtn" onclick="return fun1()">Add to cart</a>';
?>
@Hearner说,你的标签是完全错误的。它应该在php标签之外或者内部带有“echo”,如下所示:
echo "<a href='product_detail.php?pdt_id=".$pdid."&add=".$pdid."&size=".$si."' class='cartBtn' onclick='return fun1()'>Add to cart</a>";
您无法从if语句中访问$ si变量。如上所述,如果之前没有声明你的$ si(因为你说它不是你的完整代码......)那么$ si(在链接href中)就不存在了。因此,您应该在if语句之前声明它,或者将您的链接(标记)放在if语句中!
如果未设置“$ _POST ['radio']”怎么办?怎么了?代码丢失...... !!是否已宣布$ si?
关于第二部分:
<?php
for( $x = 0, $max = count($array); $x < $max; ++$x ) {
$rt=$_GET['size'];
$_SESSION['wer']=$rt;
$array = $_SESSION['wer'];
echo $array[$x];
}
?>
我不明白你在这里要做什么......需要更多的代码/信息...没有你的整个代码就无法帮助更多......
编辑:
这是一个非常简单的示例,向您展示如何将您的vars保存到会话数组中。
第一页(pageOne.php):
<?php
session_start();
if(!(isset($_SESSION['myTest']))){
$_SESSION['myTest'] = "AWESOME";
$_SESSION['varToKeep'] = [];
}else{
echo "A session is already started. This is : ".$_SESSION['myTest']."<br/>";
if(count($_SESSION['varToKeep']>0)){
echo "There are ".count($_SESSION['varToKeep'])." vars in the array!<br/>";
for($i=0;$i<count($_SESSION['varToKeep']);$i++){
echo "Item ".$i." : ".$_SESSION['varToKeep'][$i]."<br/>";
}
}
}
echo "<br/>Click below to add a value in array<br/>";
$random = rand(1,100);
echo "<a href='pageTwo.php?mygetvar=STACKTEST".$random."'>Click here</a>";
?>
第二页(pageTwo.php):
<?php
session_start();
echo "myTest value is : ".$_SESSION['myTest']."<br/><br/>";
$value = $_GET['mygetvar'];
$_SESSION['varToKeep'][] = $value;
echo "<a href='pageOne.php'>CLICK HERE TO RETURN ON PAGE ONE!</a>";
?>