Jusky Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 Hallo zusammen, ich bin gerade dabei, eine Session samt Variablen in einen Loginvorgang einzubauen. Ein Teil des Quellcodes sieht folgendermaßen aus: session_start(); //Setzen der Sessionvariablen $_SESSION["userid"] = $userid; $_SESSION["Vorname"] = $Vorname; $_SESSION["Nachname"] = $Nachname; Aber irgendwie läuft das ganze nicht... Bekomme immer folgende Fehlermeldungen: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\wamp\htdocs\benutzerverwaltung\index.php:2) in c:\wamp\htdocs\benutzerverwaltung\login\check.php on line 81 Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 Zur Entwicklungsumgebung: - Apache 1.3 - WinMySQLAdmin 1.4 - PHP 3 Liegt es vielleicht an meiner PHP-Version? - Aber das muss doch auch so gehen, oder? : Bin für jede Hilfe dankbar! Gruß, Jusky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 Hallo! Hast du irgendwelche ausgaben oder sonstiges vor session_start()? Gruß Azrael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Nun ja, bevor ich die Session initialisiere, mache ich erst einmal eine DB-Abfrage, ob der User vorhanden ist, etc. Ist das der Fall, ziehe ich mir die Daten aus den Tabellen und schreibe sie in die Variablen, die ich der Session anschließend übergebe. - Alles in ein und demselben Skript. Ist das denn so verkehrt? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 nein das nicht aber jegliche ausgaben auch sowas wie: <html> .... <?php session_start(); ?> </html> darf nicht vorkommen! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Solche Ausgaben habe ich aber nicht... Bevor ich session_start() aufrufe, überprüfe ich lediglich, ob der User existiert und wenn ja, dann ziehe ich die Daten aus den Tabellen... Mehr ist da nicht... Hm, was kann denn sonst noch ein Fehler sein??? Nachtrag: Habe mich etwas bei der Entw.umgebung vertan: Das ganze läuft unter PHP 4.3.1. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 hmm... wenn du PHP Vs. 3 hast solltest du vielleicht anstatt $_SESSION $HTTP_SESSION_VARS verwenden... oder du machst ein Update auf PHP4 oder PHP5 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 poste mal alles was vor session_start() kommt. dann kann man dir auch helfen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Also, mein Skript (check.php) sieht erst einmal folgendermaßen aus: <?php //Übergabe der POST-Variablen $userid = $_POST["userid"]; $Pwd = $_POST["login_pwd"]; //Datenbankverbindung wird aufgebaut ... //Prüfung, ob User existiert ... if ($anzahl == 0) { include "login_fehler.php"; } else { while ($row = mysql_fetch_array($result)) { $ID = $row["ID"]; } //Passwort wird verschlüsselt $Passwort = md5($Pwd); $check_user = mysql_query("Select * from benutzer_details where User_ID = \"" . $userid . "\" and Passwort = \"" . $Passwort . "\";"); $number = mysql_num_rows($check_user); mysql_free_result($check_user); if ($anzahl == 0) { include "login_fehler.php"; } else { //Die Daten des Benutzers werden aus der MySQL-DB ausgelesen $daten = mysql_query("Select * from benutzer_tbl where User_ID = \"" . $userid . "\";"); while ($row = mysql_fetch_array($daten)) { $Vorname = $row["Vorname"]; $Nachname = $row["Nachname"]; } mysql_free_result($daten); //Session wird initialisiert session_start(); //Setzen der Sessionvariablen $_SESSION['userid'] = $userid; $_SESSION['Vorname'] = $Vorname; $_SESSION['Nachname'] = $Nachname; } } mysql_free_result($result); mysql_close(); ?> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 ich schwachsinn geschrieben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Ja, aber wenn ich die includes auskommentiere, funktioniert es immer noch nicht... Edit: Ok... das lag dann wohl doch nicht daran... Menno, ist das denn so schwer oder sehe ich den Wald vor Bäumen nicht... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 hast du meinen letzten vorschlag versucht? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 Hi Jusky hast du irgendwelche Leerzeichen vor dem php initialize tag? Ansonsten versuch mal die session als aller erstes zu starten. Ich glaub mal irgendwo gelesen zu haben das es das erste is was du machen mußt. Und wo das session_start im endeffeckt in deinem SourceCode steht beeinflußt dein Programm ja nicht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 <?php //Übergabe der POST-Variablen $userid = $_POST["userid"]; $Pwd = $_POST["login_pwd"]; //Datenbankverbindung wird aufgebaut ... //Prüfung, ob User existiert ... if ($anzahl == 0) { include "login_fehler.php"; } else { while ($row = mysql_fetch_array($result)) { $ID = $row["ID"]; } //Passwort wird verschlüsselt $Passwort = md5($Pwd); $check_user = mysql_query("Select * from benutzer_details where User_ID = \"" . $userid . "\" and Passwort = \"" . $Passwort . "\";"); $number = mysql_num_rows($check_user); mysql_free_result($check_user); if ($anzahl == 0) // <- hier ist auch ein denkfehler!! oben prüftst du ab ob anzahl == 0 ist und im elsezweig //dieser abfrage fragst du es erneut ab obwohl die anzahl hier ja durch die abfrage am anfang nie diesen wert annehmen kann { include "login_fehler.php"; } else { //Die Daten des Benutzers werden aus der MySQL-DB ausgelesen $daten = mysql_query("Select * from benutzer_tbl where User_ID = \"" . $userid . "\";"); while ($row = mysql_fetch_array($daten)) { $Vorname = $row["Vorname"]; $Nachname = $row["Nachname"]; } mysql_free_result($daten); //Session wird initialisiert session_start(); //Setzen der Sessionvariablen $_SESSION['userid'] = $userid; $_SESSION['Vorname'] = $Vorname; $_SESSION['Nachname'] = $Nachname; } } mysql_free_result($result); mysql_close(); ?> [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 @A.Z.R.A.E.L. Ich hatte mich oben noch einmal korrigiert: Habe die Version 4.3.1... @MightyCats Leerzeichen habe ich keine und die Idee, das session_start an den Anfang zu setzen, hat leider auch nicht funktioniert... *langsam verzweifel* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 ich denk eher das issn schreibfehler, anzahl soll an dieser stelle wohl number sein Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 Ich kann dir eins anbieten, das wenn mir mal deine php datei schickst ich sie hier mal durch den apache jag Meistens sinds immer so FU fehler die sich irgendwo verstecken und einem den letzten nerv rauben :/ EDIT: Ok, Jaraz hat recht, steht sogar noch breit oben dran output started @ index.php on line 2 Ich sag ja, immer diese versteckten Fehler ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 AHHH du rufst die Datei ebenfalls über ein include auf und in der index.php ist vorher eine Ausgabe. (Was auch genau so in der Fehlermeldung steht.) Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Ja, ich habe eine index.php, von der aus ich das Menü aufrufe... Im Menü selbst ist dann die login.php includet, die sich dann beim Einloggen auf die check.php bezieht. Aber wie sollte ich das denn sonst lösen? Irgendwie muss ich doch die Dateien einbinden... Sorry, aber ich bin erst seit 3 Wochen an PHP dran... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
A.Z.R.A.E.L. Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 in die index.php kannst du ja das session_start() ganz am anfang einfügen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Habe jetzt das start_session an den Anfang der index.php gesetzt. Ich bekomme aber immer noch die Fehlermeldung: Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Ok, werde die Sessionbehandlung erst einmal nur in das einzelne Modul einbauen... Über die Zusammenfügung aller Elemente und die daraus resultierenden Fehler kann man sich später noch den Kopf zerbrechen... Danke erst einmal... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Hm, also irgendwie hat PHP was gegen mich... Habe jetzt das login-Skript (mit der Eingabemaske) einzeln aufgerufen und per <form action="check.php" method="POST"> die Variablen an das nächste Skript übergeben. Dort wird am Anfang die Session gestartet. Tja, aber der Fehler ist auch hier der gleiche wie oben... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jusky Geschrieben 26. November 2003 Autor Teilen Geschrieben 26. November 2003 Ok, habe mich jetzt mal umgehört und die Meldung ist wohl nicht so wichtig... Na ja, lass ich sie eben mal außer Acht... Danke nochmals für eure Mühe! Ist schon schwer, sich in die neue Thematik reinzudenken... LG, Jusky Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 Original geschrieben von Jusky Ok, habe mich jetzt mal umgehört und die Meldung ist wohl nicht so wichtig... Na ja, lass ich sie eben mal außer Acht... LG, Jusky das ist aber nicht dein ernst oder`? wenn der sagt das fehler bei den sessions sind, dann wirst du auf der nächsten seite nicht mit deinen werten und variablen aus der session arbeiten können, da diese ja dann nicht gespeichert wurden!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MightyCats Geschrieben 26. November 2003 Teilen Geschrieben 26. November 2003 editier mal die php.ini in c:/apache/php (bei nem windows system ^^ bei Linux weiß ich nimmer genau wo er die hinschreibt) ; You should do your best to write your scripts so that they do not require ; register_globals to be on; Using form variables as globals can easily lead ; to possible security problems, if the code is not very well thought of. register_globals = On statt ; You should do your best to write your scripts so that they do not require ; register_globals to be on; Using form variables as globals can easily lead ; to possible security problems, if the code is not very well thought of. register_globals = Off Ansonsten weiß ich auch nicht mehr weiter, aber laut fehler text sollte dann das behoben sein. Alternativ Lösung is das ganze über Cookies zu lösen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.