Anzeige:
Ergebnis 1 bis 3 von 3

Thema: probleme mit warenkorb

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.12.2001
    Beiträge
    61

    probleme mit warenkorb

    hallo zusammen
    ich programmiere zur zeit einen warenkorb.
    wenn der kunde einen artikel auswählt lasse ich diesen samt session_id ,IP und das aktuelle Datum eine Datenbanktabelle schreiben.
    Tabellenname: order1

    Wenn der Kunde dann seine Bestellung mit Eingeben seiner Personalien fortsetzt werden dann anschließend die Daten aus dem Warenkorb und seine Personalien in eine Datenbanktabelle order2 geschrieben.
    Das wäre der Idealfall.Was ist aber wenn der Kunde nach seiner Produktauswahl meine Seite verlässt ohne die Bestellung zu Ende zu führen.Die Daten würden dann in der Tabelle order1 stehen bleiben.

    Lösung:
    Kann man diese daten zeitlich begrenzen lassen.wie würdet ihr das umsetzen oder habt ihr eine andere lösung.

    mfg

  2. #2
    Registrierter Benutzer
    Registriert seit
    02.12.2002
    Ort
    Darmstadt
    Beiträge
    615
    Die ganzen Daten erst in der Session speichern (Dafür ist sie da) und erst am Ende alles in die DB schreiben - so macht es eigentlich jedes Warenkorb system.
    Seine Rätselhaftigkeit wird nur durch seine Macht übertroffen!

  3. #3
    Registrierter Benutzer Avatar von Stanislaus
    Registriert seit
    04.07.2003
    Ort
    Mönchengladbach
    Beiträge
    80
    Oder, wenn Du den Kram unbedingt in der DB haben willst, schreibst Du dir einen eigenen Sessionhandler, der die Sessions nicht in /tmp sondern eben in der DB ablegt.
    Alte Sessions werden dann genau so gelöscht, wie es unter /tmp der Fall ist.

    Hier mal ein Beispiel wie sowas aussehen könnte:
    PHP-Code:
            function sessionHandler()
        {
            
    session_set_save_handler('open''close''read''write''destroy''gc');
        }


        function 
    open($save_path$session_name)
        {
          
    mysql_connect("localhost""benutzer""passwd");
            
    mysql_select_db("dingens");
            
    $table $session_name;
        return 
    true;
        }


        function 
    read($session_id)
        {
          
    $result mysql_query("select VALUE from SESSION_STORE where SESSION_ID = '" $session_id "'");
            if(
    $result && mysql_num_rows($result))
            {
              return 
    mysql_result($result0);
            }
            else
            {
            echo 
    mysql_error();
            }
        }

        function 
    write($session_id$data)
        {
          
    $data addslashes($data);
            
    $strQuery "replace into SESSION_STORE (SESSION_ID, VALUE) values ('" $session_id "', '" $data "')";
            
    mysql_query($strQuery) or mysql_error();
            return 
    true;
        }

        function 
    close()
        {
          return 
    true;
        }


        function 
    destroy($session_id)
        {
          
    mysql_query("delete from SESSION_STORE where SESSION_ID = '" $session_id "'");
            return 
    true;
        }


        function 
    gc($max_time)
        {
            
    $strQuery "delete from SESSION_STORE where unix_timestamp(EXPIRATION) < unix_timestamp()-$max_time";
            
    mysql_query($strQuery) or mysql_error();
            return 
    true;
        } 
    Wenn Du einfach am vor dem Start der Session sessionHandler() aufrufst läuft alles über die DB und nicht über /tmp

    Bis neulich ...

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •