PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Session Fehler



Overlord04
11-10-2005, 21:10
Hi,

bekomme immer folgende Fehlermeldung bei meinem Anmeldeskript, das ich geschrieben habe:

Warning: session_start() [function.session-start]: open(\xampp\tmp\sess_fa4f636eba1dc7226207e7c321309 a8b, O_RDWR) failed: No such file or directory (2) in meinPfad\meinVerzeichnis\login.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at meinPfad\meinVerzeichnis\login.php:2) in meinPfad\meinVerzeichnis\login.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at meinPfad\meinVerzeichnis\login.php:2) in meinPfad\meinVerzeichnis\login.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at meinPfad\meinVerzeichnis\login.php:2) in meinPfad\meinVerzeichnis\login.php on line 17

Die Sachen laufen auf dem Apache und befinden sich alle auf dem host.
Habe schon gegoogelt und Sachen gefunden wie:
session_start gehört an den Anfang etc., php.ini Pfad für die sessions ändern...

Habe den Pfad dort auch geändert. Also bei xampp/php/ trotzdem greift er ja auf den tmp-ordner direkt unter xampp zu (1.Warnung). Wieso ?
Und was muss ich tun ?

Habe jetzt hier das neueste Xampp-Paket drauf. Vorher auf dem alten hatte ich diese Probleme nicht (wenn das hilft).

Hoffe, jemand kann mir helfen.

Gruss und danke im Voraus

Gaert
12-10-2005, 07:39
Hallo,

Existiert das Verzeichnis \xampp\tmp\ ?
Kann der User unter dem der Apache läuft drauf schreiben?
Bist du sicher, dass du die richtige php.ini editiert hast? -> phpinfo() ausführen um herauszufinden welche verwendet wird!

Gruß,

Gaert

Overlord04
12-10-2005, 09:42
Das Verzeichnis existiert. keine Ahnung, wo ich sehe, ob ein User drauf schreiben kann.
Habe gelesen, dass der Ordner lokal sein sollte, also wohl in dem Ordner, wo alle meine php-Seiten sind, oder ?
Habe ja auch schon dann einen Ordner dort angelegt und den Pfad in der php.ini geändert. Ist ihm aber wohl egal, was dort drin steht, wenn er wieder auf xampp/tmp/ guckt.
Oder habe ich die falsche Datei geändert, bzw. muss das noch woanders tun ???

Gaert
12-10-2005, 10:57
Hallo,

der Ordner liegt NIE dort wo deine php Seiten liegen, sondern immer ausserhalb des Document Root.
In diesem Ordner werden Session Dateien angelegt, in denen deine Sessiondaten gespeichert werden - sowas wie serverseitige Cookies.

Welche php.ini von PHP verwendet wird findest du wie gesagt am leichtesten über ein Skript mit <?php phpinfo(); ?>. Da steht dann am Anfang der "Configuration File (php.ini) Path".

\xampp\tmp\ bedeutet übrigens, wenn dein Apache auf Laufwerk C läuft C:\xampp\tmp ... sicher dass dieser Ordner existiert???

Gruß,
Gaert

Overlord04
12-10-2005, 11:03
Ok, danke für den Tipp mit dem phpinfo().
Hatte die falsche php.ini geändert.
Trotzdem: Den Ordner tmp gibt es unter xampp. Nämlich genau c:\xampp\tmp und wie ich sehe, schreibt er auch reichlich Session-Dateien dort rein.
Umso unverständlicher ist mir es dann, dass er meckert, dass dieser Ordner nicht existiert.

Mhmm...

Overlord04
12-10-2005, 11:15
Ok. Habe jetzt einen eigenen Session-Ordner erstellt und den Pfad in der richtigen php.ini geändert.
Habe jetzt die ersten Fehlermeldungen weg.
Bleibt nur noch:

Warning: Cannot modify header information - headers already sent by (output started at meinPfad\login.php:15) in meinPfad\login.php on line 18

Codezeile ist:
header("LOCATION: main.htm");


>>>>

OK, HABE ES.

->
Obige Warnung tritt immer dann auf, wenn vor dem Aufruf der header-Funktion eine Ausgabe “gesendet” wurde. Bei der Ausgabe kann es sich um Leerzeichen, Zeilenumbrüche, Zeichenketten etc. handeln....

Hatte ne echo-Ausgabe vorher, jetzt geht alles