BUG in XAMPP fü MacOSX

Einfach Dinge, die nichts mit XAMPP, Apache Friends, Apache, MySQL, PHP und alle dem zu tun haben. Allerlei halt. ;)

BUG in XAMPP fü MacOSX

Postby Sushimeister » 19. February 2009 10:55

Hi,

ich habe einen Bug gefunden, den ich nur auf dem MacOSX xampp reproduzieren kann. Und zwar handelt es sich um $_SESSION Kram.
Ich habe einen linux xampp, wo das nicht auftaucht, aber ich bin mir nicht sicher, WARUM das so ist ;(

Hier der Code, mit Bitte um TEST auf allen verfügbaren Plattformen:
Code: Select all
<?php
session_start();
class test{
   public function get_data(){
      $tmp = array(
               array('isadmin'=>1, 'test'=>0)   
               );
      $_SESSION['user'] = $tmp[0];
   }
}

$tester = new test();
$tester->get_data();
var_dump($_SESSION);
/*
 * Output (correct):
  array(1) {
  ["user"]=>
  &array(2) {
    ["isadmin"]=>
    int(1)
    ["test"]=>
    int(0)
  }
}
 
 */
$user = array('isadmin'=>0, "test"=>1);
var_dump($_SESSION);

/*
 * Output (NOT correct):
 *
array(1) {
  ["user"]=>
  &array(2) {
    ["isadmin"]=>
    int(0)
    ["test"]=>
    int(1)
  }
}
 */
?>


So sieht der FALSCHE (buggy) Output aus:
array(1) {
["user"]=>
&array(2) {
["isadmin"]=>
int(1)
["test"]=>
int(0)
}
}
array(1) {
["user"]=>
&array(2) {
["admin"]=>
int(0)
["test"]=>
int(1)
}
}


So sollte er korrekterweise aussehen:
array(1) {
["user"]=>
array(2) {
["isadmin"]=>
int(1)
["test"]=>
int(0)
}
}
array(1) {
["user"]=>
array(2) {
["isadmin"]=>
int(1)
["test"]=>
int(0)
}
}


Getestet auf derzeitigem letzten MacOSX xampp mit PHP 5.2.6 (buggy), und auf debian mit letztem xampp (5.2.8) wo es korrekt läuft.

EDIT: Bug ist hier einzusehen: http://bugs.php.net/bug.php?id=47448
Last edited by Sushimeister on 19. February 2009 11:19, edited 1 time in total.
Sushimeister
 
Posts: 63
Joined: 30. August 2006 18:05

Re: BUG in XAMPP fü MacOSX

Postby Wiedmann » 19. February 2009 11:03

Da werden halt die Einstellungen für register_globals unterschiedlich sein.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: BUG in XAMPP fü MacOSX

Postby Sushimeister » 19. February 2009 11:24

Hmm, stimmt... sowas... warum ist $_SESSION['key'] denn mit $key "verbunden", wen register_globals ON ist?
Wo ist da der Zusammenhang?
Sushimeister
 
Posts: 63
Joined: 30. August 2006 18:05

Re: BUG in XAMPP fü MacOSX

Postby Wiedmann » 19. February 2009 11:30

warum ist $_SESSION['key'] denn mit $key "verbunden", wen register_globals ON ist?

Weil eben das der /Sinn/ von "register_globals = On" ist, uNd weshalb man es eigentlich schon seit Jahren per default deaktiviert. Ansonsten wird das ja im PHP-Manual schön erklärt... (oder soll ich copy 'n paste machen?)
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: BUG in XAMPP fü MacOSX

Postby Sushimeister » 19. February 2009 11:42

Hmm, war etwas versteckt... also mit register_globals = on werden ALLE superglobalen Arrays ($_SESSION, $GLOBALS, $_POST,...) direkt in Variablen konvertiert, die wiederum beim schreibenden Zugriff auf das superglobale Array zurückgreifen. Wie ätzend!

Ok, soll mit Wumpe sein... vllt xampp für MacOS stdmäßig mit register_globals = off ausliefern...? =)
Sushimeister
 
Posts: 63
Joined: 30. August 2006 18:05


Return to Allerlei

Who is online

Users browsing this forum: No registered users and 2 guests