verfaßt von uteS, 02.10.2014, 13:51:03
Ich bastle an einer Vormerkliste.
Dafür wende ich auf einer Katalogseite die Funktion array_push() an, um z.B. eine Bild-URL in das Session-Array neu einzutragen, was nachher auf einer Merkzettel-Seite erscheinen soll.Das funktioniert auch im Prinzip.
Damit der Eintrag aber erst vollzogen wird, wenn man etwas ausdrücklich vormerken will, habe ich den push_array-Befehl jeweils in ein verstecktes Formularfeld geschrieben und einen submit-Button vorgesehen.
Das Problem:
Der Server führt sofort beim Aufruf der Seite alle push_array-Befehle aus, die auf der Seite findet, und schreibt sie in das Session-Array, ohne drauf zu warten, dass man auf den Button klickt.
Wo ist da mein Denkfehler / Informationsmangel?
Code der Katalogseite:
<?php
session_start();
$_SESSION['logo']=array();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="de" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>Katalogseite</title>
</head>
<body>
<table>
<td><img src="1188.gif" alt="" height="150" width="210" border="0" />
<p>#1188</p>
<form id="" action="merkliste.php" method="get" name="">
<input type="hidden" name="vormerken" value='<?php array_push($_SESSION['logo'], "<img src="1188.gif">"); ?>' />
<input type="submit" name="submitButtonName" value="Vormerken" />
</form>
</td>
<td><img src="1417.gif" alt="" height="150" width="210" border="0" />
<p>#1417</p>
<form id="" action="merkliste.php" method="get" name="">
<input type="hidden" name="vormerken" value="<?php array_push($_SESSION['logo'], "<img src="1417.gif">"); ?>" />
<input type="submit" name="submitButtonName" value="Vormerken" />
</form>
</td>
</table>
<p><a href="merkliste.php">Zur Merkliste</a></p>
</body>
</html>
Code der Merkzettelseite:
<?php
session_start ();
$_SESSION['logo'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="de" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<title>Merkliste</title>
</head>
<body>
<?php
foreach($_SESSION['logo'] AS $nummer)
{
echo "<p>" .$nummer."</p>";
}
?>
</body>
</html>
gesamter Thread: