Gästebuch
#16
geschrieben 23. April 2008 - 13:45
Ich hab des nämlich dort zu den echo geschrieben, also da wo des ganze zeug denn ausgegeben wird.
Anzeige
#17
geschrieben 23. April 2008 - 15:00
Für das Beispiel wäre deshalb am passendsten:
$text = str_replace("\n", "[br]", $text);
zum einspeisen in die DB.
$text = str_replace("[br]", "<br />", $text);
echo $text;
zum ausgeben.
#18
geschrieben 23. April 2008 - 15:14
ich musste nur bei
$text = str_replace("[br]", "<br />", $text);
durch
$teil[2] = str_replace("[br]", "<br />", $teil[2]);
in dem zuvor geposteten Gästebuchscript ändern^^
#19
geschrieben 30. April 2008 - 21:50
da hab ich noch mal eine Frage zu dem Gästebuch.
Wie kann ich es erreichen dass bei der Ausgabe der Einträge die auf verschiedenen Seiten angezeigt werden. Zum Beispiel dass auf der Seite1 die zehn neusten stehn auf der seite2 die nächsten 10 und so weiter.
MFG
#20
geschrieben 30. April 2008 - 23:24
Ansonsten würde sich für solche Sachen eigetnlich eine Datenbank anbieten, aber scheint mir nicht der Fall zu sein, wenn ich den Thread richtig überfligen habe.
#21
geschrieben 01. Mai 2008 - 09:54
also hier mal meine gaestebuch.php Datei
<?php
$action = $_GET['act'];
// Speichere die "act" in die Variable $action
/*
Die Variable für die 3 Funktionen:
show > Zeige alle Einträge (Startseite des GBs)
comment > Einen Eintrag machen
add > Eintrag hinzufügen
*/
$filename = "gb.txt";
// Die Datei mit den Eintraegen ...
if($action=="" | $action=="show") {
// Wen $action gleich >nix< oder >show< dan zeige bzw mache dies:
echo '<a id="normal" href="?act=comment">Einen Eintrag machen</a>';
// Ein Link zum Eintragsformular "?" steht dafür eine Anfrage an die Datei selbst
// kannst auch XXX.php?act=comment machen - es wird noch zusaetzlich die variable
// "act" mit den Wert "comment übermittelt" damit das script weiss was es zu tun hat;)
$myarray = file($filename);
// Lade den gesamten Inhalt zeilenweise von $filename in ein array
if(count($myarray)>10) {
// zaehle die zeilen von myarray; wen anzahl der zeilen groeßer als 10 ist
// setzte die variable $anzeigen auf 10
// ist eine beschrenkung- oder willst du mit einmal 10000 einträge in
// dein gb anzeigen lassen?
$anzeigen = 10;
} else {
// wen die anzahl der zeilen kleiner als 10 ist dan zeige die an
$anzeigen = count($myarray);
}
for ($i = 0; $i < count($myarray); $i++) {
// i ist 0; i ist kleiner als 10; erhöhe i immer um eins
$teil = explode("|" , $myarray[$i]);
echo '<p id="newsboxheader">'.$teil[0].' schreibt:</p>';
echo '<p id="newsboxmain"><a id="normal" href="mailto: '.$teil[1].'">' .$teil[1]. '</a></p>';
$teil[2] = str_replace("[br]", "<br />", $teil[2]);
echo '<p id="newsboxmain">'.$teil[2].'</p>';
echo '<p id="newsboxbottom">Eingetragen am:'.$teil[3].'</p>';
/* "Auf"klärung: ^^
Jede Zeile im array wird einzeln bearbeitet, deswegen die for-schleife
und jede zeile in der txt-datei sieht so aus: NAME|EMAIL|NACHRICHT
mit der explode-Funktion teilen wir die zeilen ein - der trenner ist |
so darf man sich das vorstellen:
$teil[0] | $teil[1] | $teil[2] | $teil[3]
NAME | EMAIL | NACHRICHT | ZEIT
*/
}
}
if($action=="comment") {
// wen $action gleich "comment" ist dan mache dies:
?>
<p id="newsboxheader">Eintragen</p>
<form method="POST" action="?act=add">
<p id="newsboxmain">
Name:<br/> <input id="gb" type="text" name="name" /><br />
Email:<br/> <input id="gb" type="text" name="email" /><br />
Text:<br/> <textarea id="gb" cols="50" rows="6" name="text"></textarea><br /><br />
Bitte schreiben Sie "OK" in das Feld. (Es sind beides Großbuchstaben)
<br /> <input id="gb" type="text" value="" name="check" />
</p>
<p><input type="submit" name="Submit" value="Eintragen!"></p>
</form>
<!--<input type="submit" value="eintragen" />-->
</form>
<?
}
if($action=="add") {
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
$text = str_replace("\n", "[br]", $text);
if($name=="" | $email=="" | $text=="" | $_POST['check'] !== 'OK') {
// wen $name, $email oder $text gleich nix sind dan zeige bzw. mache das:
echo "Bitte alles ausfüllen!<br />";
echo '<a id="normal" class="navi" href="java script:history.back()">Zurück</a>';
} else {
// amsonsten das:
$zeit = date("d.m.Y - H:i");
// Zeit bestimmen mit date() - tag.monat.jahr - stunde:minute
$new_text = $name."|".$email."|".$text."|".$zeit."\n";
// Fasse alle teile(name, email, ...) zu einer variable zusammen
$new_text = htmlentities($new_text);
$x = 0;
$datei = fopen($filename, "r");
while (!feof($datei)) {
$x++;
$saved[$x] = fgets($datei, 1024);
}
/* "Auf"klärung: ^^
datei wird erstmal nur zum lesen geöffnet
x ist 0 in der while-schleife wird x dan immer erhöht
so wird jede zeile ausgelesen und im $saved[] gespeichert
mit feof wird der datenzeiger ans ende der datei gesetzt und
das "!" davor bedeutet, das er das was in der if-schleife steht
nur machen soll wen der datenzeige ans ende der datei positioniert
wurde - WOZU? - ganz einfach: die datei wird von "unten" ausgelesen
so wird die zeile, die ganz unten steht, jetrzt ganz oben stehen
damit alle neuen eintraege nicht ganz unten sonder ganz oben stehn!:unsure:
*/
$datei=fopen($filename, "w");
// oeffnet die datei im schreibmodus w
fwrite($datei, $new_text);
// Schreibt die neue Zeile in die datei
for ($i=1;$i <= $x; $i++) {
fwrite($datei, $saved[$i]);
// haengt die alten eintraege einfach an
// mithilfe der for-schleife
}
fclose($datei);
//header("Location: ?act=show");
echo "Ihr Eintrag wurde gespeichert!<hr>" ;
echo '<a id="normal" class="navi" href="java script:history.go(-2)">Zum Gästebuch</a>';
}
}
?>
und hier die gb.txt
Dyon|[email protected]|und noch ein bisschen text|01.05.2008 - 10:51 Dyon|[email protected]|und noch ein bisschen text|01.05.2008 - 10:51
Danke für die hilfe
MFG
#22
geschrieben 02. Mai 2008 - 16:01
MFG:-)
#23
geschrieben 02. Mai 2008 - 19:03
Vielleicht hilft dir meine Zeichnung xD
Du kannst dann gerne wieder mit einem Lösungsansatz kommen
Zitat
Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
#24
geschrieben 02. Mai 2008 - 21:02
Wenn ich das richtig sehe könnte dir "array_reverse" helfen. Ich kann mich aber auch irren, da ich jetzt gerade keinen Bock habe das zu testen.
#25
geschrieben 02. Mai 2008 - 22:05
Das Rücksortieren, Wandeln und Unicode kann man erstmal weglassen und alles was mit Listen zu tun hat.
Das sind nur Funktionen, die die Reihenfolge ändern und die angezeigten Mailadressen in unicode umschreiben und die Anzeige hab ich mal Testweise als Liste statt als Tabelle gemacht, aber da sind die Berechnungen drin, wie nur immer 10 Beiträge angezeigt werden und unten auch ne Seitenliste ist.
Vielleicht ein bißchen umständlich aber das ist schon älter.
<div class="startspalte"><ul>
<?php
require_once("Funktionen/ruecksortieren.php");
require_once("Funktionen/unicode.php");
$daten = file("eintrag.txt");
foreach ($daten as $num => $value)
{
$daten[$num] = explode("|", $value);
}
usort($daten, ruecksortieren);
$anzahl = count($daten);
if (!$anfang = @$_GET['anfang']) {$anfang = 0;}
if ($anfang > 0){ $anfang = ($anfang - 1)*10;}
if (($anfang + 10) > $anzahl) {$ende = count($daten);} else {$ende = $anfang +10;}
for ($i = $anfang; $i < $ende; $i++)
{
$datum = date("d.m.Y - H:i:s",$daten[$i][0]);
if ($daten[$i][3] == NULL) { $name = $daten[$i][1]; } else {
$emailf = NULL;
for ($a = 0; $a < strlen($daten[$i][3]); $a++)
{
$emailf = $emailf.wandeln(substr($daten[$i][3],$a,1));
}
$name = "<a href=\"mailto:$emailf\">".$daten[$i][1]."</a>";}
echo("<li><h4>am: ".$datum." schrieb: ".$name);
if ($daten[$i][2]) {echo(" aus: ".$daten[$i][2]);} echo("</h4>
<ul><li>".ereg_replace("\[br\]", "<br />", $daten[$i][4])."<br /><br /></li>");
if ($daten[$i][5]) {
echo(" <li style=\"background-color:#DDD; font-style:italic;\">Kommentar:".$daten[$i][5]."</li>"); }
echo("</ul></li>");
}
echo("</ul></div>");
if ($anzahl > 10) { $seiten = ceil($anzahl / 10); }
for ($seit = 1; $seit <= $seiten; $seit++)
{
echo("<a href=\"hauptseite.php?stat=global&seite=gbuch&anfang=$seit\">$seit</a> | ");
}
?>
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
#26
geschrieben 03. Mai 2008 - 15:29
if($action=="" | $action=="show") {
// Wen $action gleich >nix< oder >show< dan zeige bzw mache dies:
echo '<a id="normal" href="?act=comment">Einen Eintrag machen</a>';
// Ein Link zum Eintragsformular "?" steht dafür eine Anfrage an die Datei selbst
// kannst auch XXX.php?act=comment machen - es wird noch zusaetzlich die variable
// "act" mit den Wert "comment übermittelt" damit das script weiss was es zu tun hat;)
$myarray = file($filename);
// Lade den gesamten Inhalt zeilenweise von $filename in ein array
if(count($myarray)>10) {
// zaehle die zeilen von myarray; wen anzahl der zeilen groeßer als 10 ist
// setzte die variable $anzeigen auf 10
// ist eine beschrenkung- oder willst du mit einmal 10000 einträge in
// dein gb anzeigen lassen?
$anzeigen = 10;
} else {
// wen die anzahl der zeilen kleiner als 10 ist dan zeige die an
$anzeigen = count($myarray);
}
for ($i = 0; $i < count($myarray); $i++) {
// i ist 0; i ist kleiner als 10; erhöhe i immer um eins
$teil = explode("|" , $myarray[$i]);
echo '<p id="newsboxheader">'.$teil[0].' schreibt:</p>';
echo '<p id="newsboxmain"><a id="normal" href="mailto: '.$teil[1].'">' .$teil[1]. '</a></p>';
$teil[2] = str_replace("[br]", "<br />", $teil[2]);
echo '<p id="newsboxmain">'.$teil[2].'</p>';
echo '<p id="newsboxbottom">Eingetragen am:'.$teil[3].'</p>';
Jetzt steht da $anzeigen = 10; und in der Aufklärung steht dass dies eine beschränkung sein soll, dass nicht mehr als 10 Einträge insgesamt angezeigt werden (oder hab ich des überhaupt richtig verstanden?).
Des hab ich denn mal ausprobiert aber es werden mehr als zehn einträge angezeigt?
MFG
und Danke^^
Dieser Beitrag wurde von Dyon bearbeitet: 03. Mai 2008 - 15:29
#27
geschrieben 03. Mai 2008 - 20:22
Die ersten 10 Einträge auslesen:
$VON = 0;
$BIS = 10;
for ($i = $VON; $i < $BIS+1; $i++) {
//Ausgeben
}
Die nächsten 10 Einträge:
$VON = 10;
$BIS = 20;
for ($i = $VON; $i < $BIS+1; $i++) {
//Ausgeben
}
und so weiter...
verstanden?
Zitat
Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
#28
geschrieben 03. Mai 2008 - 21:08
Zitat (K050V4: 03.05.2008, 21:22)
Die ersten 10 Einträge auslesen:
$VON = 0;
$BIS = 10;
for ($i = $VON; $i < $BIS+1; $i++) {
//Ausgeben
}
Die nächsten 10 Einträge:
$VON = 10;
$BIS = 20;
for ($i = $VON; $i < $BIS+1; $i++) {
//Ausgeben
}
und so weiter...
verstanden?
Das wäre Murks. Da dürfen doch keine absoluten Zahlen in die Schleife, sonst muß das doch an die Beitragszahlen jedes Mal angepasst werden. Das muß sich anhand der Beitragszahl automatisch berechnen und auch der Link zum weiterblättern muß automatisch generiert werden, sonst frickelt man doch laufend am Script rum, wenn wieder 10 Beiträge mehr sind. (wäre meine Meinung dazu. Das ist doch das, was eine dynamische Seite ausmacht.)
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
#29
geschrieben 04. Mai 2008 - 16:16
Ich muss ja die Daten zeilenweise von der *.txt Datei einlesen
$myarray = file($filename);
Dann muss ich ja die ganzen Zeilen zählen
$zahl=count($myarray);
dann brauch ich ja eine Variable für die Seitenzahl, da werden alle Einträge gezählt und dann durch die Anzahl der Einträge (bei mir 10) geteilt
$seiten=ceil($zahl/10);
dann noch eine startanweisung
if (isset($_GET['start'])) $start=$_GET['start'];
else $start="0";
Ich weiß nur noch nicht so recht wie ich den Hauptteil jetzt angehen soll:-(
#30
geschrieben 04. Mai 2008 - 16:26
Zitat (Dyon: 04.05.2008, 17:16)
Ich muss ja die Daten zeilenweise von der *.txt Datei einlesen
$myarray = file($filename);
Dann muss ich ja die ganzen Zeilen zählen
$zahl=count($myarray);
dann brauch ich ja eine Variable für die Seitenzahl, da werden alle Einträge gezählt und dann durch die Anzahl der Einträge (bei mir 10) geteilt
$seiten=ceil($zahl/10);
dann noch eine startanweisung
if (isset($_GET['start'])) $start=$_GET['start'];
else $start="0";
Ich weiß nur noch nicht so recht wie ich den Hauptteil jetzt angehen soll:-(
Also in meinem Beitrag #25 ist doch eigentlich alles drin. Mehr steht auf meiner Seite auch nicht
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
- ← Xcopy Auf Ein Netzwerkpfad?
- Skript/Web-Programmierung
- Youtube Plugin Mit Thumbnail Für Wordpress →

Hilfe
Neues Thema
Antworten
Nach oben




