Session Probleme und weis nicht mehr weiter

hallo Freunde nachdem ihr mir so schnell geholfen habt mal eine Frage.

ich habe nun gelesen das es irgentwann mal ein Update in php(ab 4.1.0) gab. seit her kann man wohl parameter nicht mehr so einfach per url übergeben. Stimmt das?

Also ich meine folgendes Problem.
Seite wird aufgerufen,

index.php?seite=3

und dann lasse ich mir
per echo "seite=$seite"; ausgeben. In meinen anderen Versionen würde da nun stehen
seite = 3 leider steht nun garnix mehr da. als ob der parameter einfach nicht übergeben wird. Sollte das so sein, kann man das ausschalten? weil sonst würden alte Anwendungen gar nicht mehr laufen auf einer neueren PHP version ?
 
Release Note
Seit Version 4.1.0 soll man eigentlich nicht mehr direkt die Variablen so ansprechen wie du es machst.
Also nicht direkt
PHP:
echo $inputfeldname;
echo $sessionvariable;
echo $urlparameter;
sondern eher
PHP:
echo $_POST["inputfeldname"];
echo $_SESSION["sessionvariable"];
echo $_GET["urlparameter"];

Dass du nicht mehr direkt drauf zugreifen kannst liegt daran, dass der Parameter register_globals auf off steht. Wie man es anschaltet.

Das Feature wurde aber nicht umsonst ab 4.2.0 per default auf off gestellt, wie du den beiden bisherigen Links entnehmen kannst. Merke auch: http://de.php.net/register_globals
 
Zuletzt bearbeitet:
mal zu deinem codeschnipsel bzw generell mal zu einer Session. Mach dir am besten erstmal klar was eine Session macht bzw bietet.

PHP:
/*Hier würde er immer in die If-Anweisung reingehen sofern du 
$s nicht einen wert zugewiesen hast weil das hat bisher noch nix mit der Session zu tun. und 
isset hättest du dir sparen können weil empty das schon alles macht. */
if(empty($s) or (!isset($s)))
{
Kuck dir am besten mal
isset und
empty an.
PHP:
/* Session_name überschreibt nur den Name wo vorher angegeben wurde sprich 
PHPSESSID weil das is der default wert den PHP normal reinschreiben würde
sofern du a) nichts an der php.ini geändert hättest (session.name) oder b) ihn mit 
Session_name() überschrieben hättest. überschreiben muss immer vor session_start() passieren */

session_name(s);

/* Session_start() ist die eigentlich initialisierung von der Session. Im prinzip geht 
sie so vor das:
1. wird überprüft wird ob eine Session der Datei mit übergeben wurde dafür 
kontrolliert sie alle relevanten Superglobals sprich $_POST, $_GET, $_COOKIES. 
Wenn keine SID übergeben wurde dann macht sie eine neue. Hierbei geht sie auch hin
und schreibt dirket ein Cookie zumindest versucht sie es. Ob das funktioniert oder nicht
ist halt abhängig davon ob der User Cookies Aktiv hat.

2. Falls eine vorhanden ist lädt sie die Variablen die in dieser Session gespeichert
 wurden. Dazu wird dann das assoziative Array $_SESSION mit den werten die auf
 dem Server liegen genommen. Erst ab hier kannst du dann diese werte benutzen
 vorher steht da noch nix drin deswegen is die if überprüfung da oben auch totoaler
 schwachsin
*/ 
session_start();

/* Hier müstest du im Prinzip auch nix sehen sofern du $s keine wert zugewiesen
 hast  */
echo " if Sie session Variable S $s;<br>";

$_SESSION['stempvar'] = "0";
$_SESSION['stempvarkey'] = "0";
// globale userid
$_SESSION['userid_sr'];
// globale fehlermeldung_text
$_SESSION['fehlermeldung_sr'] ;
// globale Fehlernummer
$_SESSION['returncode_sr'] ;
// globales recht des Users
$_SESSION['rechte_sr'] ;
//------------------------------------------------------------------
// Zuweisung von Grundwerten
//------------------------------------------------------------------
$_SESSION['userid_sr'] = "0";
$_SESSION['rechte_sr'] = "0";
$returncode_sr = 0;
// $stempvar = "0";
}
else
{
session_name(s);
session_start();
echo " else Sie session Variable S $s;<br>";
}



Ich hoffe ich konnte dir bissel helfen falls du noch fragen hast sag bescheid
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück