Datum/Uhrzeit per Form an .txt senden

phil-ip

Erfahrenes Mitglied
Hey, ich hab gestern abend mal eine art Logbuch mit Login-System zusammen geschustert. Leider ist doch mein Wissen in Sachen PHP sehr begrenzt. :-) Ich möchte gerne noch die Uhrzeit und das Datum automatisch bei jedem Eintrag mit an die .txt Datei senden lassen.

PHP:
<?php

session_start();

?>

<html>
<head>
<title>webVZ</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
    <h1>WebVZ</h1>
<?
function links($text) { 
$p[] = '"(( |^)((ftp|http|https){1}://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i'; 
$r[] = '<a href="\1" target="_blank">\\1</a>'; 
$p[] = '"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i'; 
$r[] = '\\1<a href="http://\2" target="_blank">\\2</a>'; 
$p[] = '"([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})"i'; 
$r[] = '<a href="mailto:\1">\\1</a>'; 
$text = preg_replace($p, $r, $text); 
return $text; 
}
 ?> 
<?php
        $datei = "webvz.txt"; // Name der Datei
        $array = file($datei); // Datei in ein Array einlesen
        foreach ($array as $element) {
        echo links($element) . "<br>"; // Dateiinhalt ausgeben
     }
?>    
    <form action="webvz.php" method="post" id="form">
    <p>Name:<br><select name="name" id="jumpMenu" type="text" onChange="MM_jumpMenu('parent',this,0)">
    <option>Kristian</option><option>Philipp</option></select></p>
    <p>Link:<br><input name="link" type="text" value="http://" size="30"></p>
    <p>Beschreibung:<br><input name="beschreibung" type="text" size="30"></p>
    <input type="submit" value=" Absenden ">
    <input type=button onClick="window.location.href='webvz.php'" value="Refresh">
    <input type=button onClick="window.location.href='logout.php'" value="Logout">
    </form>
    
<?php

$Zugangspasswort = "xxx";

if($_SESSION['Passwort'] == $Zugangspasswort)
{
        if ( !empty($_POST['name']) AND !empty($_POST['link']) AND !empty($_POST['beschreibung']) )
    {
        $file = fopen("webvz.txt", "a"); // test.txt = name der datei
        fputs($file, $_POST['name']." ".$_POST['link']." ".$_POST['beschreibung']."\r\n");
        fclose($file);
        echo "<br />";
        echo "Daten gespeichert. Danke!";
    }
    //Notieren Sie hier den geschützten Inhalt der Seite
}
else
{
    echo"Sie sind nicht berechtigt die Seite anzuzeigen!<br>Bitte loggen Sie sich vorher <a href=\"index.php\">hier</a> ein.";
}

?>

</body>
</html>

Das könnte man sicher noch wesentlich schöner realisieren, aber für mich reicht's erstmal. Wichtig ist auch, dass es .txt Datei basiert ist. Also es müsste ja irgendwie so
PHP:
$_POST[date()]
aussehen. Hoffe, ihr könnt mir helfen. Danke schonma!

---EDIT---

oder kann man einfach eine Variable posten, die oben mit der Funktion date() definiert wurde?!
PHP:
$_POST['$date']
und dann quasi
PHP:
$date = 'date()'
 
Zuletzt bearbeitet:
Ändern mal folgende Zeile:
PHP:
fputs($file, $_POST['name']." ".$_POST['link']." ".$_POST['beschreibung']."\r\n");
in die nun kommende:
PHP:
fputs($file, $_POST['name']." ".$_POST['link']." ".$_POST['beschreibung']." ".time()."\r\n");

Die Funktion "time()" gibt den gegenwärtigen Unix-Timestamp zurück. Den kannst du dir beim Auslesen so zurechtschneiden wie du es benötigst.
 
übermittelt wurde nun:
1207662071

...

Achso, das ist jetzt "time stamp", wie kann ich das dann richtig ausgeben lassen? Könnte man Uhrzeit und Datum nicht schon richtig formatiert an .txt senden? Würd vieles vereinfachen.
 
Zuletzt bearbeitet:
Wenn du ein richtiges Datum eintragen willst (Mit dem Timestamp kannste nachher allerdings besser rechnen) Dann kannste anstelle von time() auch date("d.m.Y H:i:s") verwenden;
 
Danke, funktioniert nun. Ich hab es so wie von Dark Ranger vorgeschlagen realisiert. Ist für mich am einfachsten und erfüllt seinen Zweck, so wie gewünscht. Danke Jungs! P.S.: besteht nun die Möglichkeit, bei der Ausgabe unterschiedliche CSS-Classes zu vergeben?
 
PHP:
$css = 0;
foreach ($array as $element) {
if($css%2!=0)
        echo "formatierung 1-> ".links($element) . "<br>"; // Dateiinhalt ausgeben
else
        echo "formatierung 2-> ".links($element) . "<br>"; // Dateiinhalt ausgeben
$css++;
     }

Müsste so gehen, glaube ich...
 
Hi,

klar, wieso nicht. Du könntest z.B. in Deiner foreach-Schleife eine Bedingung (if, switch) einbauen und je nachdem ein

PHP:
str_replace('<a ', '<a class="klasse" ', $link);

anwenden.

LG
 
Zurück