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/