php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.07.2008, 12:04  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard Mal wieder Register Globals

Es wird ja nicht zu Unrecht vor den Problematiken gewarnt, die mit der php.ini-Einstellung register globals = on auftreten.

Ich bin jetzt über etwas gestolpert, dass ich in solchen Warnhinweisen entweder nicht gesehen, oder übersehen habe, und das mich eine Stunde intensiver Debugging-Arbeit gekostet hat.

Ein Script, das bei Register Globals = off lief, machte auf einer anderen Maschine mit der Einstellung = on Unsinn. Ich dachte, ich mach das hier mal öffentlich, damit andere nicht auch reinfallen.

Ich habe eine Variable $id. Diese wird dann gesetzt, wenn ein Kunde sich anmeldet. Diese Variable wollte ich mit

PHP-Code:
session_start();
$_SESSION['id '] = $id
verwahren, um sie dann im Memberbereich immer wieder benutzen zu können. Das klappte auch alles so, wie geplant.

Auf der anderen Maschine veränderte sich $_SESSION['id '] aber gelegentlich. Durch Ausgabe von print_r($_SESSION) habe ich das Problem auf eine Zeile zurückführen können, in der $id verändert wird. Dieses Neusetzen von $id verändert auch $_SESSION['id']. Ich habe mir dadurch geholfen, dass ich die SESSION-Variable anders benannt habe.

Ich habe mir dann, um auch ganz sicherzugehen, dass ich hier keinem Phantom nachjage, dies Script hier gemacht:

PHP-Code:
<?php

session_start
();
$_SESSION['test'] = 123;

$test 456;

echo 
'SESSION = ' $_SESSION['test'];

?>
Beim ersten Aufruf wird SESSION = 123 ausgegeben, nach jedem weiteren Aufruf (Aktualisieren mit F5) wird SESSION = 456 ausgegeben.


So weit so schlecht. Liegt das nun wirklich an register globals = on oder habe ich hier noch mit anderen schlechten Einstellungen zu tun?
Wolla ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.07.2008, 12:07  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

*edit*

Also ja dass liegt an register_globals. Denn da kann nicht unterschieden werden ob $test aus POST/GET/COOKIE/SESSION stammt. Daher gilt es auch für alle. Und genau aus diesem Grund ist register_globals = on schlecht. Außerdem könnte ein User einfach index.php?id=88 aufrufen und dann ist seine UserID 88, so kann er sich bei jedem beliebigen User einloggen und dessen Daten sehen.

Auch wenn die Variable anders heißt, diese kann man ebenfalls ändern. Hier solltest du beim Kunden drauf bestehen dass er register_globals = off stellt. Alles andere wäre einfach unsinnig.

Geändert von Flor1an (21.07.2008 um 12:11 Uhr).
Flor1an ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] register globals krackmoe PHP Tipps 2008 2 17.07.2008 19:52
Variable übergeben mit Register Globals off trunky PHP Tipps 2008 32 08.07.2008 20:30
Register Globals | $_GET $_Post darkbird PHP Tipps 2008 4 29.02.2008 13:29
Problem mit register globals on/off fender PHP Tipps 2007 6 30.01.2007 17:08
Links im ?variable=bla format und register globals off PHP Tipps 2006 2 20.02.2006 14:00
register globals = off - Probleme seit Umstellung PHP Tipps 2005-2 6 25.08.2005 13:44
[Erledigt] Register Globals Array auspacken ? PHP Tipps 2005 11 31.05.2005 13:55
Register globals PHP Tipps 2005 2 09.05.2005 17:25
objekte in sessions mit register globals of PHP Tipps 2005 1 12.03.2005 17:06
[Erledigt] register globals off bei variablen Variablen... PHP Tipps 2005 4 25.01.2005 17:50
Register Globals ausschalten? PHP Tipps 2004-2 4 30.12.2004 17:16
Register globals = on PHP Tipps 2004-2 21 26.11.2004 14:03
register globals on /off PHP Tipps 2004 1 17.08.2004 01:39
REGISTER GLOBALS FRAGE PHP Tipps 2004 8 11.08.2004 20:32
mail bei neuerer php-version >>> REGISTER GLOBALS PHP Tipps 2004 13 03.06.2004 15:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
test register_globals, php register globals, register global on php.ini, test register globals, php register aktualisieren, register globals session, register global einstellungen on/off, register globals ausschalten, sessions php register globals off, register globals on code php, php use session with register globals off, php session id wiederverwenden, register globals php.ini, xampp global on

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum