"We are back" « oc.at

[PHP] Aufruf einer Seite --> timestamp - sinnvoll?

grOOvekill@ 27.07.2005 - 10:24 2878 24
Posts

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
S'gott,

folgendes Problem:

ich habe eine Website, wo links das Datum der letzten Bearbeitung stehen soll. Nachdem es mühsam ist, das immer von Hand einzugeben, würde ich das gerne automatisieren.

Als Ansatz dachte ich daran, einfach die Adminseite herzunehmen. Die Seite wird nicht von mir verwaltet. Der Besitzer hat eine Adminseite, wo er diverse News eintragen, Gästebucheinträge verwalten und Fotos uploaden kann. Und jedes Mal, wenn er diese admin.php Seite mittels Browser aufruft, fände ich es toll, wenn man in irgendein txt File einen timestamp reinknallen könnte, der dann von der Website ausgelesen und angezeigt wird.

Ist das möglich? Ist das sinnvoll? Gibt es eine bessere Lösungsvariante?

Wäre dankbar für Tipps.

edit: Achja, ich sollte vielleicht noch erwähnen, dass ich in php unterwegs bin. ;)
Bearbeitet von grOOvekill@ am 27.07.2005, 17:19

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25633
Zitat
Ist das möglich? Ist das sinnvoll? Gibt es eine bessere Lösungsvariante?
ja / gute frage, wenn das wirklich etwas bringt, dass man weiss wann er das letzte mal im admin panel war / datenbank

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Also, eigentlich brauche ich nur irgendeinen Anhaltspunkt, dass an der Seite etwas geändert wurde, contentmäßig gesehen. Ich wüßte nicht, woran ich mich sonst orientieren sollte um mir das "Last edited: "-Datum zu besorgen.

Bin aber natürlich offen für alle brauchbaren Lösungsvorschläge. :)

semteX

begehrt die rostschaufel
Avatar
Registered: Oct 2002
Location: Pre
Posts: 14807
wird die file selbst verändert oder nur ein datenbankeintrag?

aja sinnvollere möglichkeit: da du offenbar datenbank verwendest ne tabelle namens "lastchanges" anlegn und dort immer das aktuelle datum / zeit nach nem "insert" des admin scripts..

vossi

been there, done that
Avatar
Registered: Feb 2003
Location: Vienna
Posts: 1436
dazu musst do wohl etwas ins adminscript reinhängen.
wenn der veränderte/neue datensatz abgeschickt wird einfach in der selben table wo der content reinkommt hinten ein feld timestamp anlegen und das inserten/updaten und dann bei der ausgabe zusammen mit dem content auslesen

edit semteX verdammt, post langsamer :D

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Zitat von semteX
wird die file selbst verändert oder nur ein datenbankeintrag?

aja sinnvollere möglichkeit: da du offenbar datenbank verwendest ne tabelle namens "lastchanges" anlegn und dort immer das aktuelle datum / zeit nach nem "insert" des admin scripts..

Hm.. der Gedanke ist mir soeben gekommen. Ich lege einfach eine zusätzliche Tabelle an und jedesmal, wenn per Admin Seite etwas verändert wird (update, insert oder delete), knall ich einfach einen timestamp dort rein, der dann einfach ausgegeben wird.

Ich hab' keine Ahnung, ob das elegant gelöst ist, oder nicht, aber ich versuch's einfach mal. :)

Danke für die Tipps!

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Urgs! Okay, ich hab's mal geschafft, einen Timestamp bei einem Update zu setzen. Wird auch richtig ausgegeben, nur leider nicht so formatiert, wie ich das gerne hätte.

Ausgegeben wird das hier: "20050727"
Ich hätte aber gerne: "27.07.2005"

Jemand auf die Schnelle eine Ahnung, wie ich das am einfachsten hinbekomme? Ich kuck mir inzwischen mal diverse PHP String Funktionen an.

rettich

Legend
waffle, waffle!
Avatar
Registered: Jan 2004
Location: wien
Posts: 794

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Ächz! Damit hatte ich es schon probiert, hat aber nicht gefunzt. War mir nicht sicher, ob die gleichen Regelgungen gelten, wenn ich mir das Datum als Timestamp aus der Tabelle hole. Bei date(blabla) isses ja leicht. Wie auch immer, hab's jetzt hingebogen, die Zeile sieht nun so aus und funktioniert auch:

Code: PHP
echo date(d,strtotime($dataset[0])).".". date(m,strtotime($dataset[0])).".". date(Y,strtotime($dataset[0]));
Bearbeitet von watchout am 27.07.2005, 13:22

Seppo

Addicted
Registered: Jun 2002
Location: Waldviertel/Wien
Posts: 401
$zeit = date("d.m.Y", $stampausdatenbank);

echo $zeit;

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Zitat von Seppo
$zeit = date("d.m.Y", $datenbankstamp);

echo $zeit;

Sorry, aber hat nicht gefunzt. Da hab ich folgendes Datum bei der Ausgabe erhalten: 01.08.1970 :confused:

Ich glaube es liegt daran, dass ich beim Holen des TImestamps ein Array erhalte, auf das ich nicht einfach so zugreifen kann. Mußte eben den Umweg gehen.

Wie auch immer, es funktioniert jetzt. :)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25633
speicher den timestamp als unsigned int in der datenbank. dann kannst du ihn per time() speichern und per date gemütlich formatieren.

btw: date solltest du so verwenden wies im handbuch steht ;)

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Ach herrje! Hab' ja nie behauptet, ein begnadeter Programmierer zu sein! :D Bin schon froh, wenn ich das irgendwie hinbekomme. Ist sicher nicht die eleganteste Lösung (zu denen tendiere ich seltsamerweise sehr selten :D), aber solange es funktioniert, bin ich glücklich.

Vielen Dank auf jeden Fall für Eure Hilfe!

Seppo

Addicted
Registered: Jun 2002
Location: Waldviertel/Wien
Posts: 401
Zitat von grOOvekill@
Sorry, aber hat nicht gefunzt. Da hab ich folgendes Datum bei der Ausgabe erhalten: 01.08.1970 :confused:

Ich glaube es liegt daran, dass ich beim Holen des TImestamps ein Array erhalte, auf das ich nicht einfach so zugreifen kann. Mußte eben den Umweg gehen.

Wie auch immer, es funktioniert jetzt. :)

butterst du den sql timestamp in die DB (also mit "NOW()")
oder den php timestamp, also eine variable die vor dem insert mit "time()" befüllt wird ?

grOOvekill@

Legend
Vienna Badass
Avatar
Registered: Nov 2001
Location: @home
Posts: 2316
Zitat von Seppo
butterst du den sql timestamp in die DB (also mit "NOW()")

Genauso mach' ich das! :D
Sehr schlimm?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz