I’m coding a cart page that checks if there’s something in the cart and then, if the condition is true,, it echoes a div with a picture of the product, the amount, the price and the name of the product. The variables are inside a session array because I take the data from other pages (login and sign in) where I declare the following array:
$myProdArray=[
array("Superbiomin", 0.016, 3, "/img/superbiomin.jpg"), //name, units, price, image
array("Prop P Jaleia Reial", 0.010, 2, "/img/proppjalea.jpg"),
array("Vitamina C 500mg Mastegable Solaray", 0.0097, 1, "/img/vitc.jpg"),
];
$_SESSION['prods'] = $myProdArray;
Everything works but I don’t know how to refer to the image name string stored in the session array. Here’s the body code of the cart page:
<body class="cartbody">
<?php
$nothing = true;
for($i = 0; $i<3;$i++){
if($_SESSION['prods'][$i][2] !== 0) {
$nothing = false;
if($nothing == false) {
?>
<div class="cartbodyfalse">
<div class="productSummary">
<?php
for($j=$i; $j<3;$j++){
if($_SESSION['prods'][$j][2]>0)echo "
<div class='indivProdRow'><img src=".
$_SESSION['prods'][$j][2]." class='prodcartimg'><h5>x" .
$_SESSION['prods'][$j][2] . " " .
$_SESSION['prods'][$j][0] ." " .
$_SESSION['prods'][$j][1] ." ETH</h5></div>";
}
}
echo "</div>";
$i = $j;
}
}
if($nothing == true){
echo "<div class='cartbodytrue'><div class='cartmsg'><h4 class='nothing'>Sembla que encara no tens res al carret</h4><a href='botiga.php'><button class='btn kbuyin'><i class='fa-solid fa-shop'></i> Seguir comprant</button></a></div></div>";
} else { ?>
<div class="ticketactions">
<?php ?>
</div>
<?php } ?>
</div>
</body>
I was expecting the code to output the image, however, it outputs the mini img logo as the src attribute value is incorrect. Finally, apart from the code previously showed, I tried using ".{‘session array’}.", and ".’session array’".
2
Answers
The way I see in your code, the index key for image path is
3
.Try:
UPDATE: You shoud use qoutes/double-qoutes for src as mentioned in comments by @user3783243.
UPDATE2: There are too many things wrong with this code, yet another thing is that
"/img/superbiomin.jpg"
is an absolute path not relative, so this will not show you the image as well, You must use a dot at first of paths to achieve relative path and make it work, use it like:"./img/proppjalea.jpg"
.BTW, irrelevant point : having PHP tags closed and reopened several times is not a good idea, It may cause more mistakes or even exposing back-end code. Make a buffer of HTML content and flush it at the end.
It is better to code like this :
Then: