Letzte Aktualisierung

Schönen Montag Nachmittag zusammen,

ich habe eine index.php-Seite und eine admin.php seite, jetzt ist es so, dass ich gerne auf der index.php-Seite angezeigt bekommen würde, wann das letzte mal, die admin.php-Seite aufgerufen wurde. (Sobald nämlich die admin.php-Seite aufgerufen wurde, ändert sich nämlich einiges an der gesamten Webseite)

Ich stelle mir das dann so vor, dass auf der index.php steht: „Letzte Aktualisierung am: 29. Juli 2007“

Nur habe ich keine Idee, wie ich dies umsetzen soll! Was ist die einfachste Methode?

Gruß
STeffen

Ich würde das ganze mit einer MySQL Datenbank machen.
Wenn du eine hast, erkläre ich dir gerne, wie man das macht.

MfG, matibaski

Kürzere Variante ist eine Text-Datei, ich glaube kaum, dass das jemand interessiert, wann dass das letze mal admin.php aufgerufen wurde. :wink:

nicht zwangsläufig, da der einzige admin wissen muss, ob jemand sonst noch sein PW 'rausbekommen hat…

Nils aka XraYSoLo

über den Sinn lässt sich streiten, hier is die wahrscheinlich kürzeste Version:
[php]<?php $txt = fopen('akt.txt', 'w+'); fputs($txt, date('d.m.Y, H:i')); fclose($txt); ?>[/php]Hoffe das hilft.

Es wird eine Datei akt.txt mit dem Inhalt „30.07.2007, 16:26“ (Beispiel) angelegt, die dann einfach in die index.php includet wird.

vielen Dank für eure Antworten!!

da ich eh eine mysql Datenbank , würde mich diese Variante sehr interessieren!

Wie macht man das mittels MySQL-Datenbank?

Kürzere Variante ist eine Text-Datei, ich glaube kaum, dass das jemand interessiert, wann dass das letze mal admin.php aufgerufen wurde.
Mittels der admin.php werden einige Daten in die MYSQL-Datenbank geschrieben. Von daher ist es aus meiner Sicht das einfachste, wenn man nachvollziehen könnte, wann das letzte mal diese Seite augerufen wurde.
Oder habt ihr dabei bedenken? Wenn ja schreibt sie, ich bin schließlich noch Anfänger und lerne gerne immer etwas neues dazu.

Also das geht im Grunde ganz einfach.
Also du erstellst mal ne Tabelle, nennen wir sie lastupdate.

Spricht:
[php]
$sql = „CREATE TABLE lastupdate“;
[/php]Jetzt brauchen wir nur eine Spalte. Die nennen wir update. Dieser geben wir den Wert DATETIME.
Also, jetzt so:
[php]
$sql = „CREATE TABLE lastupdate (update DATETIME);“;
mysql_query($sql) OR die(mysql_error());
echo’Tabelle erstellt.';
[/php]So, nun haben wir die Tabelle mit der Spalte, die wir nun füllen müssen.
Ich weiss nicht genau, wie dein Loginsystem bei admin.php funktioniert.

Also wenn es mit einer Abfrage aufgebaut ist, also etwa so:
[php]

<?php session_start(); if(/* Bedingung, wenn Passwort richtig ist */) { $_SESSION['admin'] = '??'; } else { echo'Passwort falsch'; } ?>

[/php]Wenn es so aufgebaut ist, was die meisten sind, dann fügen wir nur noch bei der Abfragung, wenn es true ist, etwas hinzu.
[php]
if(/* Bedingung */)
{
$_SESSION[‚??‘] = ‚??‘;

$sql = „SELECT update FROM lastupdate“;
$result = mysql_query($sql) OR die(mysql_error());

// Erst checken, ob ein Datum drin ist
if(mysql_num_rows($result) == 0) // Wenn noch kein Eintrag drin ist,
{
// Eintrag erstellen
$eintrag = „INSERT INTO lastupdate SET update = '“.NOW().„'“; // Eintragen. Info: Du kannst statt NOW() auch date() verwenden.
mysql_query($eintrag) OR die(mysql_error());
}
else // Wenn doch was drin war
{
// Also ich verwende hier UPDATE, dass es immer ein Eintrag bleibt.
$aendern = „UPDATE lastupdate (update) VALUES ('“.NOW().„');“; // Hier ebenfalls wegen Eintragsdatum, kannste beliebig ändern
mysql_query($aendern) OR die(mysql_error());
}
}
else
{
// Wenn passwort nicht richtig, dann hier was
}
[/php]So, nun ist bei jedem Login das Datum geändert. Man kann das auch bei der logout-Datei machen, kommt aber aufs gleiche drauf an.

Nun geben wir es auf der Seite aus, damit man weiss, wann das letzte mal etwas geändert wurde:
[php]

<?php $sql = "SELECT update FROM lastupdate LIMIT 1;"; // Hier habe ich noch LIMIT 1 als Sicherheit gesetzt $result = mysql_query($sql) OR die(mysql_error()); $row = mysql_fetch_assoc($result); // Mit fetch_assoc geben wir das ganze aus. echo'Letztes Update: '.$row['update']; ?>

[/php]So, fertig.

Nun haben wir ein letztes-Update-Anzeigesystem fertig.
Info: Keine Garantie auf Schreibfehler und Codefehler, da ich alles schnell aus dem Kopf gemacht habe.

Ich hoffe, ich konnte dir helfen.

MfG, matibaski

vielen Dank für diese sehr ausführliche Antwort!

Ich habe eine Tabelle lastupdate mit dem Feld Datetime erstellt:
[PHP]CREATE TABLE lastupdate ( update DATETIME NOT NULL ) ENGINE = MYISAM ;[/PHP]

nur jetzt kommt das Problem:
[PHP]<?php
//Die Parameter für die Datenbankverbindung festlegen
$servername = „name“;
$benutzer = „user“;
$passwort = „wer weiß“;
$datenbank = „test“;

//Versuchen doe DB-Verbindung herzustellen
if ($verbindung = mysql_connect($servername, $benutzer, $passwort))
{
echo „Die Verbindung mit der Datenbank auf $datenbank wurde aufgebaut.

“;
}
else
{
echo „Die Verbindungsversuch zur Datenbank ist fehlgeschlagen!

“;
echo mysql_error();
exit();
}
//Die Datenbank auswählen
if (!mysql_query(„USE $datenbank;“))
{
echo „Die Datenbank konnte nicht ausgewählt werden: „;
echo mysql_error();
exit();
}
else
{
echo „Die Datenbank $datenbank wurde ausgewählt.

“;
}
$sql = „SELECT update FROM lastupdate“;
$result = mysql_query($sql) OR die(mysql_error()); //hier läuft schon was falsch siehe 1.
// Erst checken, ob ein Datum drin ist
if(mysql_num_rows($result) == 0) // Wenn noch kein Eintrag drin ist,
{
// Eintrag erstellen
$eintrag = „INSERT INTO lastupdate SET update = '“.NOW().“'“; // Eintragen. Info: Du kannst statt NOW() auch date() verwenden.
mysql_query($eintrag) OR die(mysql_error());
}
else // Wenn doch was drin war
{
// Also ich verwende hier UPDATE, dass es immer ein Eintrag bleibt.
$aendern = „UPDATE lastupdate (update) VALUES ('“.NOW().„');“; // Hier ebenfalls wegen Eintragsdatum, kannste beliebig ändern
mysql_query($aendern) OR die(mysql_error());
}
[/PHP]
zu 1.
hier kommt folgende Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update FROM lastupdate' at line 1

was hab ich beim Anlegen der Tabelle mit phpmyadmin falsch gemacht?
Oder liegt ein Denkfehler in meiner Programmierung vor?

Versuch es mit *.
Sprich:
[php]
$sql = „SELECT * FROM lastupdate“;
[/php]
MfG, matibaski

vielen Dank matibaski, ich hab mir jetzt mal die Funktion date etwas genauer angeschaut, aber dennnoch bekomme ich folgenden Fehler

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'update = 'Tuesday 31st of July 2007 '' at line 1

Der Quelltext lautet:
[PHP]//Versuchen doe DB-Verbindung herzustellen
if ($verbindung = mysql_connect($servername, $benutzer, $passwort))
{
echo „Die Verbindung mit der Datenbank auf $datenbank wurde aufgebaut.

“;
}
else
{
echo „Die Verbindungsversuch zur Datenbank ist fehlgeschlagen!

“;
echo mysql_error();
exit();
}
//Die Datenbank auswählen
if (!mysql_query(„USE $datenbank;“))
{
echo "Die Datenbank konnte nicht ausgewählt werden: ";
echo mysql_error();
exit();
}
else
{
echo „Die Datenbank $datenbank wurde ausgewählt.

“;
}

$sql = „SELECT * FROM lastupdate“;
$result = mysql_query($sql) OR die(mysql_error()); //hier läuft schon was falsch siehe 1.
// Erst checken, ob ein Datum drin ist
if(mysql_num_rows($result) == 0) // Wenn noch kein Eintrag drin ist,
{
// Eintrag erstellen
$eintrag = „INSERT INTO lastupdate SET update = '“.date(„l dS of F Y „).“'“; // Eintragen. Info: Du kannst statt NOW() auch date() verwenden.
mysql_query($eintrag) OR die(mysql_error());
}
else // Wenn doch was drin war
{
// Also ich verwende hier UPDATE, dass es immer ein Eintrag bleibt.
$aendern = „UPDATE lastupdate (update) VALUES ('“.NOW().„');“; // Hier ebenfalls wegen Eintragsdatum, kannste beliebig ändern
mysql_query($aendern) OR die(mysql_error());
}[/PHP]
Was mache ich jetzt wieder falsch?
Ich glaube es liegt daran, dass das Datum nicht in die MYSQL-Tabelle schreiben kann! (Hab die Tabelle abgefragt, und es steht kein Inhalt in der Tabelle lastupdate!)
Was läuft falsch?

Gruß
Steffen

Hallo!
Mach mal bei allen mysql_error()'s, die in die() stehen so etwas:
[php]
OR die(„Error 1:
“.mysql_error());
[/php]
Und immer eine Zal höher, damit man genau sagen kann, dort ist der Fehler.
Mache ich auch immer.
Sry hab eben keine Zeit den Code durchzusuchen.
Ich komme später darauf zurück.

MfG, matibaski

erstell doch einfach eine datei z.b. time.txt und immer wenn du die admin.php seite aufrufst führst du in deinem script volgende aktion aus

[php]touch(‚time.txt‘);[/php]

das auslesen der zeit erfolgt dann mit

[php]filetime(‚time.txt‘);[/php]

ist doch einfacher oder? ^^

//Edit: oder mach das einfach mit der admin.php :wink: