Projekt Gästebuch - Spamschutz, Bugfixing, Reload-Sperre, Adminbereich...
Hallo,
ein kurze und für euch wahrscheinlich einfache Frage:
Wie kann ich die folgende Tabelle um 10px einrücken? Ich dachte zunächst das funktioniert genau wie in HTML mit Margin doch da hab ich wohl falsch gedacht.
Hoffe auf eine schnelle Hilfestellung :D
Gruß
Julian57
ein kurze und für euch wahrscheinlich einfache Frage:
Wie kann ich die folgende Tabelle um 10px einrücken? Ich dachte zunächst das funktioniert genau wie in HTML mit Margin doch da hab ich wohl falsch gedacht.
<?php
echo "<table margin=\"0px 10px 0px\" border=\"1\" cellspacing=\"0\" cellpadding=\"5\" bordercolorlight=\"black\" bordercolordark=\"black\" width=\"540px\">
</table><br>
";
}
?>
Gruß
Julian57
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Kommentar vom Moderator masterG am 22.10.2011 um 09:56:42 Uhr
Da dieses Thema von der eigentliche Frage abschweift, schließe ich es. Der Threadersteller kann zu den restlichen Fragen, eigene Threads aufmachen.
Content-ID: 174811
Url: https://administrator.de/contentid/174811
Ausgedruckt am: 26.11.2024 um 21:11 Uhr
34 Kommentare
Neuester Kommentar
Hallo Julian,
Es gibt keine HTML-Attribute namens "margin": Index of the HTML 4 Attributes (w3.org)
Dieses "margin" gibt es aber als CSS-Eigenschaft: CSS4you - margin
Auf der Seite hast du auch gleich ein Beispiel wie du das CSS anwenden kannst.
Übrigens, das hat nichts mit PHP zu tun ;)
Mit PHP "generierst" du ja eine HTML-Ausgabe und diese wird vom Browser dargestellt.
Der Browser bekommt also nur das ausgegebene HTML und damit hast du Darstellungsschwierigkeiten.
Du solltest auf CSS umstelle, damit hast du wesentlich mehr Möglichkeiten - wie man gerade sieht ;)
Viel Erfolg
~Arano
Hoffe auf eine schnelle Hilfestellung :D
Kommt sofort... naja, etwas verspätet.Es gibt keine HTML-Attribute namens "margin": Index of the HTML 4 Attributes (w3.org)
Dieses "margin" gibt es aber als CSS-Eigenschaft: CSS4you - margin
Auf der Seite hast du auch gleich ein Beispiel wie du das CSS anwenden kannst.
Übrigens, das hat nichts mit PHP zu tun ;)
Mit PHP "generierst" du ja eine HTML-Ausgabe und diese wird vom Browser dargestellt.
Der Browser bekommt also nur das ausgegebene HTML und damit hast du Darstellungsschwierigkeiten.
Du solltest auf CSS umstelle, damit hast du wesentlich mehr Möglichkeiten - wie man gerade sieht ;)
Viel Erfolg
~Arano
Moin moin
Ich habe es gerade selber getestet, mit dem Quelltext deiner Seite, es funktioniert !
Wie machst du das also ?
Irgendetwas muss da ja anders sein, so das du es noch als falsch ansiehst ...oder es das sogar ist....
Der zusätzliche leere Gästebucheintrag wird durch eine Leerzeile in der "gaestebuch.txt" erzeugt, vermutlich eine am Anfang der Datei.
könnte auch Ende der Datei sein aber ich tippe eher auf den Dateianfang
Gespeichert wird ja folgender Maßen:
In der zweiten Zeile wird zusätzlich zu den Daten noch eine Zeilenumbruch __am Anfang der Daten__ in die Datei gespeichert. Der soll die einzelnen Beiträge immer voneinander in eine separate Zeile trennen. Das ist soweit auch richtig ABER was wenn die Datei LEER ist ? Dann wird trotzdem erst der Zeilenumbruch gespeichert, dabei wird die Leerzeile erzeugt, und dann die neuen Daten.
Was hast du gemacht und wie lauten die Fehlermeldungen, ohne dieses Informationen kann man sonst nur in die Glaskugel schauen ;)
SPAM-Schutz ?
Kein einfaches Thema !
Neben den sagen wir mal aktiven Methoden wie z.B: dem Bild- oder Text-, Rechen-CAPTCHA gibt es auch die "passiven" Methoden.
Z.B: Wird die Zeit gemessen, die der Besucher auf der "Eintragerstellen-Seite" verbracht hat bevor er das Formular abgeschickt hat.
(Hat er 0.1 Sekunde gebraucht um das Formular auszufüllen, oder mehr als ~10 Sekunden weil er alles selber Tippen musste)
Oder Falls möglich, auf welcher Seite war er vorher ?
(Ist es vom Ablauf her logisch das der nun einen Eintrag erstellt, hat er vorher überhaupt die Webseite aufgerufen ?)
(es ist auch OHNE Webseitenaufruf möglich eine Eintrag zu speichern, sofern man die Datenfelder kennt)
Versteckte Formularfelder die nicht befüllt werden dürfen.
(Der Mensch __sieht__ dieses Feld nicht und trägt auch nichts ein. Der Bot, der den Quelltext sieht, sieht das Feld und trägt etwas ein = ERROR)(Je nachdem wie "schlau" der Bot ist, erkennt er aber auch dieses)
Vertauschte / Unaussagekräftige Feld-Namen
(Der Bot denkt es sein Feld für einen Namen und trägt einen solchen ein, tatsächlich handelt es sich aber um das Feld für die E-Mail-Adresse weil aber der Name des Bots kein "@" enthält = ERROR)^^
- be creative -
Diese kann man natürlich auch schön miteinander kombinieren !
Aber nicht vergessen werden darf dabei Benutzerfreundlichkeit. Es sollte also auch abgewogen werden ob sich das für die Website überhaupt lohnt bzw. ob die Bots tatsächlich "unbedingt" in dein Gästebuch wollen oder ob das nur das kleine Ungeziefer ist, bei denen auch ein verstecktes Feld reicht, das nicht ausgefüllt werden darf - was eine kleiner dummer Bot natürlich machen würde.
EDIT:
Öhm... ich kann deine "gaestebuch.txt"-Datei auch so im Browser aufrufen und dort sehe ich:
Evtl. wäre es auch gut zu beachten, das es sich um ein __TUTORIAL__ handelt ;)
~Arano
Ich weiß wie man Margin im Zusammenhang von HTML und CSS benutzt.
Hm... dan frage ich mich warum du- Einmal einen HTML-Margin-Attribut verwendest das nicht einmal existiert und
- Du es nicht einsetzt !?
Ich habe es gerade selber getestet, mit dem Quelltext deiner Seite, es funktioniert !
Wie machst du das also ?
Irgendetwas muss da ja anders sein, so das du es noch als falsch ansiehst ...oder es das sogar ist....
Der zusätzliche leere Gästebucheintrag wird durch eine Leerzeile in der "gaestebuch.txt" erzeugt, vermutlich eine am Anfang der Datei.
könnte auch Ende der Datei sein aber ich tippe eher auf den Dateianfang
Gespeichert wird ja folgender Maßen:
<?php
$eintrag="$email|$user|$datum|$inhalt";
fwrite($datei, "\n".$eintrag);
?>
Wenn ich das durch Kommentare gekennzeichnete "Echo" durch von mir bekannte HTML und CSS Befehle ersetze und auf meine Homepage hochlade gibt es mir nur Fehlermeldungen aus!
Diese Information ist so in der Form für uns nutzlos !Was hast du gemacht und wie lauten die Fehlermeldungen, ohne dieses Informationen kann man sonst nur in die Glaskugel schauen ;)
SPAM-Schutz ?
Kein einfaches Thema !
Neben den sagen wir mal aktiven Methoden wie z.B: dem Bild- oder Text-, Rechen-CAPTCHA gibt es auch die "passiven" Methoden.
Z.B: Wird die Zeit gemessen, die der Besucher auf der "Eintragerstellen-Seite" verbracht hat bevor er das Formular abgeschickt hat.
(Hat er 0.1 Sekunde gebraucht um das Formular auszufüllen, oder mehr als ~10 Sekunden weil er alles selber Tippen musste)
Oder Falls möglich, auf welcher Seite war er vorher ?
(Ist es vom Ablauf her logisch das der nun einen Eintrag erstellt, hat er vorher überhaupt die Webseite aufgerufen ?)
(es ist auch OHNE Webseitenaufruf möglich eine Eintrag zu speichern, sofern man die Datenfelder kennt)
Versteckte Formularfelder die nicht befüllt werden dürfen.
(Der Mensch __sieht__ dieses Feld nicht und trägt auch nichts ein. Der Bot, der den Quelltext sieht, sieht das Feld und trägt etwas ein = ERROR)(Je nachdem wie "schlau" der Bot ist, erkennt er aber auch dieses)
Vertauschte / Unaussagekräftige Feld-Namen
(Der Bot denkt es sein Feld für einen Namen und trägt einen solchen ein, tatsächlich handelt es sich aber um das Feld für die E-Mail-Adresse weil aber der Name des Bots kein "@" enthält = ERROR)^^
- be creative -
Diese kann man natürlich auch schön miteinander kombinieren !
Aber nicht vergessen werden darf dabei Benutzerfreundlichkeit. Es sollte also auch abgewogen werden ob sich das für die Website überhaupt lohnt bzw. ob die Bots tatsächlich "unbedingt" in dein Gästebuch wollen oder ob das nur das kleine Ungeziefer ist, bei denen auch ein verstecktes Feld reicht, das nicht ausgefüllt werden darf - was eine kleiner dummer Bot natürlich machen würde.
EDIT:
Öhm... ich kann deine "gaestebuch.txt"-Datei auch so im Browser aufrufen und dort sehe ich:
keine Einträge vorhanden
julian57@gmx.net|Julian Schmidt|17.10.2011 um 19:44|Das ist ein Test
|Arano|18.10.2011 um 09:19|Keine Reloadsperre, drücke nach dem Absenden [F5]<br>Keine Reloadsperre, drücke nach dem Absenden [F5]
Die erste Zeile ist zwar nicht leer, aber für den angezeigten leeren Gästebucheintrag verantwortlich ;)julian57@gmx.net|Julian Schmidt|17.10.2011 um 19:44|Das ist ein Test
|Arano|18.10.2011 um 09:19|Keine Reloadsperre, drücke nach dem Absenden [F5]<br>Keine Reloadsperre, drücke nach dem Absenden [F5]
Evtl. wäre es auch gut zu beachten, das es sich um ein __TUTORIAL__ handelt ;)
~Arano
Wenn ich das durch Kommentare gekennzeichnete "Echo" durch von mir bekannte HTML und CSS Befehle ersetze und auf meine Homepage hochlade gibt es mir nur Fehlermeldungen aus!
evtl. hilft dir eine etwas andere schreibweise der Zeilen 34-40: $html = <<<__HTML__
<table border="1" cellspacing="0" cellpadding="5" bordercolorlight="black" bordercolordark="black" width="540px">
<tr> <td>Von <a href="mailto:%s">%s</a> am %s</td> </tr>
<tr> <td>%s</td> </tr>
</table>
<br>
__HTML__;
printf( $html, $zerlegen, $zerlegen[1], $zerlegen[2], $zerlegen[3])
Die ForEach Schleife wird einmal zu oft ausgeführt.
dein Script liest die Eintäge aus einer Textdatei **zeilenweise* aus, wenn am ende der Textdatei ein Zeilenumbruch ist (oder nur 3 | Zeichen), wird eine leere Tabelle angegangen.setze Zeile 33-41 in folgendes Konstrukt:
if (trim($zerlegen[3]) != '') {
/* zeile 33 -41 */
}
Was kann man Allgemein für den Spam-Schutz tun? Eine Capache fände ich viel zu aufwändig!
... leider ist dafür etwas mehr code nötig - leider gibt es noch ganz andere Probleme im Script.Evtl solltest Du dir lieber mal ein kostenloses CMS (Content-Management-System) zulegen.
HAHAHA
*g* nein, du kannst ja auch nicht das HTMl einfach so in eine PHP-Datei ballern !
Schau, die PHP-Datei wird doch von dem PHP-Interpreter "abgearbeitet" und wenn der "Befehle" oder Zeichen findet die er nicht kennt oder die an dieser Stelle keine Sinn ergeben, dann meckert er: Syntaxerror.
Das mit dem "echo" war da schon der bessere Weg allerdings hast du das "echo" scheinbar noch nicht ganz verstanden !
In diesem Fall gibt "echo" alles vom ersten Anführungszeichen (") bis zum nächstem Anführungszeichen (") aus. Danach versucht der PHP-Interpreter wieder einen PHP-Befehl zu finden, finde aber irgend welche komischen Zeichen und meckert wieder herrum.
Darum waren in dem Original die Anführungszeichen auch mit einem Backslash (\) "escapet" (oder maskiert) somit sucht das "echo" also weiter nach dem nächstem Anführungszeichen. Ausgeben wird es ein Escaptest Anführungszeichen (\") aber als ein normales (") womit das ausgegebene HTML wieder valide ist.
Hast du einmal in die "gaestebuch.txt" Datei geschaut ?
Wie gesagt, der erste Eintrag der nicht vollständig ist und auch nicht der Syntax mit den pipes (|) als Trennzeichen entspricht ist für darstellen des LeerenEintrages verantwortlich, DAS MUSST DU BEHEBEN !
anschließend ist auch die modifikation mit der IF-Bedingung um die Zeilen 33-41 überflüssig !
Und wie schon einmal erwähnt, das ist ein TUTORIAL, keine fertige "Software"
~Arano
*g* nein, du kannst ja auch nicht das HTMl einfach so in eine PHP-Datei ballern !
Schau, die PHP-Datei wird doch von dem PHP-Interpreter "abgearbeitet" und wenn der "Befehle" oder Zeichen findet die er nicht kennt oder die an dieser Stelle keine Sinn ergeben, dann meckert er: Syntaxerror.
Das mit dem "echo" war da schon der bessere Weg allerdings hast du das "echo" scheinbar noch nicht ganz verstanden !
In diesem Fall gibt "echo" alles vom ersten Anführungszeichen (") bis zum nächstem Anführungszeichen (") aus. Danach versucht der PHP-Interpreter wieder einen PHP-Befehl zu finden, finde aber irgend welche komischen Zeichen und meckert wieder herrum.
Darum waren in dem Original die Anführungszeichen auch mit einem Backslash (\) "escapet" (oder maskiert) somit sucht das "echo" also weiter nach dem nächstem Anführungszeichen. Ausgeben wird es ein Escaptest Anführungszeichen (\") aber als ein normales (") womit das ausgegebene HTML wieder valide ist.
Hast du einmal in die "gaestebuch.txt" Datei geschaut ?
Wie gesagt, der erste Eintrag der nicht vollständig ist und auch nicht der Syntax mit den pipes (|) als Trennzeichen entspricht ist für darstellen des LeerenEintrages verantwortlich, DAS MUSST DU BEHEBEN !
anschließend ist auch die modifikation mit der IF-Bedingung um die Zeilen 33-41 überflüssig !
Und wie schon einmal erwähnt, das ist ein TUTORIAL, keine fertige "Software"
~Arano
Hallo
Dir wird es zwar nun so angezeigt wie du es haben möchtest, ABER der FEHLER BLEIBT BESTEHEN - er wird nur... versteckt.
Das ist wie Atommüll im Garten einbuddeln und ein Blümchen drauf zustellen (Topfpflanze).
Sieht zwar hübsch aus, ist aber mehr als Falsch !
~Arano ;)
Hat dich schon durch NXClass und ... gelöst
gelöst ist das falsche Wort, "umgangen" oder "versteckt" wären da "richtiger".Dir wird es zwar nun so angezeigt wie du es haben möchtest, ABER der FEHLER BLEIBT BESTEHEN - er wird nur... versteckt.
Das ist wie Atommüll im Garten einbuddeln und ein Blümchen drauf zustellen (Topfpflanze).
Sieht zwar hübsch aus, ist aber mehr als Falsch !
~Arano ;)
Hi,
Schau dir mal den zweiten Parameter von fopen() an: PHP-Manual - fopen()
Tip: Schau dir auch die Englischen Seiten an, die sind 1. Vollständiger (keine Übersetzungsfehler) und 2. besser Strukturiert ;)
http://de2.php.net/manual/en/function.fopen.php
~Arano
Schau dir mal den zweiten Parameter von fopen() an: PHP-Manual - fopen()
Tip: Schau dir auch die Englischen Seiten an, die sind 1. Vollständiger (keine Übersetzungsfehler) und 2. besser Strukturiert ;)
http://de2.php.net/manual/en/function.fopen.php
~Arano
Schade das das Thema augenscheinlich still steht.
... leider handelt es sich nicht mehr um ein Thema - das ist schon ein ganzes Projekt. Ich glaube dafür ist dieses Forum auch nicht gedacht.Entweder Du wendest dich direkt an die Quelle deines Codes oder Du musst zu jedem Problem ein separaten Beitrag schreiben.
EDIT: Ich empfehle Dir dringend dich entweder mit einem PHP Framework (wenn Du PHP, SQL und HTML, CSS, JS lernen willst) oder einem CMS auseinander zu setzen.
Tag,
aber welche __aussagekräftige__ Überschrift (eine) willst du denn für die vielen Themen die hier dann behandelt werden verwenden ?
Außerdem haben wir ja jetzt schon die Problematik, das hier mehrere Themen/Probleme gleichzeitig "herumschwirren" (Spam, Reload, leere Einträge, schreibt nicht in Datei, liest nicht aus Datei) was soll denn da noch alles kommen !? Und dann alles unter einem __aussagekräftigem__Titel zusammenfassen - unmöglich !
Ich hänge sozusagen noch bei dem "Dateieinleseproblem" (während du scheinbar schon wieder bei der fehlenden Reload-Sperre bist!?)
Ich hatte die diesbezüglich ein paar Fragen gestellt, denn auch wir können ohne Informationen keine Hilfe anbieten unteranderem gab es darum von mir auch keine weitere Antwort ;)
Also, die Datei gaestebuch.txt wurde vorher doch auch schon ausgelesen, also muss doch irgend etwas verändert worden sein so das es nun nicht mehr funktioniert ! Da in deinem Tutorial leider kaum wert auf Fehlerbehandlung gelegt wurde (Was das auch nur zu einem gaaanz einfachen Tutorial macht) wissen wir also nicht einmal ob es nun Probleme beim lesen der Datei gab (z.B. fehlende Rechte), oder ob der Fehler irgendwo danach besteht (z.B. vielleicht hat du ja versehentlich das "echo" gelöscht)
Und du selbst hast ja auch keine genaueren Angaben gemacht.
Also sieh dir bitte meinen Fragen vom 18.10.2011, 23:28:18 Uhr noch einmal an und beantworte sie bitte auch.
Sollte es dennoch so sein, das ich das vermeintliche Problem missverstanden habe, dann erkläre es doch bitte noch einmal genauer.
~Arano
aber welche __aussagekräftige__ Überschrift (eine) willst du denn für die vielen Themen die hier dann behandelt werden verwenden ?
Außerdem haben wir ja jetzt schon die Problematik, das hier mehrere Themen/Probleme gleichzeitig "herumschwirren" (Spam, Reload, leere Einträge, schreibt nicht in Datei, liest nicht aus Datei) was soll denn da noch alles kommen !? Und dann alles unter einem __aussagekräftigem__Titel zusammenfassen - unmöglich !
Schade das das Thema augenscheinlich still steht.
Öhm... an mir __sollte__ es bislang nicht liegen !Ich hänge sozusagen noch bei dem "Dateieinleseproblem" (während du scheinbar schon wieder bei der fehlenden Reload-Sperre bist!?)
Ich hatte die diesbezüglich ein paar Fragen gestellt, denn auch wir können ohne Informationen keine Hilfe anbieten unteranderem gab es darum von mir auch keine weitere Antwort ;)
Also, die Datei gaestebuch.txt wurde vorher doch auch schon ausgelesen, also muss doch irgend etwas verändert worden sein so das es nun nicht mehr funktioniert ! Da in deinem Tutorial leider kaum wert auf Fehlerbehandlung gelegt wurde (Was das auch nur zu einem gaaanz einfachen Tutorial macht) wissen wir also nicht einmal ob es nun Probleme beim lesen der Datei gab (z.B. fehlende Rechte), oder ob der Fehler irgendwo danach besteht (z.B. vielleicht hat du ja versehentlich das "echo" gelöscht)
Und du selbst hast ja auch keine genaueren Angaben gemacht.
Also sieh dir bitte meinen Fragen vom 18.10.2011, 23:28:18 Uhr noch einmal an und beantworte sie bitte auch.
Sollte es dennoch so sein, das ich das vermeintliche Problem missverstanden habe, dann erkläre es doch bitte noch einmal genauer.
~Arano
HAHA HAHA :D
siehe da, ein Missverständnis - von beiden *g*
Okay, ich habe dich tatsächlich falsch verstanden, dachte wegen dem Wort "einlesen" immer an das einlesen aus der Datei. Auf die Idee, etwas in eine Textarea "einzulesen", wäre ich ja nie mehr gekommen...
Dafür hätte ich eher den Begriff "ausgeben" verwendet: Etwas in einer Textarea ausgeben.
Und das du __dieses mal__ erwähnst das IN der Teaxarea "nur" Array stünde bringt mich auch gleich auf die Lösung !
Bei so etwas am Beste die funktionsweise einer Funktion im Manual nachlesen.
PHP-Manual - file()
Also, file() liest den Inhalt einer Datei Zeilenweise IN EIN ARRAY ein.
Für jede Zeile in der Datei wird also ein "Array-Element" erstellt - ergo $beitrag IST ein Array.
Quakenet PHP-Tutorial - Array
Jetzt hast du die Wahl !
In diesem Fall, wäre wohl die "goldene Mitte" am goldisten, denn für die Schleifen hast du ja schon ein entsprechendes Beispiel bei der Anzeige der einzelnen Beiträge.
~Arano
siehe da, ein Missverständnis - von beiden *g*
Okay, ich habe dich tatsächlich falsch verstanden, dachte wegen dem Wort "einlesen" immer an das einlesen aus der Datei. Auf die Idee, etwas in eine Textarea "einzulesen", wäre ich ja nie mehr gekommen...
Dafür hätte ich eher den Begriff "ausgeben" verwendet: Etwas in einer Textarea ausgeben.
Und das du __dieses mal__ erwähnst das IN der Teaxarea "nur" Array stünde bringt mich auch gleich auf die Lösung !
Bei so etwas am Beste die funktionsweise einer Funktion im Manual nachlesen.
PHP-Manual - file()
Also, file() liest den Inhalt einer Datei Zeilenweise IN EIN ARRAY ein.
Für jede Zeile in der Datei wird also ein "Array-Element" erstellt - ergo $beitrag IST ein Array.
Quakenet PHP-Tutorial - Array
Jetzt hast du die Wahl !
- Entweder du bereitest die Daten so auf, das du sie einfach, so wie jetzt, ausgeben kannst,
- du baust dir eine Schleife (while, for oder foreach) und gibst jeden Eintrag einzeln aus (alle in eine Textarea oder jeder in eine eigene) oder
- du änderst wie Art und Weise wie die Datei eingelesen wird (fopen, file_get_contents).
In diesem Fall, wäre wohl die "goldene Mitte" am goldisten, denn für die Schleifen hast du ja schon ein entsprechendes Beispiel bei der Anzeige der einzelnen Beiträge.
~Arano
Schön soweit !
Und das ist noch ein Grund warum man nicht alles in ein Thema quetschen sollte !
Denn auch hier gibt es wieder viele verschiedene Ansatzpunkte.
~Arano
Und das ist noch ein Grund warum man nicht alles in ein Thema quetschen sollte !
Denn auch hier gibt es wieder viele verschiedene Ansatzpunkte.
- Die letzten beiden Beiträge miteinander vergleichen
- Die IP-Adresse Temporär speichern und und für 1 Minute blockieren (Datenschutz)
- Ein Cookie platzieren
- Sessions
- Captcha die fürs speichern gelöst werden müssen (nach dem ersten speichern ist der Captcha-Code ungültig und ein zweites mal (F5) gelingt nicht mehr)
- Header-Weiterleitung
- ...
~Arano
HAHAHA,
schon wieder muste ich laut lachen, als ich den Titel las.
Die erste Methode... war wohl eher für datenbankbasierte Gästebüchern gedacht.
Naja egal, allerdings wil ich dir die Lösung nun nicht einfach auf dem Silbertablet präsentieren :P
Dabei bedienen wir uns wieder des Array. Wie du den Inhalt der Datei in das Array bekommst weiß du mitlerweile. Jetzt könnten wir, wie beim Ausgeben der Einträge, das Array mit ksort() sortieren und dann nur den ersten Eintrag ausgeben. Oder wir holen uns gleich das letzte Element des Arrays: end() ist der Name der gesuchten Funktion, in PHP-Manual selbstverständlich.
Allerdings ist zu bedenken, das dafür die komplette Datei eingelesen werden muss !
Je größer die Datei, deto höher der Speicherverbrauch.
-Arano
schon wieder muste ich laut lachen, als ich den Titel las.
Die erste Methode... war wohl eher für datenbankbasierte Gästebüchern gedacht.
Naja egal, allerdings wil ich dir die Lösung nun nicht einfach auf dem Silbertablet präsentieren :P
Dabei bedienen wir uns wieder des Array. Wie du den Inhalt der Datei in das Array bekommst weiß du mitlerweile. Jetzt könnten wir, wie beim Ausgeben der Einträge, das Array mit ksort() sortieren und dann nur den ersten Eintrag ausgeben. Oder wir holen uns gleich das letzte Element des Arrays: end() ist der Name der gesuchten Funktion, in PHP-Manual selbstverständlich.
Allerdings ist zu bedenken, das dafür die komplette Datei eingelesen werden muss !
Je größer die Datei, deto höher der Speicherverbrauch.
-Arano
Das ist schon einmal etwas !
Ja, da vermutest du schon einmal richtig, bei einem Array fängt man bei "0" an, also ist der erste Eintrag über den Index "0" zu erreichen.
Schau dir mal die beiden Funktionen print_r() und var_dump() an.
Du bist auf dem richtigem Weg, allerdings solltest du noch einmal ganz scharf Überlegen was alles in der Variable $eintrag bzw. einer Zeile der Datei steht ! Schau dir dazu am besten noch einmal an was file() genau macht.
~Arano
Edit
Tja, es führen halt viele Wege nach Rom.
Eigentlich wollte ich ja auf das "Zeilenumbruchzeichen" hinaus, wo das nun beim explode() bleibt muss ich selber mal gucken - morgen.
Aber wenn du es eh schon zerlegst, willst du für deinen Vergleich wirklich auf die Kombination "Email-User-Inhalt" setzten oder lieber einfach nur auf "Inhalt" ;)
~Arano
PS: Was willst du mit meiner E-Mail-Adresse ? Und warum gibst du sie jedem anderem ? (auch Bots, Crawler,Spiders,..)
Ja, da vermutest du schon einmal richtig, bei einem Array fängt man bei "0" an, also ist der erste Eintrag über den Index "0" zu erreichen.
Schau dir mal die beiden Funktionen print_r() und var_dump() an.
Du bist auf dem richtigem Weg, allerdings solltest du noch einmal ganz scharf Überlegen was alles in der Variable $eintrag bzw. einer Zeile der Datei steht ! Schau dir dazu am besten noch einmal an was file() genau macht.
~Arano
Edit
Tja, es führen halt viele Wege nach Rom.
Eigentlich wollte ich ja auf das "Zeilenumbruchzeichen" hinaus, wo das nun beim explode() bleibt muss ich selber mal gucken - morgen.
Aber wenn du es eh schon zerlegst, willst du für deinen Vergleich wirklich auf die Kombination "Email-User-Inhalt" setzten oder lieber einfach nur auf "Inhalt" ;)
~Arano
PS: Was willst du mit meiner E-Mail-Adresse ? Und warum gibst du sie jedem anderem ? (auch Bots, Crawler,Spiders,..)
.. denke doch mal nach: - wäre das für Google schön wenn jeder mit http://www.google.de/foobar.txt eine Datei aus den Server platzieren könnte ?
versuch mal:
*auf Uhr schau* ... gute Nacht
versuch mal:
if ( $datei = fopen( '/srv/www/julian-schmidt.xprofan.com/public_html/gaestebuch.txt', 'w')) {
// ...
fclose($datei);
}
*auf Uhr schau* ... gute Nacht
HTTP wrapper does not support writeable connections
EDIT: wenigstens mal die Fehlermeldungen könntest du lesen - mit etwas Englisch sollte das doch klar sein.