tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
5388
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Heike2 Heike2 ist offline Grünschnabel
    Registriert seit
    Jul 2005
    Beiträge
    1
    Hallo Programmierer,
    ich habe ein Problem.
    Ich möchte einen Webshop machen und die Daten per Javascript in den Warenkorb legen.
    Die Artikeldaten werden per cookie gespeichert und auf der Warenkorbseite wieder ausgelesen.
    Dann wird der Cookie bei einer Bestellung als PHP-Formular gesendet.
    Das klappt alles super, nur:
    Problem1: Unter der Artikelliste wird immer 'Apache=(Dann eine lange Nummer) angezeigt.
    Problem2: Warenkorb leeren funktioniert auch nicht. Die Artikel bleiben immer im Cookie stehen.

    Der Code zum erstellen des Cookies:
    <!--Cookie erstellen-->
    document.cookie = 'meincookie2=meinwert2; expires=Thu, 01-Jan-3070 00:00:01 GMT;';

    Der Code zum schreiben in den Cookie:
    <!--Cookie beschreiben-->
    document.cookie = '<br>Bestellung=Artikeldaten';

    Der Code zum löschen des Cookies:
    <!--Cookie löschen-->
    document.cookie = 'meincookie2=meinwert2; expires=Thu, 01-Jan-1970 00:00:01 GMT;';

    Warum wird Apache angezeigt und was bedeutet das?
    Den Cookie gebe ich mit "document.write(document.cookie);" aus.




    Warum löscht sich der Cookie nicht mehr, damit der Warenkorb leer wird?

    Ich hoffe mir kann jemand helfen.

    Vielen Dank.


    Heike
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Erst mal prinzipiell: man kann mehrere Cookies setzen.
    mit document.cookie holst du alle Cookies, besser gesagt eine Zeichenkette, die paarweise alle Cookies mit ihren Werten enthält.
    Es existiert also auch ein Cookie mit Namen "Apache"... woher der kommt, musst du selbst wissen, ich tippe mal, er wurde serverseitig gesetzt.

    Den Wert einzelner Cookies kannst du ermitteln, indem du die Zeichenkette, die document.cookie liefert, untersuchst.


    Zu dem erfolglosen Löschen des Cookies:
    Code :
    1
    2
    3
    
    Der Code zum schreiben in den Cookie:
    <!--Cookie beschreiben-->
    document.cookie = '<br>Bestellung=Artikeldaten';
    ...wenn dies der Cookie ist, den du Löschen willst... da fehlt das Ablaufdatum.
    Löschen tust du einen anderen cookie, nämlich den zuerst erstellten.

    Für Cookies bietet es sich an, zum Setzen, holen und löschen Funktionen zu verwenden... da die Vorgehensweise immer dieselbe ist, erleichtert das die Sache ungemein.

    hier mal solche Funktionen.... die Benutzung sollte eigentlich einleuchtend sein:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    
    <script type="text/javascript">
    <!--
     
        /**
          * Funktion: get_cookie()
          * holt cookie-Wert
          * Parameter:cookie-Name
          * Rückgabewert: cookie-Wert/ false
          **/
          
    function get_cookie( cookieName )
    {
        strValue = false;
        
        if( strCookie = document.cookie )
            {
                if( arrCookie = strCookie.match( new RegExp( cookieName + '=([^;]*)', 'g')))
                    {
                        strValue=RegExp.$1;
                    }
            }
        return(strValue);
    }
        
        
        /**
          * Funktion:set_cookie()
          * setzt cookie
          * Parameter: cookie-Name,cookie-Wert,Haltbarkeit in Tagen
          * Rückgabewert: true/false
          **/
          
    function set_cookie(cookieName,cookieValue,intDays)
    {
        if(!is_cookie_enabled())
            {
                return false;
            }
            
        objNow = new Date();
        strExp = new Date( objNow.getTime() + ( intDays * 86400000) );
        document.cookie = cookieName + '=' + 
                          cookieValue + ';expires=' + 
                          strExp.toGMTString() + ';';
        return true;
    }
     
     
        /**
          * Funktion:delete_cookie()
          * Löscht cookie
          * Parameter: cookie-Name
          * Rückgabewert: true/false
          **/
     
    function delete_cookie(cookieName)
    {
        if(document.cookie)
            {
                document.cookie = cookieName + '=' +
                                  get_cookie(cookieName) +
                                  ';expires=Thu, 01-Jan-1970 00:00:01 GMT;'; 
                return true;
            }
        return false;
    }
     
     
        /**
          * Funktion is_cookie_enabled()
          * prüft ob cookies erlaubt sind
          * Parameter: nix
          * Rückgabewert: true/false
          **/
          
    function is_cookie_enabled()
    {
        if(typeof navigator.cookieEnabled!='undefined')
            {
                return navigator.cookieEnabled;
            }
        
        set_cookie('testcookie','testwert',1);
        
        if(!document.cookie)
            {
                return false;
            }
        
        delete_cookie('testcookie');
        return true;        
    }
     
    //-->
    </script>

    Dass und wie das funktioniert, kannst du hier testen: Javascript: cookies setzen, holen, löschen
     

  3. #3
    JavaEngel JavaEngel ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    57
    Ich möchte ein Cookie änder, wie mach ich das?

    Es handelt sich um ein "PHPSESSID"-Cookie. Ich bin Nutzer des FireFox und habe bereits in der "cookies.sqlite" nachgeschaut. Dort ist diese aber nicht eingetragen.
     

  4. #4
    Rambomaster Rambomaster ist offline Mitglied Silber
    Registriert seit
    Feb 2007
    Beiträge
    74
    Versuch mal Firebug mit der erweiterung Firecookie. Damit siehst du alle Cookies die auf einer Seite angelegt wurden und kannst diese auch verändern.

    Btw. dieses Thema ist schon über 3 Jahre alt
     

  5. #5
    JavaEngel JavaEngel ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    57
    Geht nicht. Es wird nicht übernommen.

    Code :
    1
    
    <a href="#" onclick="window.open('http://img3.imagebanana.com/popup/0yr8sn5s/Cookie.bmp.png','ImageBanana','width='+ 683 +',height='+ 184 +',left='+((screen.availWidth - 683 - 10)* .5) +',top='+((screen.availHeight - 184 - 30)* .5));"><img src="http://img3.imagebanana.com/img/0yr8sn5s/thumb/Cookie.bmp.png" style="border:0px;" alt="ImageBanana - Cookie.bmp.png"></a>

    Image:
    http://img3.imagebanana.com/img/0yr8sn5s/Cookie.bmp.png
     

  6. #6
    Rambomaster Rambomaster ist offline Mitglied Silber
    Registriert seit
    Feb 2007
    Beiträge
    74
    Rechtsklick auf den Namen ("PHPSESSID") und dann Edit
     

Ähnliche Themen

  1. Probleme mit Cookies bei Schriftgrössenanpassung
    Von Hausl im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 15.06.10, 22:35
  2. 2 Cookies - Probleme
    Von GodWar im Forum PHP
    Antworten: 0
    Letzter Beitrag: 11.02.05, 16:51
  3. Probleme mit Cookies
    Von sussus im Forum PHP
    Antworten: 2
    Letzter Beitrag: 04.07.04, 18:06
  4. probleme mit cookies...
    Von klask im Forum PHP
    Antworten: 10
    Letzter Beitrag: 11.04.04, 12:55
  5. Probleme mit Cookies
    Von Free Faq im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 09.12.03, 17:04

Stichworte