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

Gästebucheintrage von unten nach oben

Sylnois

Mitglied
Heyho Leute

Habe wiedermal ein paar Probleme. :?
Ich hab ein simples Gästebuch mit PHP geschrieben.

Hier ist der Code zum einlesen:
PHP:
<?php
                            $eintrag=$_POST[eintrag];
                            $daten="<table  style='border-bottom:1px solid #9CB9C9; width: 460px'>
                                <tr>
                                    <td style='width: 100px'>
                                        Name
                                    </td>
                                    <td style='width:360px'>
                                        <a href=mailto:".$_POST[email].">".$_POST[name]."</a>
                                    </td>
                                </tr>
                                <tr>
                                    <td>
                                        Betreff
                                    </td>
                                    <td>
                                        <b>".$_POST[betreff]."</b>
                                    </td>
                                </tr>
                                <tr>
                                    <td valign='top'>
                                        Eintrag
                                    </td>
                                    <td>
                                        ".$_POST[eintrag]."<br><br>
                                    </td>
                                </tr>
                            </table>
                            <br>";
                            $datenbank = "daten.dat";
                            $datei = fopen($datenbank, "a");
                            if(empty($eintrag)){}
                        else{
                        fwrite($datei, $daten);}
                        ?>
und hier zum ausgeben:
PHP:
<?php
$datenbank = "daten.dat";
$datei = fopen($datenbank, "r");
fpassthru($datei);
?>
1. Wie kann ich das einsetzen von HTML-Tags in allen Feldern deaktivieren?
mit dem gehts nicht:
PHP:
$eintrag=strip_tags($eintrag);
2. Wie muss ich den Code zur ausgabe so verändern, dass der letzte Eintrag zu oberst ersichtlich ist?

Meine Seite: Xoltec Studios - Startseite

Vielen Dank
Sylnois
 
Ich würde dir folgendes raten:
htmlspecialchars wandelt < in &lt; um

Desweiteren eine Frage. Hast du keine Datenbank zur Verfügung?
Ein Gästebuch über eine Datei zu regeln empfinde ich nicht als empefehlenswert.
 
Quatsch, eine Datei ist schon ok, da passen leicht ein paar tausend Einträge rein.

Mit dem file-Befehl alles in ein Array lesen und dann mit array_reverse() umgekehrt ausgeben lassen.
 
@Gilles danke werde ich gleich mal versuchen
Edit: Hat so funktioniert.
PHP:
$eintrag = str_replace("<","&lt;",$_POST[eintrag]);
Noch was: Jetzt ersetzt er die Absätze in Leerzeichen.
@sysop Wie soll das gehen? Der Index wird doch bei jeder Aktualiserung auf 0 gesetzt?
 
Zuletzt bearbeitet:
du musst doch nur den inhalt deiner bestehenden datei in der datenbank in eine variable auslesen
$inhalt=fopen("datei");
Jetzt schreibst du eine neue variable, in der du die variable mit dem neuen sowie dem alten inhalt einfügst:
$neu="$daten
$inhalt";
jetzt leerst du deine datenbankdatei, in der vorher der inhalt drin war und schreibst dannach den neuen inhalt rein:
fwrite($datei,"");
fwrite($datei,$neu);
fclose($datei);

Fertig!!

Hoffe ich konnte helfen^^
 
du musst doch nur den inhalt deiner bestehenden datei in der datenbank in eine variable auslesen

Jetzt schreibst du eine neue variable, in der du die variable mit dem neuen sowie dem alten inhalt einfügst:

jetzt leerst du deine datenbankdatei, in der vorher der inhalt drin war und schreibst dannach den neuen inhalt rein:


Fertig!!

Hoffe ich konnte helfen^^

Geht irgendwie nicht.

Zum einlesen:
PHP:
$datenbank = "daten.dat";
$alt = fopen($datenbank, "r");
$write = fopen($datenbank, "a");
$neu=$daten.$alt;
fwrite($write, $neu);
Zum ausgeben:
PHP:
$datenbank = "daten.dat";
$datei = fopen($datenbank, "r");
fpassthru($datei);
 
Du kannst einfach bei der Ausgabe folgenden Trick gegen das Leerzeichen problem anwenden.
Mit
PHP:
echo nl2br('Nach dem * ensteht eine neue Zeile *
Ich bin eine neue Zeile');
nl2br ersetzt jeden Zeilenumbruch durch einen Html Zeilenumbruch.
Daher musst du bei der Eingabe die Zeilenumbrüche garnicht in HTML Zeilenumrüche umwandeln.

MfG

Tobi
 
Funktioniert super.
Danke!
Jetzt muss ich nur noch dieses Problem lösen.
quote_icon.png
Zitat von Flemli200
du musst doch nur den inhalt deiner bestehenden datei in der datenbank in eine variable auslesen

Jetzt schreibst du eine neue variable, in der du die variable mit dem neuen sowie dem alten inhalt einfügst:

jetzt leerst du deine datenbankdatei, in der vorher der inhalt drin war und schreibst dannach den neuen inhalt rein:


Fertig!!

Hoffe ich konnte helfen^^
Geht irgendwie nicht.

Zum einlesen:
PHP-Code:
$datenbank = "daten.dat";
$alt = fopen($datenbank, "r");
$write = fopen($datenbank, "a");
$neu=$daten.$alt;
fwrite($write, $neu);


Zum ausgeben:
PHP-Code:
$datenbank = "daten.dat";
$datei = fopen($datenbank, "r");
fpassthru($datei);

Edit:

Habs hingekriegt!

Zum einlesen:
PHP:
$datenbank = "daten.dat";
$datei = fopen($datenbank, "r+");
$alt = file_get_contents("daten.dat", true);
$neu = $daten.$alt;
fwrite($datei, $neu);

Zum ausgeben:
PHP:
if(file_exists("daten.dat")){
readfile("daten.dat");
}

Vielen Dank für die Hilfe :D
 
Zuletzt bearbeitet:
Zurück
Oben