• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Letzte Aktualisierung

Status
Für weitere Antworten geschlossen.

Neffets001

Neues Mitglied
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. ;)
 
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);  
?>
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!!

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

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";
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.';
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';
}
?>
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
}
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'];
?>
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 ;

nur jetzt kommt das Problem:
PHP:
<?php
//Die Parameter f&uuml;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 <B>$datenbank</B> wurde aufgebaut.<P>";
    }
else
    {
    echo "Die Verbindungsversuch zur Datenbank ist fehlgeschlagen!<P>";
    echo mysql_error();
    exit();
    }
//Die Datenbank ausw&auml;hlen
if (!mysql_query("USE $datenbank;"))
    {
    echo "Die Datenbank konnte nicht ausgew&auml;hlt werden: ";
    echo mysql_error();
    exit();        
    }
else
    {
    echo "Die Datenbank <B>$datenbank</B> wurde ausgew&auml;hlt.<P>";
    }
$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());
}
zu 1.
hier kommt folgende Fehlermeldung:
Code:
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";
MfG, matibaski
 
vielen Dank matibaski, ich hab mir jetzt mal die Funktion date etwas genauer angeschaut, aber dennnoch bekomme ich folgenden Fehler
Code:
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 <B>$datenbank</B> wurde aufgebaut.<P>";
    }
else
    {
    echo "Die Verbindungsversuch zur Datenbank ist fehlgeschlagen!<P>";
    echo mysql_error();
    exit();
    }
//Die Datenbank ausw&auml;hlen
if (!mysql_query("USE $datenbank;"))
    {
    echo "Die Datenbank konnte nicht ausgew&auml;hlt werden: ";
    echo mysql_error();
    exit();        
    }
else
    {
    echo "Die Datenbank <B>$datenbank</B> wurde ausgew&auml;hlt.<P>";
    }


$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());
}
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:<br />".mysql_error());
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');

das auslesen der zeit erfolgt dann mit

PHP:
filetime('time.txt');

ist doch einfacher oder? ^^

//Edit: oder mach das einfach mit der admin.php ;)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben