logfile

Lenox
Wollt mal fragen:

Hab eine log.txt angelegt mit bestimmten inhalten!

So nun möchte ich aber den Inhalt aus der txt ins wbb rein haben

Also erstelle ich dafür eine neue tpl dafür damit es nur mein TEAM sieht und kein anderer!

Aber ich weiss nun nicht wie ich das genau mache

Hier mal ein teil aus der php:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
if ($log == 1) {
                // Log-datei öffnen
                $open fopen($logfile,"a");
                // Den Inhalt der Log-datei festlegen
                $index "IP-Adresse: ".$_SERVER['REMOTE_ADDR']."
                \nSein Host: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])."
                \nSein Nick: ".$wbbuserdata['username']."
                \nUpload-Datei: ".$UPLOAD_PFAD."/".$name."
                \nDatum: ".date("d.m.Y")."
                \nUhrzeit: ".date("H:i:s")."
                \n-------------------------\n";
                // Den Inhalt an das Ende der Log-datei hinzufügen
                fputs($open,$index);
                // datei wieder schließen
                fclose($open);
            }
[kamui]
Warum machst du es nicht in die DB?
Lenox
Naja so hab ich mir das gedacht per Tabelle:

Tabelle: bb1_logfile

Felder: 7

id, ip, host, user, upload, datum, time

Aber dazu brauchte ich noch die typen der Felder bei ID, upload und user weiss ich das ja aber bei den Restlichen nicht
[kamui]
Verstehe deinen letzten Post irgendwie nicht, oben willst du das ganze doch in einer Datei speichern / ändern !?

Und was weißt du bei der Tabelle nicht ?

EDIT:// Habe dir da mal was gemacht smile

Hier schreibt er den User in eine *.txt Datei (Verzeichnis sollte per .htaccess geschützt werden)
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?
$dir './user-logs/';
$filename $dir.$wbbuserdata['userid'].'.txt';

$host gethostbyaddr($_SERVER['REMOTE_ADDR']);

$text "{$wbbuserdata['userid']}+#-#+{$host}+#-#+{$_SERVER['REMOTE_ADDR']}+#-#+{$_SERVER['REQUEST_TIME']}\n";

$handle fopen($filename'a+');
fwrite($handle$text);
fclose($handle);
?>

Beim auslesen kannst du dann bei jedem " \n " exploden, dann hast du jeden einzelnen Eintrag, dann explode mit " +#-#+ " und die hast die einzelnen Einträge der Daten. Das könnte in etwa so aussehen:
php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
<?
$dir './user-logs/';
$filename = array();

$query 'SELECT * FROM bb'.$n.'_users';
$result mysql_query($result);
while ($row mysql_fetch_array($result)) {
  $filename[$row['userid']] = $dir.$row['userid'].'.txt';
}

$daten = array('Userid''Host''IP''Serverzeit');

foreach ($filename as $key=>$value) {
  $handle fopen($value'a+');
  $content fread($handlefilesize($value));
  $eintraege explode("\n"$content);
  foreach ($eintraege as $key=>$value) {
    $daten explode('+#-#+'$value);
    for ($i 0$i <= 4$i++) {
      if ($i != 4) echo $namen[$i].': '.$daten[$i].'<br />';
      else echo $namen[$i].': '.date('d.m.Y H:i:s'$daten[$i]).'<br />';
    }
  }
  fclose($handle);
  unset($content);
  unset($eintraege);
  unset($daten);
}
?>


Das ganze ist ungetestet, aber ich denke vom Sinn her müsstest du verstanden haben, was ich meine Zunge raus

Habe das ganze mal mit *.txt Dateien gelöst, weil man die dann ja auch auf dem Server hat, und man weiß woran man ist Zunge raus
Lenox
Hmm... naja jetzt wollt ich es aber per DB machen denke das es so am leichtestn geht
[kamui]
Heute habe ich leider nicht die Zeit dir den Code zu mache, aber die Struktur sollte eigentlich aus dem alten Code erkennbar sein (obwohl du bei einer DB ja mit Feldern arbeiten kannst). Du kannst ja z.B. für jeden Log-Eintrag einen Eintrag in die DB machen und die UserID mitspeichern (immer die UserID speichern, der Name kann sich nämlich verändern) und später alle Logs von allen UserIDs auslesen lassen.
Lenox
Na das mit dem Speichern in die DB

Hab ich schon gelöst

Jetzt fehlt mir nur noch die Überprüfungen der Dateiendungen

Diese hab ich in der php deklariert und diese sollen nun überprüft werden!

Ist die dateiendung vorhanden soll es gespeichert werden

Ist die nicht vorhanden soll eine Fehlermeldung erscheinen

hier noch mal die php

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:

<?php
$filename "upload.php";
require('./global.php');
require('./acp/lib/class_parse.php');
$lang->load('upload');

if (!$wbbuserdata['userid']) access_error();
#if ($showupload != 0) error($lang->get("LANG_UPLOAD_ERROR_DISABLED")); // Einstellungen => Sonstiges

//* IP Ermitteln
$ip $_SERVER['REMOTE_ADDR'];

//* Upload ordner
$UPLOAD_PFAD "upload";

//* Maximale Grösse
$maxsize "3000072";

//* Datei Endungen
$extensions = array(".jpg"".gif"".png"".pdf"".bmp"".jpeg"".swf"".zip"".rar"".txt"".html"".png"".doc"".tpl");

//* Domain Angabe
$domain "http://test.code-tpl.de/wbb2/";

//* Ausgabe der Endungen
$file_typ "jpg, gif, png, pdf, bmp, jpeg, sfw, zip, rar, txt, png, tpl";

//* Ab hier beginnt die rechnung von Byte bis zu Kilobyte *//
$rechnen $maxsize/1000;
$ergebnis "$rechnen";
if (wbb_strlen($ergebnis) > 5$ergebnis wbb_substr($ergebnis04);
$ergebnis htmlconverter($ergebnis);

//* Ab hier beginnt die rechnung von Kilobyte bis zu Megabyte *//
$rechnenmb $rechnen/1000;
$ergebnismb "$rechnenmb";
if (wbb_strlen($ergebnismb) > 5$ergebnismb wbb_substr($ergebnismb04);
$ergebnismb htmlconverter($ergebnismb);

if($_POST['upload'] == true){
$name $_FILES['datei']['name'];$tmp_name $_FILES['datei']['tmp_name'];$size $_FILES['datei']['size'];
$type $_FILES['datei']['type'];
$ext_tmp explode("."$name);
$ext ".".$ext_tmp[(count($ext_tmp)-1)];

//* Datei Namen Speicherung
$neuerDateiname $UPLOAD_PFAD."/".$name;

//* Ausgabe der Datei
$upload_finish "$domain$neuerDateiname";

//* Eintrag in die Datenbank
        $db->unbuffered_query("INSERT INTO bb".$n."_logfile (ip, user, userid, upload, name, datum, time) VALUES ('".$_SERVER['REMOTE_ADDR']."', '".$wbbuserdata['username']."', '".$wbbuserdata['userid']."', '".$domain."".$UPLOAD_PFAD."/".$name."', '".$name."', '".date("d.m.Y")."', '".date("H:i:s")."')");
if(in_array($ext$extensions))

if(copy($tmp_name$neuerDateiname)) {

}

        redirect("Deine Datei &raquo;".$name."&laquo; wurde erfolgreich gespeichert!""upload.php"5);

}

//* Dateien Zeigen *//
$uploader $db->query ("SELECT id, ip, user, userid, upload, name, datum, time FROM bb".$n."_logfile WHERE userid='".$wbbuserdata['userid']."' ORDER by datum AND time ASC");
    while($row=$db->fetch_array ($uploader)){

        $row['id'];
        $row['user'];
        $row['userid'];
        $row['upload'];
        $row['name'];
        $row['datum'];
        $row['time'];        

    eval("\$upload_bit .= \"".$tpl->get("upload_bit")."\";");

}

eval("\$tpl->output(\"".$tpl->get("upload")."\");");

?>
[kamui]
1. Was willst du da Uploaden?
2. Umrechnungszahl ist immer 1024 (1024 Bytes = 1 KB; 1024 KB = 1 MB)
Lenox
Zitat:
Original von [kamui]
1. Was willst du da Uploaden?
2. Umrechnungszahl ist immer 1024 (1024 Bytes = 1 KB; 1024 KB = 1 MB)


zu 1. so gut wie alles ausser php und sonstige Scripte

zu 2. das weiss ich doch, wusste nur nicht wie ich das am dümmsten mache
[kamui]
Achso, das ganze soll eine Log von Uploads werden XD

php:
1:
2:
3:
if (in_array($type$extensions)) {
// code ausführen
}
Lenox
Zitat:
Original von [kamui]
Achso, das ganze soll eine Log von Uploads werden XD

php:
1:
2:
3:
if (in_array($type$extensions)) {
// code ausführen
}


Also da wird jetzt geprüft welche endung es hat?

Und wie oder wo mach ich das mit der Fehlermeldung da muss ich ja noch eine else machen oder nicht
[kamui]
Ja, es wird überprüft, ob der Inhalt von $type in dem Array $extensions enthalten ist. Und wenn du eine Fehlermeldung willst, dann einfach ein else reinmachen ^^
Lenox
Okay ich danke dir erstmal Augenzwinkern

Hoffe das ich weiter komme großes Grinsen ohne das ich hier nochmal neu fragen muss Augenzwinkern
[kamui]
Scheue dich nicht zu fragen *gg* ansonsten www.php.net, gerade bei Funktionen wie in_array hilft das sehr gut smile
Lenox
Folgendes

Möchte alle Dateitypen zulassen ausser:

Javascipte, php-dateien und HTML-Dateien

diese sollen am ende statt .php so sein .php.txt

Wie kann ich das realisieren?

Hier noch mal die php als Anhang