anpera.net https://anpera.dyndns.org/phpbb3/ |
|
session_register https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4022 |
Seite 1 von 1 |
Autor: | Harthas [ Mi 26 Sep, 2007 09:49 ] |
Betreff des Beitrags: | session_register |
Guten Morgen... Mir ist heute etwas aufgefallen: In diversen PHP-Dokumentationen heisst es, dass man session_register eigentlich nicht mehr verwenden sollte, und dass es sowieso nur funktioniert, solange register_globals auf on steht. Jedoch wird session_register in der common.php standartgemäss ja noch verwendet. Kann man dieses nun entfernen, oder sollte man es durch sowas wie [php]session_start(); $_SESSION['session'] = ""; [/php] ersetzen? Mit freundlichen Grüssen, Harthas |
Autor: | Nightborn [ Mi 26 Sep, 2007 12:02 ] |
Betreff des Beitrags: | |
hab ich auch gelesen. allerdings sind mein register_globals auf OFF und es geht dennoch =) aber man sollte es überarbeiten, hat mich eliwood vor ein paar monaten drauf aufmerksam gemacht. |
Autor: | Harthas [ Mi 26 Sep, 2007 12:03 ] |
Betreff des Beitrags: | |
Wie sollte man es denn genau überarbeiten? So wie von mir vorgeschlagen mit session_start() und dann über die Superglobale? |
Autor: | Auric [ Mi 26 Sep, 2007 14:11 ] |
Betreff des Beitrags: | |
session_register trägt meines wissens doch nur eine Variable in die Session-Superglobal $_SESSION ein. Mittlerweile kann man das auch direkt darüber machen. Es sollte also auch mit $_SESSION['blub']='blah' gehen... session_start(); ist doch sowieso pflicht! |
Autor: | Harthas [ Mi 26 Sep, 2007 14:14 ] |
Betreff des Beitrags: | |
Wenn man session_register verwendet, muss man session_start nicht unbedingt ausführen, da session_register dies automatisch schon tut. In LoGD erscheint session_start meines Wissens ja nicht. Ist mir zumindest noch nie aufgefallen. |
Autor: | Auric [ Mi 26 Sep, 2007 14:20 ] |
Betreff des Beitrags: | |
hm.. hab noch mal in mein kleines schlaues Büchlein geschaut. Demzufolge wird auf jeden fall empfohlen, session_register nicht mit $_SESSION oder $HTTP_SESSION_VARS zu verwenden. Von einer initialisierung der Sessions steht da nix... allerdings habe ich in LotgD auch noch kein konkretes session_start gesehen - aber auch noch nicht danach gesucht ^^ Edit: Folgendes ist wohl das entscheidende: http://de3.php.net/manual/de/function.session-register.php hat geschrieben: Wenn session_start() nicht vor dieser Funktion aufgerufen wurde, erfolgt ein impliziter Aufruf von session_start() ohne Parameter. $_SESSION ahmt dieses Verhalten nicht nach und benötigt den Aufruf von session_start() bevor es verwendet wird.
Also müsste dein Vorschlag demzuvolge korrekt sein! |
Autor: | Auric [ Mi 26 Sep, 2007 14:56 ] |
Betreff des Beitrags: | |
So, ich habe nun noch mal durchgetestet: session_register("session"); einfach durch session_start(); ersetzen. Viel Spass damit ;-) |
Autor: | Harthas [ Mi 26 Sep, 2007 16:15 ] |
Betreff des Beitrags: | |
Sehr schön :-) Werd ich später gleich noch machen. |
Autor: | Eliwood [ Mi 26 Sep, 2007 16:55 ] |
Betreff des Beitrags: | |
Ja, es ist tatsächlich so - in der aktuellen Fassung *kann* es zu merkwürdigen Fehlern kommen (Bzw. Fehlermeldungen). Gelöst hab ich das ganze so: [php]// Session einstellen & starten session_name('Engelsreich-LotGD'); session_set_cookie_params(0, dirname($_SERVER['PHP_SELF']).'/'); session_start(); // Falls Session-Objekt noch nicht angelegt wurde => Neu anlegen if(!is_object($_SESSION['engelsreich_session'])) { $_SESSION['engelsreich_session'] = new Session(); } // $session eine Referenz auf $_SESSION['engelsreich_session'] geben. $session = $_SESSION['engelsreich_session'];[/php] |
Autor: | Auric [ Mi 26 Sep, 2007 22:38 ] |
Betreff des Beitrags: | |
öhm.. bevor jetzt irgendwer anfängt Eliwoods Version heir rauszukopieren: Tut das nicht! Zumindest nicht, wenn ihr nicht wisst, was die einzelnen Zeilen bedeuten. auf wohl nur einem gibts es "Engelsreich"-Variablen, kaum jemand wird wohl ein Session-Objekt verwenden und nicht einmal PHP5 ist überall vorhanden. Also... vorsicht damit ;-) Auric PS: das heist nicht, das der Code an sich Falsch ist ^^ |
Autor: | Harthas [ Mi 26 Sep, 2007 22:53 ] |
Betreff des Beitrags: | |
*g* Naja, abgesehen von der Klassenzuweisen könnte man eigentlich alles so verwenden. Würde zwar nicht viel Sinn ergeben, aber nunja.... ^^' |
Autor: | MySql [ Fr 28 Sep, 2007 01:21 ] |
Betreff des Beitrags: | |
Hallo, Ist es eventuell zwingend notwendig [php]session_start(); $_SESSION['session'] = '';[/php] ab PHP 5.x.x zu nutzen? Im sinne von: Das man sich eventuell nicht mehr einloggen kann etc. pp. oder Probleme beim Login / Charakter erstellen auftreten? Mfg, MySQL |
Autor: | Harthas [ Fr 28 Sep, 2007 01:27 ] |
Betreff des Beitrags: | |
http://www.phpcenter.de/de-html-manual/function.session-register.html http://www.php.net/session_register Kannst es dir nachlesen |
Autor: | MySql [ Fr 28 Sep, 2007 01:29 ] |
Betreff des Beitrags: | |
Okay, danke Hartas. Schöne Nacht dir noch. |
Autor: | Eliwood [ Fr 28 Sep, 2007 06:06 ] |
Betreff des Beitrags: | |
Eliwood hat geschrieben: Ja, es ist tatsächlich so - in der aktuellen Fassung *kann* es zu merkwürdigen Fehlern kommen (Bzw. Fehlermeldungen).
Gelöst hab ich das ganze so: [...] [php]// Session einstellen & starten session_name('LotGD'); session_set_cookie_params(0, dirname($_SERVER['PHP_SELF']).'/'); session_start(); // Falls Session-Objekt noch nicht angelegt wurde => Neu anlegen if(!is_object($_SESSION['session'])) { $_SESSION['session'] = array(); } // $session eine Referenz auf $_SESSION['engelsreich_session'] geben. $session = $_SESSION['session'];[/php] So müsste es - prinzipiell - ohne Probleme funktionieren in der ext GER 3 |
Autor: | MySql [ Fr 28 Sep, 2007 13:11 ] |
Betreff des Beitrags: | |
Okay danke (kucken muss, wo man das einfügt*fg*) Mitte nächsten Monats sollte der Hoster (Wie er sagte) PHP5 aufspielen. Mal schauen obs diesmal stimmt ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |