#1 4. Januar 2012 $_SESSION bekommt mysteriösen Wert Hallo, habe einen sehr merkwürdigen Fehler, der nur online, aber nicht lokal, auftritt. Ich setze so die Variable $gruppe und die entsrpechende Session $_SESSION["gruppe"]: PHP: if(isset( $_GET [ "gruppe" ]) AND !empty( $_GET [ "gruppe" ])){ $gruppe = $_GET [ "gruppe" ]; $_SESSION [ "gruppe" ] = $gruppe ; }else{ $gruppe = $_SESSION [ "gruppe" ]; } Sobald die Session einen Wert hat (ID eines DB-Eintrags) werden bestimmte Einträge angezeigt. Diese Einträge kann man löschen. Das geht so: PHP: function deleteTodo ( $db , $id ){ $sql = 'DELETE FROM todo WHERE id = ?' ; $stmt = $db -> prepare ( $sql ); if (! $stmt = $db -> prepare ( $sql )) { return $db -> error ; } $stmt -> bind_param ( 'i' , $id ); $stmt -> execute (); $stmt -> close (); } Sobald ich jetzt einen Eintrag lösche, funktioniert es. Will ich einen zweiten Eintrag löschen, kommt diese Fehlermeldung: In Zeile 356 ist diese Funktion: PHP: function gruppenname ( $db , $gruppe ){ if(empty( $gruppe )) return "-" ; $sql = 'SELECT name FROM gruppe WHERE hash = ?' ; $stmt = $db -> prepare ( $sql ); if (! $stmt ) { return 0 ; } $stmt -> bind_param ( 's' , $gruppe ); if (! $stmt -> execute ()) { // Zeile 356 return 0 ; } $stmt -> bind_result ( $name ); if (! $stmt -> fetch ()) { return 0 ; } $stmt -> fetch (); $stmt -> close (); return $name ; } Das liegt daran, dass $_SESSION["gruppe"] diesen Inhalt hat: Anstelle von beispielsweise An was kann das liegen? Es wird im ganzen Programm keine andere Session als gruppe erstellt. Und die wird nur in dem obigen Teil definiert, sonst nie wieder. Was macht mein Server da?^^ Lokal läuft alles einwandfrei... Danke schonmal! Gruß gl + Multi-Zitat Zitieren
#2 4. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert mysql_stmt_fetch erzeugt ein MySQLi_Result objekt. PHP: return $name -> fetch_object ()-> name ; oder PHP: $name = $name -> fetch_assoc ();return $name [ 'name' ]; was dir lieber is. -> kann aber auch sein, dass ich grade sch**ss erzähle. ich arbeite generell lieber mit PDO + Multi-Zitat Zitieren
#3 4. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert Ne, das geht nicht. Der return-Wert passt ja. Irgendwas passiert mit der $_SESSION. Die wird nur mit dem GET-Parameter definiert und sonst nirgends. Da kann kein mysqli_result drin stehen. Irgendwas "zerstört" mir die $_SESSION["gruppe"]. Hat noch wer irgendeine Idee an was das liegen könnte? + Multi-Zitat Zitieren
#4 5. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert dann such mal in deinen quelltexten nach $_SESSION, weil du dem anschein nach irgendwo im code den wert überschreibst. zudem musst du aufpassen, weil mysqli mit unmengen an referenzen arbeitet und gesetzte werte sich so auch mal ändern können wenn du die variablen weiterverwendest. + Multi-Zitat Zitieren
#5 6. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert Tu ich leider nicht. Beim ausloggen wird die $_SESSION["gruppe"] geleert mit unset(..). Und beim Registrieren erstell ich drei neue $_SESSION name, vorname, email die aber auch mit unset() geleert werden, sobald die registrierung erfolgreich war. Was genau meinst du damit? Wie kann ich das denn nachvollziehen / prüfen? Danke bis hierhin schonmal! =) Edit: Oh Mann! Hab den Fehler gefunden -.- Hab $gruppe mit einem mysqli_result gefüllt... Hab da nicht mehr daran gedacht, weil ich die $_SESSION["gruppe"] erst später erstellt habe. So, jetzt gehts auf jeden Fall^^ + Multi-Zitat Zitieren
#6 6. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert PHP: mysql_real_escape_string - Manual Weiß nicht genau, ob das die stmt Klasse für dich übernimmt, aber du solltest trotzdem daran denken! Falls die Gruppe nur eine Zahl ist, reicht auch intval + Multi-Zitat Zitieren
#7 7. Januar 2012 AW: $_SESSION bekommt mysteriösen Wert Danke. Das escapen macht die stmt-klasse. Gruß gl + Multi-Zitat Zitieren