php, sessions und arrays



  • Also ich bastle nen kleinen webshop.
    Jetzt hab ich folgendes Problem:

    /* ********************
    	 * Item hinzufügen
    	 * ********************/
    	 function addWare ($id) {
    	    /*
    		 * Warenkorb anlegen, wenn er noch nicht existiert
    		 */
    		$wk = $_SESSION["warenkorb"];
    		if (!is_array($wk)) {
    			$wk = array();
    		}
    
    		if (isset($wk[$id]))  {
    			$wk[$id] ++;
    		} else {
    			$wk[$id] = 1;
    		}
    
    		$_SESSION["warenkorb"] = $wk;
    	 }
    

    Dies funktioniert einwandfrei auf meinem lokalen xampp, auf meinem Webserver im internet bleibt die sessionvariable nen leeres array.
    Kann mir mal wer verläutern, warum?

    Lokal hab ich nen 5er PHP, auf Webserver nen 4er.- sollte doch aber keinen Unterschied machen ?

    Edit: hab herausgefunden, dass $_SESSION["warenkorb"] nach der letzten Zeile im Programm noch funktioniert- aber irgendwie nicht mit an den nächsten Aufruf übergeben wird.



  • hallo

    hast du cookies aus?

    du hast zwei möglichkeiten: die php sessions arbeiten bei cookies an mit automatischem ablegen von cookies auf dem client.. in die die sessionid gespeichert wird.
    bei cooies off (wie ich immer fahre) ... muss der programmierer zusätzlich über eine hidden variable die sesssion per hand von skript zu skript weiterreichen.. damit der abgleich positiv stattfinden kann.
    deswegen gehen soviele shops nicht, weil die programmierer sich auf cookies on beim client verlassen.
    die sessionid auf dem server braucht ja, das weißt du, den abgleicht mit eben entweder der sessionid aus dem cookie beim aufruf der nächsten seite, oder eben über hidden feld mit der übegebenen id.

    hmm mag sein, daß das problem ist, das deine session schon zerstört wurde, da cookies off. nur so als erste idee.



  • ne, cookies sind an.
    Interessant ist, dass es momentan funktioniert- hatte Testausgaben in den quellcode geschrieben und seitdem funktionierts- vorher nicht..


Anmelden zum Antworten