Michael W.: Online-Shop

Hallo,

ein online-shop system bzw ein warenkorb system ist ja schon ein komplexeres system als ich bisher dachte. ich habe einen online shop auf einer seite wunderbar hinbekommen. aber auf 2 seiten verteilt (d.h. shop.php und kasse.php ect.) sieht das schon wieder ganz anders aus, obwohl ich es inzwischen hinbekommen hab ein gefülltes array von der seite a.php zur seite b.php zu übermitteln ohne ein formular oder links zu benutzen d.h. mit sessions und session_register().

kommen wir mal auf den punkt:
meine frage: wie immer: was habe ich falsch gemacht, nicht berücksichtigt oder vergessen ?:

http://mitglied.lycos.de/djwoelk3/djwoelk/europizza/

link: pizzen (karte.php):
-------------------------

karte.php
<body bgcolor="#CBD3DA" style="font-family: Arial; margin-left: 5px; margin-top: 5px">
<?php
session_start();

if (isset ($arr_nr))
{

$nr   = $_GET['nr'];
$euro = $_GET['euro'];
$text = $_GET['text'];

$arr_nr[]   = $nr;
$arr_euro[] = $euro;
$arr_text[] = $text;

session_register("arr_nr");
session_register("arr_euro");
session_register("arr_text");
}
else
{
print "Fehler (Kein Array vorhanden)";
}
?>
<br>
<br>
<br>
<a href="karte.php?nr=001&euro=4.50&text=Salami Pizza Classic" onclick="alert('Wurde hinzugefügt !')">001</a>
<a href="karte.php?nr=002&euro=5.00&text=Hawaii Pizza" onclick="alert('Wurde hinzugefügt !')">002</a>
<a href="karte.php?nr=003&euro=1.50&text=Cola" onclick="alert('Wurde hinzugefügt !')">003</a>

---------------------------------

link: ihre auswahl (auswahl.php):
---------------------------------

auswahl.php
<body bgcolor="#CBD3DA" style="font-family: Arial; margin-left: 5px; margin-top: 5px">
<?php
session_start();

if (isset ($del))
$offset = $_GET['del'];
{
array_splice ($arr_nr, $offset, 1);
array_pop ($arr_nr);
array_splice ($arr_euro, $offset, 1);
array_pop ($arr_euro);
array_splice ($arr_text, $offset, 1);
array_pop ($arr_text);
}

$summe = array_sum($arr_euro);

print "<table border="1" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0" width="70%">";
print "<tr>";
print "<td align="center" width="41">Nr.</td>";
print "<td align="center" width="100">Bestell-Nr.</td>";
print "<td align="center" width="270">Beschreibung</td>";
print "<td align="center">Preis</td>";
print "</tr>";

for($i=1;$i<count($arr_nr);$i++)
{
print "<tr>";
print "<td align="center">".$i."<a href="auswahl.php?del=$i">Löschen</a></td>";
print "<td align="center">".$arr_nr[$i]."</td>";
print "<td align="center">".$arr_text[$i]."</td>";
print "<td align="center">".$arr_euro[$i]." € </td>";
print "</tr>";
}
print "<tr>";
print "<td align="center"></td>";
print "<td align="center"></td>";
print "<td align="center"></td>";
print "<td align="center"></td>";
print "</tr>";
print "</table>";

print "<br>";
print "Total: ".$summe;

session_register("arr_nr");
session_register("arr_euro");
session_register("arr_text");
?>

--------------------------------

und nochmal der link http://mitglied.lycos.de/djwoelk3/djwoelk/europizza/

P.S.: die kasse hat noch keinen kassierer ...

Danke

  1. wie wäre es der einfachheit halber mit cookies, damit kann man wunderbar arbeiten.

    mfg sebastian

    1. wie wäre es der einfachheit halber mit cookies, damit kann man wunderbar arbeiten.

      mfg sebastian

      soweit ich weiß, ist das eine (sozusagen) db auf dem pc des users.
      nur leider brauche ich mehr infos, da ich cookies nur zum verwenden von userinfos kenne (sie sind zum x. mal hier) ...

      geb am besten mal ein kleines beispiel oder links

      danke

    2. wie wäre es der einfachheit halber mit cookies, damit kann man wunderbar arbeiten.

      mfg sebastian

      das hier würde doch (glaube ich) passen:

      "Sie können auch ein Array an Cookies setzen, in dem sie die Array-Schreibweise benutzen. Dadurch werden so viele Cookies gesetzt, wie ihr Array Elemente hat. Sobald das Cookie aber von ihrem Skript gelesen wird, werden alle Werte in ein einziges Array mit dem Cookie-Namen eingelesen:

      setcookie ("cookie[three]", "cookiethree");
      setcookie ("cookie[two]", "cookietwo");
      setcookie ("cookie[one]", "cookieone");
      if (isset ($cookie)) {
          while (list ($name, $value) = each ($cookie)) {
              echo "$name == $value<br>\n";
          }
      }"

      d.h. ( nur der klarheit halber):

      ich muss vorher eon array definieren

      $cookie = Array()

      und dieses array, das als cookie auf dem pc gespeichert wird als $cookie ausgeben.

      das cookie wird durch setcookie definiert:
      also:

      $cookie = array();
      $cookie (als array) = [cookie]
      $cookie (als cookie)

      im beispiel steht wir man die einzelnen variablen in das array einteilt.

      kann ich das ganze auch so machen:

      $a = 'wort1';
      $b = 'wort2';
      $arr = array();
      $arr = $a;
      $arr = $b;
      setcookie ("arr", "cookie");
      echo join('<br>',$arr);

      und als ausgabe erhalte ich den inhalt des cookies:

      wort1
      wort2

      ?? ist das so korrekt ??
      wenn ja, müsste ich das cookie(array) doch auch auf einer anderen seite genauso abrufen können, da es ja auf dem pc gespeichert wird...

      ??????
       oder
      !!!!!!

      ?

      Danke

  2. Hi!

    <body bgcolor="#CBD3DA" style="font-family: Arial; margin-left: 5px; margin-top: 5px">
    <?php
    session_start();

    session_start() MUSS aufegrufen werden bevor irgendwelche Headerinformation geschickt werden, das heist, bevor das php-Script irgendetwas aus gibt (sei es über echo, print usw. oder reines html !
    Am besten in der ersten Zeile der Datei folgendes notieren.

    <?php
    session_start();

    siehe auch http://www.php.net/manual/de/function.session-start.php

    Gruß Herbalizer