Seite 1 von 1

Template-Variablen mitnehmen/übernehmen

Verfasst: 16.08.2006 11:45
von ohnatsch
Ich habe ein kleines Problem mit den Sessions.
Ich habe ein Rekrutierungsscript geschrieben und habe ein kleines Problem.

Nach einem Formular via HTML frage ich simple Sachen ab wie Name, Alter etc. und mache dann eine Überprüfung in dem darauffolgenden PHP Dokument. Das funktioniert auch alles fehlerfrei nun will ich die Fehler ausgeben lassen im zurückliegenden Template nur ich kriege die $_SESSION Variablen nicht übergeben und habe kA wieso ... mein Code sieht wie folgt aus :

Code: Alles auswählen

if ($errornum > 0) {
$_SESSION['r_error'] = $errorvalue;
header('Location: recruit.php'); exit;}

Code: Alles auswählen

$template->assign_vars(array(
...
'R_ERROR' => $_SESSION['r_error'],
...
'R_LOGIN_ACTION' => 'rekru-bot.php')
);

Verfasst: 17.08.2006 21:12
von ohnatsch
*update*

Verfasst: 18.08.2006 22:28
von ohnatsch
keiner ne Antwort o_O ?

Verfasst: 19.08.2006 11:49
von punkface
ohnatsch hat geschrieben:

Code: Alles auswählen

header('Location: recruit.php'); exit;
Genau da liegt das Problem. Am besten mal durchlesen:
http://de3.php.net/header
http://de3.php.net/exit

Verfasst: 20.08.2006 01:39
von ohnatsch
punkface hat geschrieben:
ohnatsch hat geschrieben:

Code: Alles auswählen

header('Location: recruit.php'); exit;
Genau da liegt das Problem. Am besten mal durchlesen:
http://de3.php.net/header
http://de3.php.net/exit
Anmerkung: Die Session-ID wird nicht mit dem Location-Header übermittelt, außer Sie haben session.use_trans_sid eingeschaltet. Sie muss daher manuell durch Verwendung der SID-Konstante hinzugefügt werden.
OK das hier wird wohl der Knackpunkt sein.
Nur ist es clever die SID-Konstante einfach so mitzugeben ?
Gibt es noch andere Möglichkeiten oder blicke ich gerade nicht über den Tellerrand :X

Verfasst: 20.08.2006 14:57
von easygo
ohnatsch hat geschrieben:Gibt es noch andere Möglichkeiten oder blicke ich gerade nicht über den Tellerrand :X
Wie wärs damit -->

Code: Alles auswählen

if ($errornum > 0) { 
	$_SESSION['r_error'] = $errorvalue;
	$header_location = ( @preg_match("/Microsoft|WebSTAR|Xitami/", getenv("SERVER_SOFTWARE")) ) ? "Refresh: 0; URL=" : "Location: ";
	header("HTTP/1.1 301 Moved Permanently");
	header($header_location . append_sid("recruit.$phpEx", true));
	exit;
}