submit
Christoph Schönfeld
- php
0 Ben0 Christoph Schönfeld0 Ben0 Tobias K.
Also hier meine Problem. Hab ein kleines symples Gästebuch geschrieben (mit Tut :D )
Jedenfalls soll das GB auf in eine Tabelle included werden! Wenn ich jetzt im Formular auf den Submit-Button klicke, dann ist die nächste Seite (wenn felder nicht ausgefüllt sind: "Bitte füllen sie alle felder aus")aber wieder im gesamten IE angezeigt und nicht nur in der Tabelle in der sie included werden soll! siehe: www.christophschoenfeld.de.vu
kann ich denn den link eines submit buttons bestimmen?
bitte helfen
Hallo Christoph,
zeig doch mal deine eintrag.php her. :)
Viele Grüße
Ben
gb.htm
--------------------------------------
<html>
<body>
<font size="5">
Gästebuch
</font>
<br>
<?php
echo "
<form action="eintrag.php" method="post"><br>
Dein Name:<input name="name"><br>
Deine ICQ-Nummer<input name="icq"><br>
Deine E-Mailadresse<input name="mail"><br>
Dein Text:<textarea name="text"></textarea><br>
<input type="submit" value="Eintragen" name="abschicken">
</form>
";
?>
</body>
</html>
-------------------------------------
zeigen.php
-------------------------------------
<html>
<body>
<font size="5">
Gästebuch
</font>
<br>
<?php
include("gb.txt");
?>
<br>
<a href='index.php?action=gbeintrag'>Eintrag erstellen</a>
</body>
</html>
-------------------------------------
eintrag.php
-------------------------------------
<?php
if ($name != "" && $icq != "" && $mail != "" && $text != "") {
$eintrag =
"Eintrag von $name mit der ICQ-Nummer $icq und der E-Mailadresse $mail schrieb:<br><br>$text";
$datei = fopen("gb.txt", "wr");
fputs($datei, $eintrag);
fclose($datei);
?>
<html>
<body>
Eintrag gespeichert, weiter um alle Einträge <a href="index.php?action=gb">anzuzeigen</a>
</body>
</html>
<?php
}
else {
echo "Bitte alle Felder ausfüllen<br>";
}
?>
<html>
<body>
<a href="index.php?action=gbeintrag">Zurück</a>
</body>
</html>
----------------------------------
PS: ich liebe den schnellen Support hier :D
Hi,
Nimm mal die Sachen wie:
<html>
und so weiter raus und lass nur die reinen Meldungen stehen. :)
Viele Grüße
Ben
Ja ok schon, aber deshalb ist doch die Seite, wo zb. der text kommt eintrag erfolgreich oder so, trotzdem nicht in die tabelle included.
Hi,
also ich dachte, es würde daran liegen, kannst du nochmal nur die eintrag.php posten, wie du sie jetzt hast?
Viele Grüße
Ben
hab ja nichts geändert, denn ich muss doch eh den include befehl nutzen oder?
index.php?action=....
und dann inner tabelle
mit chase...
Hi,
öh, ich weiß leider nicht wirklich was du meinst... sorry.. *g*
Bin auch noch eher Anfänger in PHP.
Viele Grüße
Ben
Hallo Christoph,
<form action="eintrag.php" method="post"><br>
da hier als action eintrag.php steht geht der Browser natürlich auf diese Seite. Du musst da etwas sowas reinschreiben: /index.php?action=gb und dann in dieser Datei mit include die eintrag.php einfügen (wobei in der dann natürlich kein <html><body> usw. stehen darf)
sinnvoller dürfte es aber sein, du machst eine Datei die meinetwegen gaestebuch.php heißt und etwa so aussieht:
<?php
if(!isset($_POST["submit"])){
/* $_POST["submit"] ist nicht gesetzt d.h. das Formular wurde nicht abgeschickt. */
// hier dann das Formular ausgeben
}
else{
if(<deinebedingungen ob formular richtig ausgefüllt>){
//hier datein in datei einfügen
}
else{
//daten nicht vollständig
}
?>
und die dann immer "includest" wenn $_GET["action"] "gb" ist.
so, und jetzt noch einige Anmerkungen zu dem Code :-)
Dein Name:<input name="name"><br>
hier solltest du vielleicht noch ein type="text" hinschreiben und evtl ein size="..."
Dein Text:<textarea name="text"></textarea><br>
hier fehlt noch ein rows="" und cols="" (sonst wird das Feld auch etwas sehr klein)
im Übrigen solltest du dein Formular noch etwas positionieren das sieht so grauenvoll aus :-) (mit Tabellen *duck*)
if ($name != "" && $icq != "" && $mail != "" && $text != "") {
1. kannst du davon ausgehen, das register_globals=on ist? - da gehört $_POST["name"] usw. hin (sofern du eine neuere php-Version hast)
2. würde ich eher !empty($name) usw. verwenden
3. kann ich keinen Eintrag machen, da ich kein icq habe
4. solltest keine emailadresse vorschreiben, da manche diese vielleicht nicht angeben wollen (Spam)
$eintrag =
"Eintrag von $name mit der ICQ-Nummer $icq und der E-Mailadresse $mail schrieb:<br><br>$text";
hier solltest du noch eine \n hinter $text hängen
$datei = fopen("gb.txt", "wr");
was ist "wr" für ein Parameter? Du solltest "a" verwenden
echo "Bitte alle Felder ausfüllen<br>";
hier wäre es ideal, wenn du nochmal das Formular anzeigen würdest, mit den Daten die der User eingegeben hat.
Grüße aus Nürnberg
Tobias [der hofft dass das jetzt halbwegs verständlich war :-)]