Ich empfehle dir erstmal, mit POST und nicht mit GET zu arbeiten, das ist sicherer und vermeidet eher Spam und lange Urlanhänge.
Dann könnte ih dir auch besser helfen, die fehler zu beheben xD
Wir sammeln alle Infos der Bonusepisode von Pokémon Karmesin und Purpur für euch!
Zu der Infoseite von „Die Mo-Mo-Manie“Ich empfehle dir erstmal, mit POST und nicht mit GET zu arbeiten, das ist sicherer und vermeidet eher Spam und lange Urlanhänge.
Dann könnte ih dir auch besser helfen, die fehler zu beheben xD
meinst du alle gets durch postts zu ersetzen?
Jup, das würd ich auch machen...
aber ich soll nur die "worte" get durch die "worte" Post ersetzen?
<html>
<head>
<title>Eintragen</title>
</head>
<body bgcolor="#FFFFFF">
<?php
if( $_post["action"] == "add" )
{
if( !$_post["name"] || !$_post["mail"] || !$_post["text"] )
{
echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else
{
if( !$_post["www"] )
{
$eintrag = "<a href=\"mailto:".$_post["mail"]."\">".$_post["name"]."</a><br>".$_post["text"];
}
else
{
$eintrag = "<a href=\"mailto:".$_post["mail"]."\">".$_post["name"]."</a><br><a href=\"".$_post["www"]."\">".$_post["www"]."</a>".$_post["text"]."<hr><br><br>";
}
$datei = fopen( "gaestebuch.txt", "w+" );
fputs( $datei, $eintrag );
fclose( $datei );
echo "Danke <i>".$_post["name"]."</i> für deinen Eintrag";
?><meta http-equiv="refresh" content="5; url=http://www.jake-the-dog.de/gaestebuch/zeigen.php"><?php
}
}
else
{
?>
<font face="Verdana" size="1">
<b>Eintragen in mein Gästebuch</b><br>
<form action="eintragen.php" method="get">
Dein Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag:<br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="hidden" name="action" value="add" />
<input type="submit" value="Abschicken" name="B1" href="zeigen.php">
</form>
</font>
<?php
}
?>
</body>
</html>
Alles anzeigen
Ja, aber ich glaube, POST muss man groß schreiben, damit es funktioniert. Zumindest hab ichs noch nie klein geschrieben gesehen...
ok ich schreibe es groß...
edit:
<html>
<head>
<title>Eintragen</title>
</head>
<body bgcolor="#FFFFFF">
<?php
if( $_POST["action"] == "add" )
{
if( !$_POST["name"] || !$_POST["mail"] || !$_POST["text"] )
{
echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else
{
if( !$_POST["www"] )
{
$eintrag = "<a href=\"mailto:".$_POST["mail"]."\">".$_POST["name"]."</a><br>".$_POST["text"];
}
else
{
$eintrag = "<a href=\"mailto:".$_POST["mail"]."\">".$_POST["name"]."</a><br><a href=\"".$_POST["www"]."\">".$_POST["www"]."</a>".$_POST["text"]."<hr><br><br>";
}
$datei = fopen( "gaestebuch.txt", "w+" );
fputs( $datei, $eintrag );
fclose( $datei );
echo "Danke <i>".$_v["name"]."</i> für deinen Eintrag";
?><meta http-equiv="refresh" content="5; url=http://www.jake-the-dog.de/gaestebuch/zeigen.php"><?php
}
}
else
{
?>
<font face="Verdana" size="1">
<b>Eintragen in mein Gästebuch</b><br>
<form action="eintragen.php" method="get">
Dein Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag:<br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="hidden" name="action" value="add" />
<input type="submit" value="Abschicken" name="B1" href="zeigen.php">
</form>
</font>
<?php
}
?>
</body>
</html>
Alles anzeigen
Für die Smilies würde ich dir ne Funktion empfehlen, so z.B.
function smilies($inhalt){$inhalt = str_replace(':D:', '<img src="D.gif">', $inhalt);// Der text :D: wir hier durch das Bild D.gif ersetzt // Für weiter smilies einfach die Zeile Kopieren und anpassenreturn $inhalt;}
(Sollte Klar sein, wie du das anpassen kannst, oder? Sonst => Schreib )
Zuerst ein paar Punkte/Mängel:
Also so wie dein GB jetzt ist zeigt es immer nur EINEN Eintrag, da die alten immer überschrieben werden, das ist die klar oder? Ich vermute mal Nein.
Was meinst du mit PHP Tabellen? Du meinst wahrscheinlich HTML Tabellen, oder?
Wenn ich jetzt HTML-Code in GB schreibe wird der ausgeführt, da er nicht gefiltert wird.... (unsicher!)
Wenn ich dir den Code aufräume, bist du selber in der Lage die Smilies einzubauen?
Ich glaube Ja, das schaffst du ;-)
Daher habe ich dir jetzt den Code mal etwas "aufgeräumt":
<?php
// eintragen.php
echo '<html>
<head>
<title>Eintragen</title>
</head>
<body bgcolor="#FFFFFF">';
if( $_POST["action"] == "add" )
{
if( !$_POST["name"] || !$_POST["mail"] || !$_POST["text"] )
{
echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else
{
$www = ($_POST["www"]!='')?'<a href="'.$_POST['www'].'">[Homepage]</a>':'';
$name = addslashes($_POST["name"]);
$email = '<a href="mailto:'.addslashes($_POST["mail"]).'">[E-Mail]</a>';
$datum = date("d.m.Y - H:i", time());
$inhalt = strip_tags($_POST["text"]);
$eintrag = '<table align="center" border="1" cellspacing="0" cellpadding="5" width="50%">
<tr><td>Eintrag von <b>'.$name.'</b>
'.$www.'
'.$email.'
<br>Am '.$datum.'
<br></td>
</tr>
<tr> <td> '.$inhalt.'
</td>
</tr>
</table>
<br>';
$textfile="gaestebuch.txt";
if ($fp = @fopen ($textfile, "r+"))
{
$oldmessages = @fread($fp,filesize($textfile));
@fclose(fp);
}
$fp = fopen ($textfile, "w+");
fwrite ($fp, $eintrag);
fwrite ($fp, $oldmessages);
fclose ($fp);
echo "Danke <i>".$name."</i> für deinen Eintrag";
echo '<meta http-equiv="refresh" content="5; url=http://www.jake-the-dog.de/gaestebuch/zeigen.php">';
}
}
else
{
echo ' <font face="Verdana" size="1">
<b>Eintragen in mein Gästebuch</b><br>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
Dein Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag:<br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="hidden" name="action" value="add">
<input type="submit" value="Abschicken" name="B1" href="zeigen.php">
</form>
</font>';
}
echo '
</body>
</html>';
?>
Alles anzeigen
Teste es mal und wenn dir etwas nicht gefällt probiere es selber zu ändern, wenn es nicht geht nur fragen, wir helfen gerne.
Gruss
Riolu
Alles anzeigenFür die Smilies würde ich dir ne Funktion empfehlen, so z.B.
(Sollte Klar sein, wie du das anpassen kannst, oder? Sonst => Schreib )
Zuerst ein paar Punkte/Mängel:
Also so wie dein GB jetzt ist zeigt es immer nur EINEN Eintrag, da die alten immer überschrieben werden, das ist die klar oder? Ich vermute mal Nein.
Was meinst du mit PHP Tabellen? Du meinst wahrscheinlich HTML Tabellen, oder?
Wenn ich jetzt HTML-Code in GB schreibe wird der ausgeführt, da er nicht gefiltert wird.... (unsicher!)
Wenn ich dir den Code aufräume, bist du selber in der Lage die Smilies einzubauen?
Ich glaube Ja, das schaffst du ;-)
Daher habe ich dir jetzt den Code mal etwas "aufgeräumt":
PHPAlles anzeigen<?php // eintragen.php echo '<html> <head> <title>Eintragen</title> </head> <body bgcolor="#FFFFFF">'; if( $_POST["action"] == "add" ) { if( !$_POST["name"] || !$_POST["mail"] || !$_POST["text"] ) { echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>"; echo "Klicke auf den Backbutton deines Browsers"; } else { $www = ($_POST["www"]!='')?'<a href="'.$_POST['www'].'">[Homepage]</a>':''; $name = addslashes($_POST["name"]); $email = '<a href="mailto:'.addslashes($_POST["mail"]).'">[E-Mail]</a>'; $datum = date("d.m.Y - H:i", time()); $inhalt = strip_tags($_POST["text"]); $eintrag = '<table align="center" border="1" cellspacing="0" cellpadding="5" width="50%"> <tr><td>Eintrag von <b>'.$name.'</b> '.$www.' '.$email.' <br>Am '.$datum.' <br></td> </tr> <tr> <td> '.$inhalt.' </td> </tr> </table> <br>'; $textfile="gaestebuch.txt"; if ($fp = @fopen ($textfile, "r+")) { $oldmessages = @fread($fp,filesize($textfile)); @fclose(fp); } $fp = fopen ($textfile, "w+"); fwrite ($fp, $eintrag); fwrite ($fp, $oldmessages); fclose ($fp); echo "Danke <i>".$name."</i> für deinen Eintrag"; echo '<meta http-equiv="refresh" content="5; url=http://www.jake-the-dog.de/gaestebuch/zeigen.php">'; } } else { echo ' <font face="Verdana" size="1"> <b>Eintragen in mein Gästebuch</b><br> <form action="'.$_SERVER['PHP_SELF'].'" method="POST"> Dein Name: <input type="text" name="name" size="24"><br> E-Mail: <input type="text" name="mail" size="24"><br> Homepage: <input type="text" name="www" size="24"><br> <br> Dein Eintrag:<br> <textarea name="text" cols="35" rows="5"></textarea><br> <input type="hidden" name="action" value="add"> <input type="submit" value="Abschicken" name="B1" href="zeigen.php"> </form> </font>'; } echo ' </body> </html>'; ?>
Teste es mal und wenn dir etwas nicht gefällt probiere es selber zu ändern, wenn es nicht geht nur fragen, wir helfen gerne.
Gruss
Riolu
ich kann es gerade nich ausprobieren morgen versuche ich es mal
Kann ich ;)
Die Erklärungen sind direkt im Script.
<?php
function smilies($inhalt){ // Die Funktion Smilies wird kann jetzt in der Seite verwendet werden
$inhalt = str_replace(':D:', '<img src="D.gif">', $inhalt);// Der text :D: wir hier durch das Bild D.gif ersetzt
// Für weiter smilies einfach die Zeile Kopieren und anpassen
// $inhalt = str_replace('*DER-CODE-FUERS-SMILIE*', '<img src="*DER PFAD ZUM SMILIE*">', $inhalt);
return $inhalt;
}
// eintragen.php
echo '<html>
<head>
<title>Eintragen</title>
</head>
<body bgcolor="#FFFFFF">';
if( $_POST["action"] == "add" )
{
if( !$_POST["name"] || !$_POST["mail"] || !$_POST["text"] )
{
echo "<b>Du hast nicht alle Felder ausgefüllt !</b><br>";
echo "Klicke auf den Backbutton deines Browsers";
}
else
{
$www = ($_POST["www"]!='')?'<a href="'.$_POST['www'].'">[Homepage]</a>':'';
$name = addslashes($_POST["name"]); // Alle ' und " werden zu \' bzw. \" (Sicherheit!)
$email = '<a href="mailto:'.addslashes($_POST["mail"]).'">[E-Mail]</a>'; // Die Emailadresse wird "gesichtert" und in der variable gespeichert
$datum = date("d.m.Y - H:i", time()); //Das Datum wird festgelegt und in der variable $datum gespeichert
$inhalt = strip_tags($_POST["text"]); // HTML wird aus dem GB-EIntrag gefiltert
$inhalt = smilies($inhalt); //Der Text wird in Smilies umgewandelt (BSP. :D wird zum Bild D.gif)
$eintrag = '<table align="center" border="1" cellspacing="0" cellpadding="5" width="50%">
<tr><td>Eintrag von <b>'.$name.'</b>
'.$www.'
'.$email.'
<br>Am '.$datum.'
<br></td>
</tr>
<tr> <td> '.$inhalt.'
</td>
</tr>
</table>
<br>';
$textfile="gaestebuch.txt";
if ($fp = @fopen ($textfile, "r+"))
{
$oldmessages = @fread($fp,filesize($textfile));
@fclose(fp);
}
$fp = fopen ($textfile, "w+");
fwrite ($fp, $eintrag);
fwrite ($fp, $oldmessages);
fclose ($fp);
echo "Danke <i>".$name."</i> für deinen Eintrag";
echo '<meta http-equiv="refresh" content="5; url=http://www.jake-the-dog.de/gaestebuch/zeigen.php">';
}
}
else
{
echo ' <font face="Verdana" size="1">
<b>Eintragen in mein Gästebuch</b><br>
<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
Dein Name: <input type="text" name="name" size="24"><br>
E-Mail: <input type="text" name="mail" size="24"><br>
Homepage: <input type="text" name="www" size="24"><br>
<br>
Dein Eintrag:<br>
<textarea name="text" cols="35" rows="5"></textarea><br>
<input type="hidden" name="action" value="add">
<input type="submit" value="Abschicken" name="B1" href="zeigen.php">
</form>
</font>';
}
echo '
</body>
</html>';
?>
Alles anzeigen
Die Bilder, für die Smilies, müssen natürlich auch existieren!
Und man kann nicht :D: durch das Bild D.gif ersetzten, wenn das Bild eigentlich DD.jpg heisst! Da kommt dann das bekannte, rote X (im IE).
Edit//
Ach ja, die Smilies musst du dir zuerst natürlich irgend wo besorgen. Einfach mal googeln (z.B. Gratis SMilies)
danke an alle die mir geholfen haben jetzt funktioniert es
habe smileys eingefügt
Link entfernt - chris_g_ivi