PHP Datei beschreiben

habe folgenden einfachen script:

[...] $ip = getenv('REMOTE_ADDR'); $time = time(); $line = $testname . ";" . $time . ";" . $ip . "<|>"; $handle = fopen ('log.txt', 'a+'); fwrite ($handle, $line); fclose ($handle); [...]

Es will einfach nicht funktionieren, Fehlermeldung kommt aber auch net. Die log.txt datei liegt im selben verzeichnis. das ganze läuft nicht auf bplaced, sondern auf nem homeserver auf windows. Hat jemand ne erklärung? Wäre ganz toll dankbar!

Hallo,

ist keine sinnvolle Fehlerbeschreibung!

Hast du mal error_reporting(E_ALL); an den Anfang deiner Datei gesetzt?

an das ende, aber an den anfang nicht, probiers gleich mal aus.

edit: zeigt 6135 an. nunja, ich weis jetzt nicht so richtig was ich mit dem anfangen soll…das was im manual steht will mir auch nicht einleuchten…hat jemand ne erklärung für mich?

[quote=“Mgier”]an das ende, aber an den anfang nicht, probiers gleich mal aus.

edit: zeigt 6135 an.[/quote]
error_reporting gibt das bisherige error_reporting-Level zurück - wenn du also echo davor schreibst, dann bekommst du eben diese Anzeige.
6135 ist E_ALL ohne E_NOTICE, der Default-Wert hier bei bplaced.

“Funzt nich” als Problembeschreibung taugt nichts.
Mache Kontrollausgaben, um zu schauen, ob deine Variablen das enthalten, was du erwartest.
Und prüfe beim Aufruf von Funktionen wie fopen deren Rückgabewert, um zu schauen, ob der Aufruf überhaupt erfolgreich war.

ok eigentlich alles normal:
-$ip ergibt meine IP
-$time ergibt 1245776536
-$line ergibt name des testes;1245776536;meine IP<|>
-$handle ergibt Resource id #7 [?!]

** ist nicht für die öffentlichkeit gedacht, funktioniert aber;

shame myself
Durch das rumprobieren ist jetzt noch ne log.txt dateileiche eine ebene höher leigen geblieben, wollte ich grad löschen, was sehe ich da? 1KB groß; gesehen, getestet, funktioniert; was lerne ICH daraus? includes können manchmal mehr schaden anrichten als helfen. sorry für die zeitverschwendung. um aber noch was anderes zu lernen, gibt fopen() prinzipiell immer einen Wert à la Resource id# + ziffer zurück? und wenns nicht funzt, dann false?

Ja - beschreibt das Manual ja auch so.

Wobei “Resource id#xy” natürlich nur der Versuch ist, dieses imaginäre Konstrukt in Stringform auszugeben. Zum Testen, ob es erfolgreich war reicht zu schauen, ob es nicht false geliefert hat.

aha danke, habe ich wohl über sehen.
jedenfalls danke für die erklärung, auch wenn ich mich zuvor selbst reingelegt habe :hammer: