Hallo Zusammen,
ich habe mir hier im Forum die Beiträge zum Thema "logfile auslesen" angesehen, konnte aber daraus keine Lösung für mich ableiten, was vielleicht auch daran liegt, dass ich teilweise nur Bahnhof verstehe.
Ich bin, was PHP angeht noch eine ziemliche NULL.
Ein Script für die Registrierung und zum einloggen meiner Besucher habe ich jetzt mit viel Mühe, Unterstützung in unterschiedlichen Foren und dem Lesen der verschiedenen PHP-Handbücher hingekriegt.
Hier das Script:
PHP-Code:
<?php
session_start();
?>
<?php
error_reporting(E_ALL);
if(empty($_POST["passwort"]))
{
$error = "Du hast vergessen Dein Passwort anzugeben. <a href=\"eintragen.html\">Zurück</a>";
}
else if(empty($_POST["benutzername"]))
{
$error = "Du hast vergessen Deinen Benutzernamen einzugeben. <a href=\"eintragen.html\">Zurück</a>";
}
else
{
$verbindung = mysql_connect("localhost", "Vesta" , "vesta");
if(!$verbindung)
{
$error = "Deine Anmeldung ist leider fehlgeschlagen. Sollte die Anmeldung nochmals fehlschlagen sende
mir bitte eine E-Mail: <a href=\"mailto:mail@potionmaster.de\">mail@potionmaster.de</a>";
}
else
{
mysql_select_db("homepage");
if(!mysql_select_db("homepage"))
{
$error = "Deine Anmeldung ist leider fehlgeschlagen. Sollte die Anmeldung nochmals fehlschlagen sende
mir bitte eine E-Mail:
<br>
<br><a href=\"mailto:mail@potionmaster.de\">mail@potionmaster.de</a>";
}
else
{
$passwort = md5($_POST["passwort"]);
$abfrage = "SELECT benutzername, passwort, login1 FROM rustleoaks WHERE benutzername= '" . mysql_real_escape_string($_POST["benutzername"]) . "' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if(!$_POST["benutzername"] AND !$passwort)
{
$error = "Du musst Dich zuerst registrieren.
<br>
<br><a href=\"eintragen.html\">Zurück</a>";
}
else
{
if($row->passwort != $passwort)
{
$error = "Dein Benutzername und/oder Passwort waren falsch.
<br>
<br><a href=\"login.html\">Login</a>";
}
else
{
$_SESSION["username"] = $_POST["benutzername"];
if($row->login1==0)
{
$aendern = "UPDATE rustleoaks Set
login1=1 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
$aendern = "UPDATE rustleoaks Set
galleonen=galleonen+20 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
}
else
{
mysql_close ($verbindung);
}
// schließen der noch offenen "else" Anweisungen
}
}
}
}
}
if (!empty($error))
{
echo '<div class="error"><p>'.$error.'</p></div>';
}
else
{
echo "Hallo <b>".htmlspecialchars($_SESSION['username'])."</b>, schön das Du da bist!
<br> <a href=\"geheim.php\">Geschützer Bereich</a>";
}
?>
Wie ihr seht, bekommt mein Besucher bei seinem allerersten Besuch auf meiner Seite den Betrag von 20 Galleonen gutgeschrieben. Damit das nur einmal passiert, wird in der Spalte "login1" aus der Null eine 1. Funktioniert auch alles prima.
Nun möchte ich aber eine weitere Besonderheit einfügen. Einmal am Tag soll der Besucher beim LogIn eine Belohnung gutgeschrieben bekommen.
Also:
xy loggt sich am 01.05.2010 um 10:00 Uhr das erste Mal am Tag ein und erhält eine Galleone und drei Punkte. Beim LogIn um 14:00 und um 18:00 Uhr soll er keine Belohnung mehr erhalten.
Am nächsten Tag (02.05.2010, 11:00, erster Login an diesem Tag) bekommt er wieder seine Belohnung usw. usw.
Ich habe mir gedacht, am besten ließe sich das wohl mit einem Logfile realisieren, in dem der Tag, Uhrzeit und der Besucher eingetragen werden. Leider hapert es am Verständnis für die Umsetzung.
Ich habe mal was zusammengeschrieben, wobei ich nicht weiß, ob das so funktionieren könnte. Als erstes die Log-Datei:
PHP-Code:
<?php
$datum=date("d.m.Y:");
$zeit=date("H:i:s");
$user=$_POST["benutzername"];
$eintragen="$user - - [$datum$zeit]";
$datei=fopen($dateiname,"a");
fputs($datei,"$eintragen\n");
fclose($datei);
?>
Und so hatte ich das im Script angedacht:
PHP-Code:
// die Überprüfung im Log-In Script vom Benutzernamen ist durchgeführt und
// die 20 Galleonen sind bereits gutgeschrieben
$logdatei=file("logfile.txt");
$datum=date("d.m.Y:");
$zeit=date("H:i:s");
$user=$_SESSION["benutzername"];
foreach($logdatei AS $ausgabe)
{
$zerlegen = explode("|", $ausgabe);
if($ausgabe->user== "" AND $ausgabe->=="")
{
$aendern = "UPDATE rustleoaks Set
punkte=punkte+3 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
$aendern = "UPDATE rustleoaks Set
galleonen=galleonen+1 WHERE benutzername='" . mysql_real_escape_string($_SESSION["username"]) . "'";
$update = mysql_query($aendern);
$eintragen="$user - - [$datum$zeit]";
$datei=fopen($dateiname,"a");
fputs($datei,"$eintragen\n");
fclose($datei);
echo "Hallo <b>$_SESSION["username"]</b>, schön das Du da bist!
echo Du erhälst 3 Punkte und 1 Galleone.
echo <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
}
else
{
echo "Hallo <b>$_SESSION["username"]</b>, schön das Du da bist!
echo <br> <a href=\"geheim.php\">Geschützer Bereich</a>";
}
Ich bin für Anregungen, TIPPS und Verbesserungsvorschläge äußerst dankbar.
Liebe Grüße
Poison