Session- Variable in anderer Datei ändern
Philipp Grashoff
- php
Hi!
Ich schaffe einfach nicht folgendes:
ich habe die index.php, wo entweder eine Umfrage oder deren Ergebnis angezeigt werden soll, je nachdem, ob schon abgestimmt wurde. Dazu will ich eine Session benutzen. Die action vom Formularfeld zeigt auf die umfrage.php; In dieser Datei wird man per header an die Index.php weitergeleitet - und eine beliebige Session- Variable verändert werden. Nun habe ich aber das Problem, dass alle Änderungen, die ich in der umfrage.php bezueglich ID, Name oder sonst irgendwas mache, ignoriert werden -> die index.php wird nach wie vor ohne diese Veränderungen angezeigt. Da ich keine Anfänger-Gerechte Session-Beschreibung gefunden habe, weiss ich so langsam nicht weiter...
Deshalb:
kann mir vielleicht jemand sagen, wie sowas geht?
MFG
Philipp
Hallo,
fällt jetzt recht schwer ohne die entsprechenden Codeabschnitte was zu Deinem Problem zu sagen (evtl. Posten). Aber aller Anfang liegt denke ich mal in der Session-Identifizierung. Hast Du überall schön brav mitgegeben, welche Session Du eigentlich verwenden willst?
Grüße aus Würzburg
Julian
Hi!
So, hab mal meinen Code:
Das steht in der Index.php:
<?
if (!session_is_registered('count')) {
session_register('count');
$count = 0;
}
?>
Diese Datei wird immer geladen.... also ne session wird auf jeden fall gestartet...
falls an der Umfrage teilgenommen wird, wird per action=... die datei auswerten.php aufgerufen.. in ihr steht folgendes:
<?
$a=$HTTP_REFERER;
header('location:'.$a);
if (session_is_registered('count')) {
$count = 1;
}
else
{
session_register('count');
$count = 1;
}
die anderen Angaben in der Datei werden ausgefuehrt (in textdatei schreiben usw), aber die Variable Count wird nicht erhoeht, obwohl dass ja eingetlich der Fall sein muesste, sie bleibt 0....
MFG
Philipp
Moin,
Diese Datei wird immer geladen.... also ne session wird auf jeden fall gestartet...
Von Session starten kann ich in deinem Code nichts sehen. Du möchtest auf jeden Fall session_start() benutzen!
$a=$HTTP_REFERER;
header('location:'.$a);
Das ist ziemlich unschön, weil du dich auf den Referer verlässt.
--
Henryk Plötz
Grüße aus Berlin
Moin,
Hiho
Von Session starten kann ich in deinem Code nichts sehen. Du möchtest auf jeden Fall session_start() benutzen!
Nun, ich habe nun schon oft gelesen dass eine Session auf jeden Fall gestartet wird, solald session_register kommt...
»»Das ist ziemlich unschön, weil du dich auf den Referer verlässt.
Gibts ne bessere Loesung ?
* ausversehen auf Absenden gekommen*
Gibts ne bessere Loesung ?
Ich will, dass die Leute dorthin zurueckkommen wo sie waren, nachdem sie an der Umfrage teilgenommen haben..
MFG
Philipp
Eine Lösung wäre per Forular die URL mitzugeben <input type=hidden value="http://<? echo $PHP_SELF; ?>" name=a>. Somit kommt die URL auf jeden Fall mit.
Grüße aus Würzburg
Julian
Hi!
Hab das ganze nochmals durchgeschaut.. jetzt hab ich nur session_start() in der index.php und dann halt session_start(), session_register("count") und $count=1 in der auswerten.php und die include-bedingung iss halt ob $count 1 ist oder nich...
Klappt gut, muss jetzt nur noch das mit dem Hidden-Input machen...
Vielen Dank euch allen!
Philipp
Hi!
Ein Problem beim Hidden-Input:
$PHP_SELF gibt mir zwar die php-datei zurueck; ich habe aber noch eine variable (index.php?con=...), welche er nicht mit abspeichert. diese Brauche ich aber unbedingt, sonst koennte ich gleich auf die index.php verweisen..
MFG
Philipp
Moin,
Ein Problem beim Hidden-Input:
$PHP_SELF gibt mir zwar die php-datei zurueck; ich habe aber noch eine variable (index.php?con=...), welche er nicht mit abspeichert. diese Brauche ich aber unbedingt, sonst koennte ich gleich auf die index.php verweisen..
$REQUEST_URI gibt dir den vollständigen Pfad und alle Parameter mit denen die aktuelle Datei aufgerufen wurde.
Hint: Diese und ähnliche Sachen erfährst du durch den Aufruf von phpinfo()
--
Henryk Plötz
Grüße aus Berlin
Hi,
$REQUEST_URI gibt dir den vollständigen Pfad und alle Parameter mit denen die aktuelle Datei aufgerufen wurde.
$REQUEST_URI gibt bei mir gar nix zurueck....
MFG
Philipp
Moin,
$REQUEST_URI gibt bei mir gar nix zurueck....
Ja mei, dann schau dir halt die Ausgabe von phpinfo() an!
Dann wirst du feststelllen dass evt. auch $HTTP_SERVER_VARS["REQUEST_URI"], $SCRIPT_NAME.($QUERY_STRING!=""?"?".$QUERY_STRING:"") oder $HTT_SERVER_VARS["SCRIPT_NAME"].($HTTP_SERVER_VARS["QUERY_STRING"]!=""?"?".$HTTP_SERVER_VARS"QUERY_STRING"]:"") funtionieren.
--
Henryk Plötz
Grüße aus Berlin
Moin,
Nun, ich habe nun schon oft gelesen dass eine Session auf jeden Fall gestartet wird, solald session_register kommt...
Ja, aber schau dir deinen Code mal an:
Du fragst erst ab ob die Variable in der aktuellen Sitzung registriert wird und rufst session_register erst auf wenn das nicht der Fall ist. Dann wird die Variable aber zusätzlich auch gleich auf 0 gesetzt.
Gibts ne bessere Loesung ?
Du hast doch eh Sessions: Pack den zuletzt aufgerufenen URL da rein. Alternative (imho besser): Pack den aktuell aufgerufenen URL (idealerweise mit Querystring) in das Abststimmformular wie Julian sagte.
--
Henryk Plötz
Grüße aus Berlin