Vorerst möchte ich einmal klarstellen, dass das Gästebuch nicht von mir selbtsgeschrieben ist (stammt von einer cd).
Ich möchte es etwas verändern bzw. erweitern. Ich möchte die Darstellung der Beiträge etwas verändern, aber ich weiß nicht, wo das genau steht, wie sie dargestellt werden. Außerdem hat es keine Blätterfunktion. Das ist natürlich nicht so gut, sonst hätte ich ja tausende Einträge auf einer Seite :)
Dazu sollten dann noch die Nummern der Einträge angezeigt werden (also der wievielter eintrag), aber das ist denke ich nicht so schwer oder?
Dann gibt es da noch ein Problem ;) Wenn es jetzt zB einen ziemlich langen Beitrag gibt, wird er in einer Zeile dargestellt. Das steht zwar in einer Tabelle, aber die verlängert sich dann.
Ihr fragt euch vielleicht, waru nich gleich ein neues Gästebuch? - Ich hab es jetzt schon so weit an meine Seite angepasst (und das war für mich schon eine Menge Arbeit [da Anfänger]) und jetzt weiß ich einfach nicht weiter. Außerdem gefält es mir :P
Eigentlich unwichtig, ist ja nur das Formular, aber ich habs einfach mal dabei geschrieben.
Buch_funktionen.php :
PHP-Code:
<?php
//Stammen die Daten vom Formular?
if (isset($_POST["senden"])) {
//Textfeldeingaben Filtern
function daten_reiniger($inhalt) {
if (!empty($inhalt)) {
//HTML- und PHP-Code entfernen.
$inhalt = strip_tags($inhalt);
//Umlaute und Sonderzeichen in
//HTML-Schreibweise umwandeln
$inhalt = htmlspecialchars($inhalt);
//Entfernt überflüssige Zeichen
//Anfang und Ende einer Zeichenkette
$inhalt = trim($inhalt);
//Backslashes entfernen
$inhalt = stripslashes($inhalt);
}
return $inhalt;
}
//Schreibarbeit durch Umwandlung ersparen
foreach ($_POST as $key=>$element) {
//Dynamische Variablen erzeugen, wie g_fname, etc.
//und die Eingaben Filtern
${"g_".$key} = daten_reiniger($element);
}
//Anfang - Prüfung
//Kein richtiger Name eingegeben
if(strlen($g_fname)<3){
$error_msg="Bitte geben Sie Ihren Namen an";
}
//Kein Eintrag vorgenommen
if(strlen($g_finhalt)<3){
$error_msg.="<br>Bitte geben Sie auch etwas in das Gästebuch ein.";
}
if (isset($_POST["senden"])) {
if (file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Falls die Datei existiert, wird sie ausgelesen und
// die enthaltenen Daten werden durch den neuen Beitrag
// ergänzt
$fp=fopen($datei,"r+");
$daten=fread($fp,filesize($datei));
rewind($fp);
flock($fp,2);
fputs($fp,"$eintrag \n $daten");
flock($fp,3);
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
}else if (!file_exists($datei) && ($aktiv==0 || ($aktiv==1 && pruf_IP($REMOTE_ADDR)==0))) {
// Die Datei buch_inhalt.htm existiert nicht, sie wird
// neu angelegt und mit dem aktuellen Beitrag gespeichert.
$fp=fopen($datei,"w");
fputs($fp,"$eintrag \n");
fclose($fp);
include("autorespond.php");
header("Location:buch.php");
} else {
// Die Datei existiert zwar, jedoch handelt
// es sich wahrscheinlich um den gleichen Besucher
header("Location:buch.php");
}
} else {
echo "
<html>
<head>
<title>Gästebuch v1.0</title>
<link rel='stylesheet' href='css/main.css' type='text/css'>
</head>
<body bgcolor='#FFFFFF' text='#000000'>
<p align='center'><img src='bild/gbuchlogo.gif' width='800' height='80'></p>
<table width='300' align='center'>
<tr>
<td align='center' class='latestnews' colspan='3'>- FEHLER - <br>
Eintrag konnte nicht angelegt werden.<br>
Versuchen Sie es bitte erneut!<br>
<a href='buch_eintrag.php' class='contentlink'>Zurück</a></td>
</tr>
</table>
</body>
</html>
";
}
?>
Dann gibt es noch die Dateien buch_inhalt.htm (da sind die beiträge gespeichert), eine css datei, autorespond.php, ips.txt und die automail.txt.
Aber ich denke das ist jetzt hier unwichtig und wird hier nicht gebraucht. Falls doch, einfach schreiben ;)
Ich verlange jetzt nicht, dass ihr mir das jetzt machen sollt, aber wenn ihr mir erklärt, wie es geht, wäre ich auch schon sehr froh ;)
das Gästebuch benutzt also keien Datenbank. Es wird einfach eine Datei geschrieben und erweitert. Aus diesem Grund müßtest du schon in das Innenleben eingreifen, um die Sachen so darzustellen wie du möchtest...
Ich kann dir zwar aus zeitlichen Gründen nicht bei jeder Frage zur Tat schreiten, aber ich denke, ein kleiner Anfang reicht auch aus ;)
Zum Thema: "Ein Eintrag in einer Zeile".
Editiere die Datei funktionen.php an folgender Stelle um:
Verwandel:
um. Damit solltest du schon die Sache mit dem Zeilenumbruch hinkriegen:
Zum Thema Nummerierung.
Ich gehe davon aus, dass in jeder Zeile ein EIntrag steht.
Insofern könntest du beim Speichern die Variable $daten einlesen, nach "\n" exploden und per Schleife wieder zusammensetzen.. Jede Zeile wäre dann ein Eintrag.. Ergo.. 100 Zeilen = 100 Einträge.. Natürlich müsstest du das Array umdrehen und dann durch foreach jagen.
Eine Blätterfunkion einbauen wird schon schwieriger...
Mein Tipp.. Lass es ;)
HTH
Gruss
yozek
__________________
yozek
King of my castle - 127.0.0.1
Computer befreien das Denken vom Rechnen
Hi,
erstmal danke, dass du so schnell geantwortet hast ;)
Also das mti der zeile klappt aber immer noch nicht. Wird immer noch in einer Zeile geschrieben....
Zum Thema Blätterfunktion, also ih finds schon sehr wichtig so eine funktion zu haben, damit man nicht tausende einträge auf einer seite hat. Ist das denn wirklich so schwierig?
Also, dass mit der einen zeile klappt jetzt glaube ich soweit.
Und mit der Blätterfunktion hab ich mir was anderes überlegt. Wenn es zu viel wird mach ich es einfach manuell. Also ich kopiere einfach die Beiträge in die datei buch_inhalt2.htm und verlinke die beiden. Damit wäre das Problem auch gelöst ;)
Jetzt hab ich noch eine Frage. Wo wird denn festgelegt wie die Beiträge dargestellt werden, also was für ne tabelle, wo der name steht usw. das möchte ich ein wenig ändern..
Sooo.....ich hab jetzt alles so weit hinbekommen. Danke für eure Hilfe.
Ist es schwierig einen 'Adminbereich' einzubauen? Also, dass ich die einträge online bearbeiten und löschen kann?