PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : in eine datei schreiben..


h75
16.07.2005, 06:01
halloo.

verschiedene http-server wie z.b. www.url-gateway.de bieten die möglichkeit, die adresse, die der besucher in der adresszeile hat, in die logs zu schreiben. http://www.domain.de/dateiname.php

Wie mache ich das mit PHP? So das er das in einer Text-Datei untereinander abspeichert? <?php $requesturi = $_SERVER["REQUEST_URI"]; ?> nur wie schreibe ich den wert in eine extra Text-Datei? Bin schon am rumprobieren. aber klappt net. Das hab ich bisher zusammen. <?php
$textdatei = fopen ("logging.txt","r+");
$requesturi=stripslashes(strip_tags($requesturi));
$undnun="$requesturi";
fwrite($txtdatei, $undnun);
?> aba ich denk ma, ich bin auf nem holzweg, oder? die datei hat aufjedenfall schon mal schreibrechte. wäre über den einen oder anderen rat sehr dankbar.

Corvin
07.08.2005, 19:54
So?
<?php
$url = "http://". $_SERVER["SERVER_NAME"] .$_SERVER["REQUEST_URI"];
$file = "logging.txt";
$content = file_get_contents($file);
$content = $url ."\n" .$content;
file_put_contents($file, $content);
?>

Boothby
07.08.2005, 23:42
Wenn man als 3. Parameter der Funktion file_put_contents den Wert FILE_APPEND mitgibt, dann kann man sich das vorherige Auslesen aus der Datei ersparen.

siehe hier: http://de3.php.net/file_put_contents

h75
08.08.2005, 01:38
Halloo,

@ Corvin Gröning, nein leider nicht: ergebnis: Fatal error: Call to undefined function: file_put_contents() in /home/www/test.php on line 7 @ Boothby: danke für den Tipp, aber auslesen möchte ich eigentlich auch nicht. Nur reinschreiben... :D Also müsste das in etwa so aussehen? <?php
$url = "http://". $_SERVER["SERVER_NAME"] .$_SERVER["REQUEST_URI"];
$file = "logging.txt";
file_put_contents($file, $content, FILE_APPEND);
?> geht aber nicht Fatal error: Call to undefined function: file_put_contents() in /home/www/test.php on line 4 ... und so? <?php
$url = "http://". $_SERVER["SERVER_NAME"] .$_SERVER["REQUEST_URI"];
file_put_contents('logging/logging.txt', $url, FILE_APPEND);
?> gehts auch nicht.. Fatal error: Call to undefined function: file_put_contents() in /home/www/test.php on line 3 Aber ich bin sicher, ich mach was falsch :D nur was^^

Corvin
08.08.2005, 06:23
file_put_contents() gibt es erst ab PHP 5... dein Server hat wohl nur 4.
Schreib es so:
<?php
$url = "http://". $_SERVER["SERVER_NAME"] .$_SERVER["REQUEST_URI"];
$file = "logging.txt";
$content = file_get_contents($file);
$content = $url ."\n" .$content;
$file = fopen($file, "a+");
fwrite($file, $content);
fclose($file);
?>

h75
08.08.2005, 07:12
Hey. :) soso... klar, da hatte ich eben auch was von gelesen.. :D aber nicht drüber nachgedacht. Nunja. So funtioniert es. DANKE! Habe es jetzt aber so abgeändert, damit auch wirklich die Adressezeile des Browsers und nicht der Servername notiert werden. ;) und den Referer gleich noch mit dazu.. <?php
$url = "http://".$_SERVER['HTTP_HOST'] .$_SERVER["REQUEST_URI"] . " - (".$_SERVER['HTTP_REFERER'] .")";
$file = "logging.txt";
$content = file_get_contents($file);
$content = $url ."\n" .$content;
$file = fopen($file, "a+");
fwrite($file, $content);
fclose($file);
?> Ich bin aber fast sicher, das geht auch kürzer^^:rolleyes: und beim einlesen wird wohl immer das, was vorher in der Datei logging.txt drin stand, nochmal mit in die Datei reingeschrieben? kann das sein? :D

Boothby
08.08.2005, 23:54
Ja weil du wieder den Inhalt der alten Datei ausliest und anschließend mit dem Parameter 'a+' an die alte datei wieder anhängst. Wenn du dir das Auslesen ersparst, dann klappts auch mit dem Nachbarn. ;)

Noch ein Tipp: Für ältere Versionen gibt es noch nicht vorhandene Funktionen in folgendem Pear Package (http://pear.php.net/package/PHP_Compat/download/1.4.0). Lad dir das mal runter. Im Verzeichnis PHP_Compat-1.4.0\Compat\Function gibts die Datei file_put_contents.php. Einfach in dein Projekt kopieren und per include_once () einbinden. Dann hast du auch die Funtion file_put_contents ().

h75
09.08.2005, 01:06
Den Tip werde ich mal ausprobieren. :)

Wenn ich bloss wüsste, wie man das jetzt weglässt^^ <?php
$adresse = "http://".$_SERVER['HTTP_HOST'] .$_SERVER["REQUEST_URI"] . " - (".$_SERVER['HTTP_REFERER'] .")";
$datei = "adresslog.log";
$inhalt = file_get_contents($datei);
$inhalt = $adresse ."\n" .$inhalt;
$datei = fopen($datei, "w");
fwrite($datei, $inhalt);
fclose($datei);
?> so gehts aber auch. :) Ich hab noch ein wenig gedocktert, aber krieg es nicht so richtig hin.

h75
09.08.2005, 04:26
So. ich habe es jetzt ausgearbeitet und bin so ganz zufrieden damit. Jetzt werden auch alle daten geloggt, die ich brauche... :) $adresse = "\nIP: ".$_SERVER['REMOTE_ADDR'] . "\n - Host: http://".$_SERVER['HTTP_HOST'] . "\n - Uri: ".$_SERVER['REQUEST_URI'] . "\n - Port: ".$_SERVER['REMOTE_PORT'] . "\n - Referer: ".$_SERVER['HTTP_REFERER'] . "\n - Protokoll: ".$_SERVER['SERVER_PROTOCOL'] . "\n - Methode: ".$_SERVER['REQUEST_METHOD'] . "\n - Server: ".$_SERVER['SERVER_ADDR'] . "\n";
$datei = "logs.log";
$inhalt = file_get_contents($datei);
$inhalt = $adresse ."\n-------------------------------------\n" .$inhalt;
$datei = fopen($datei, "w");
fwrite($datei, $inhalt);
fclose($datei); Ausgabe in der Textdatei:
IP: 12.345.678.9
- Host: http://domain.de
- Uri: /index.php
- Port: 33942
- Referer: ()
- Protokoll: HTTP/1.1
- Methode: GET
- Server: 12.345.67.890

-------------------------------------

Boothby
09.08.2005, 07:28
Wenn ich bloss wüsste, wie man das jetzt weglässt

Evtl. so? ;)

<?php
$url = "http://".$_SERVER['HTTP_HOST'] . $_SERVER["REQUEST_URI"] . " - (".$_SERVER['HTTP_REFERER'] .")" . "\n";
$file = "logging.txt";
$fh = @fopen($file, "ab");
if ($fh)
{
fwrite($fh, $url);
fclose($fh);
}
?>

h75
09.08.2005, 07:52
ohja so gehts auch, klar, DANKE .. muss das ja nur wegnehmen.. aber wofür das 'b'? Ist das nicht nur bei Windows sinnvoll? und statt nem a wäre mir das w lieber ;) Dann muss ich nicht scrollen, um zu sehen, wer der letzte war..

h75
10.08.2005, 08:08
So jetzt habe ich die ersten 24 std rum und sieh mal einer an. :confused: 10.08.2005 - 03:08
- IP: 62.103.164.199
- Host:
- Uri:
- Port: 4528
- Protokoll: HTTP/0.9
- Methode: %25%75%30%61%65%62%25%75%62%38%39%30%25%75%61%63%39%37%25%75%37%37%65%34%25%75%30%30%30%30%25%75%30% 30%30%30%25%75%38%33%38%62%25%75%30%30%39%34%25%75%30%30%30%30%25%75%34%30%38%62%25%75%30%35%36%34%2 5%75%30%31%35%30%25%75%30%30%30%30%25%75%65%30%66%66%25%75%39%30%39%30%3D%78%26%90%90%90%90%90%90%90 %90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90%90

------------------------------------- weitere details: Datum, Uhrzeit - 10.08.2005, 03:08:12
IP - 62.103.164.199
Host -
User-Agent -
Browser-Spracheinstellung - nicht vorhanden
Referrer -
JavaScript - nicht aktiviert o. nicht vorhanden
Monitor-Auflösung -
Seitenaufrufe - 1
Besuchte Seiten - 10.08.2005, 03:08:12 H75 Hollii.de | Startseite | Halloo
Downloads -
Hyperlinks -