formular
anton
- php
hi,
wie mach ich es das ich ein eingabe feld habe wo ich was eingeben kann.
wenn ich dann auf abschicken klicke wird der inhalt des eingabe felds in der variabel $text gespeichert?
oder kann mir jemand sagen wo ich das nachlesen kann?
Hallo,
http://at.php.net/manual/en/tutorial.forms.php
gruß,
Severin
hi,
o.k jetzt habe ich z.b:
<form action="action.php" method="POST">
Your name: <input type="text" name="name" />
<input type="submit">
</form>
aber wie rufe ich das jetzt in action.php auf?
mit $name oder wie?
Hallo,
mit $name oder wie?
Ja, wenn register_globals in Deiner php.ini auf "on" stehen (PHP Version < 4.2 AFAIK), das sollte man aber aber aus Sicherheitsgründen auf "off" belassen.
Ansonsten gilt dass Du Deine Werte je nach verwendeter Methode entweder in der Superglobalen $_POST (in Deinem Bsp.) oder $_GET findest. Es gibt auch noch $_REQUEST; in dieser befinden sich alle Post-, Get- und Cookie-Parameter...
Also in Deinem Fall bekommst Du den Inhalt Deines Eingabefeldes über:
echo( "Your name: " . $_POST["name"] );
Grüsse AndreD
Hallo,
mit $name oder wie?
Ja, wenn register_globals in Deiner php.ini auf "on" stehen (PHP Version < 4.2 AFAIK), das sollte man aber aber aus Sicherheitsgründen auf "off" belassen.
Ansonsten gilt dass Du Deine Werte je nach verwendeter Methode entweder in der Superglobalen $_POST (in Deinem Bsp.) oder $_GET findest. Es gibt auch noch $_REQUEST; in dieser befinden sich alle Post-, Get- und Cookie-Parameter...
Also in Deinem Fall bekommst Du den Inhalt Deines Eingabefeldes über:echo( "Your name: " . $_POST["name"] );
Grüsse AndreD
danke,
aber so brauch ich das nicht ich habe das geschireben:
<?PHP
$fp = fopen ("speicher","r");
$zahl = fgets($fp,30);
fclose($fp);
$zahl++;
echo $zahl;
$fp = fopen ("speicher","w");
fwrite($fp,$zahl,10);
fclose($fp);
<form action='speicher.php' method='POST'>
Name: <input type='text' name='name' />
<input type='submit'>
</form>
$fp = fopen ("namespeicher","n");
fwrite($fp,$name,10);
fclose($fp);
?>
es soll bewirken das zuerst die zahl x da steht und darunter
soll man seinen namen eingeben der auch gespeichert wird,
wie mach ich das?
action='speicher.php' <-- kann in meinen fall nicht stimmen den für was soll ich eine neue datei aufrufen
und irgendwo muss noch ein fehler sein ich kann ihn aber nicht finden.
Hi,
<form action='speicher.php' method='POST'>
Name: <input type='text' name='name' />
<input type='submit'>
</form>
schon mal was von echo "<HTML TAG></HTML TAG ENDE>"; gehört?
es soll bewirken das zuerst die zahl x da steht und darunter
soll man seinen namen eingeben der auch gespeichert wird,
wie mach ich das?action='speicher.php' <-- kann in meinen fall nicht stimmen den für was soll ich eine neue datei aufrufen
und irgendwo muss noch ein fehler sein ich kann ihn aber nicht finden.
Irgendwie würde ich mal ein deiner Stelle deinen ganzen Code überarbeiten und vorher bei www.php.net vorbeischaun. Dann erledigen sich viele Fragen!
Gruß ... Simon
hi,
ich habe jetzt ein bishen herumgestöbert und meinen script ausgebessert:
<?PHP
$fp = fopen ("speicher","r");
$zahl = fgets($fp,30);
fclose($fp);
$zahl++;
echo $zahl;
$fp = fopen ("speicher","w");
fwrite($fp,$zahl,10);
fclose($fp);
echo "
<html>
<form action='$PHP_SELF' method='post'>
<input type='text' name='name' value='$email'>
<input type='submit' value='Abschicken'>
</form>
</html>
";
$fp = fopen ("emailspeicher","w");
fwrite($fp,$email,10);
fclose($fp);
?>
aber zwei sachen versteh ich noch nicht:
hi, warum kommen hier fehler meldungen:
<?PHP
echo "
<html>
<head>
</head>
<body>
";
if(strlen($email) > 0)
echo "
Ende
";
else
$fp = fopen ("speicher","r");
$zahl = fgets($fp,30);
fclose($fp);
$zahl++;
echo $zahl;
echo "
<form action='$PHP_SELF' method='post'>
<input type='text' name='email' value='$email'>
<input type='submit' value='Senden'>
</form>
";
$fp = fopen ("speicher","w");
fwrite($fp,$zahl,10);
fclose($fp);
$fp = fopen ("emailspeicher","e");
fwrite($fp,$email,30);
fclose($fp);
echo "
</body>
</html>
";
?>
ich habe alle datein auf 777 gesetzt was ist hier falsch?
es kommen folgende fehlermeldungen:
fopen(emailspeicher): failed to open stream: Success
fwrite(): supplied argument is not a valid stream resource
fclose(): supplied argument is not a valid stream resource
Hallo,
hi, warum kommen hier fehler meldungen:
Bitte poste nur den relevanten Quellcode. Danke.
fopen ("emailspeicher","e");
Der Parameter "e" ist falsch.
Lies endlich das Manual zu fopen()
http://www.php.net/manual/en/function.fopen.php
http://www.php.net/manual/de/function.fopen.php
Und auch die dclp-FAQ zum Thema:
http://www.dclp-faq.de/q/q-datei-lesen.html
Lass Dir unmittelbar nach fopen() eine Meldung anzeigen,
wenn es nicht geklappt hat, z.B. so:
fopen ("emailspeicher","w") OR die("Fehler mit Datei emailspeicher");
Gruesse,
Thomas
Hello alle zusammen,
da stellt "anton" eine Frage, etwas ungeschickt in der fachlichen Formulierung und auch nicht in dem Tonfall, der gleich bereitwillig beantwortet würde...
Vielleicht hätte er sich dafür auch "Antonia" nennen müssen?
Jedenfalls denke ich so: Oh, ganz simple Sacche das, schaust mal, wie sich der Thread entwickelt.
Na, und so nebenbei könnte man doch mal eine gaaanz einfache Lösung produzieren, die ihm das Affenformular näher bringt, einen Aufrufzähler mitlaufen lässt, und die eingegeben Daten immer wieder zur Verfügung stellt. Na, und wenn man das schon macht, dann doch gleich mit einer vernünftigen[tm] Datenstruktur, also Speicherung der Daten in einem serialisierten Array.
Ist doch für Profis, wie uns, 'nen Klacks. *gnicker*
Gesagt, getan. Die paar Zeilen hämmere ich doch mit Links in die Tastatur.
Denkste!
Der Teufel steckt nämlich im Detail: Der Zähler soll ja nicht zum Client durchgeschleift werden, sondern dort nur angezeigt werden.
Also erst das File auslesen
Zähler erhöhen
wieder wegschreiben
Telefon klingelt...
Und wenn jetzt ein Post vorlag?
Ja, dann hätten doch die Post-Data auch gescihert werden müssen.
Ok, aber nicht den Zähler überschreiben.
Und dann wieder anzeigen.
Muss jetzt der alte oder der neue Zähler angezeigt werden? Mmmh.
Und wenn nun doch keine Postdaten vorlagen?
Telefon klingelt...
Also wie war das jetzt mit der Reihenfolge. Da gabs doch die Affenregel für die Reihenfolge:
Schreiben (aber nur bei Post)
Lesen (immer)
Anzeigen (immer)
Ja, aber wenn ich doch nach dem Lesen nicht mehr schreibe, wird ja der Zähler nicht aktualisiert und wenn ich schreibe, sind doch die Daten futsch. Wurde doch nix gepostet, oder?
Ach jah, un das ganze um diese Zeit ohne den Genuß von Wein oder Bier. Apropos, es ist ja schon dunkel. Ich könnte mir ja mal eins holen.
Telefon klingelt...
Au mann, wass die wieder wissen wollen heute.
Na, ich denke, das Beispiel wird heute nicht mehr fertig.
*grins*
Und das nach ca. 700 Skripten, die fehlerfrei laufen, teilweise über 250kByte groß
Wollt Ihr da allen Ernstes von einem Anfänger (zumindest hat er nicht das Gegenteil behauptet bisher) erwarten, dass er sofort alles richtig macht?
Ich put mich hier ja nur ungern, aber ich denke,
"immer schön auf dem Tecppich bleiben, Leute"
In diesem Sinne. Auf dass sich auch morgen noch Anfänger vertrauensvoll an uns wenden. Wir waren schließlich auch mal welche!
Liebe Grüße aus http://www.braunschweig.de
<img src="http://bitworks.de/~images/Absturz2.gif" border="0" alt="">
Tom
hi,
ich habe mir jetzt einiges durchgelesen was mir aber auch nicht weiterhilft. mein derzeitiger code schaut so aus:
<?PHP
echo "
<html>
<head>
</head>
<body>
";
if(strlen($email) > 0)
echo "
Ende
";
else
$fp = fopen ("speicher","r");
$zahl = fgets($fp,5);
fclose($fp);
$zahl++;
echo $zahl;
echo "
<form action='$PHP_SELF' method='post'>
<input type='text' name='email' value='$email'>
<input type='submit' value='Senden'>
</form>
";
$fp = fopen ("speicher","w");
fwrite($fp,$zahl,10);
fclose($fp);
$fp = fopen ("emailspeicher","w");
fwrite($fp,$email,30);
fclose($fp);
echo "
</body>
</html>
";
?>
aber es kommen immer noch fehler, wenn ich auf senden klicke wird zwar die email gespeichert aber $zahl ist aufeinmal wieder 0 und es kommt die fehlermeldung:
fgets(): supplied argument is not a valid stream resource
fclose(): supplied argument is not a valid stream resource
was bedeuten die?
was habe ich falsch gemacht?
Hallo "Anton",
Zuerst mal: Ich finde es total doof, dass Du mir
1. ein Mail geschickt hast, um mich zu einer Antwort zu draengen.
2. in diesem Thread einen anderen Namen verwendest
als den Vor- und Nachnamen, mit dem Du frueher
jeweils gepostet hast.
fgets(): supplied argument is not a valid stream resource
fclose(): supplied argument is not a valid stream resourcewas bedeuten die?
Dass PHP nicht von der Datei lesen kann oder so ...
was habe ich falsch gemacht?
1. Du hast nicht geprueft, ob fopen() erfolgreich war,
wie ich Dir empfohlen hatte und wie es auch
in der dclp-FAQ, die ich verlinkte, angegeben ist.
2. Du hast nicht gesagt, in welchen Zeilen die
Fehlermeldungen auftreten.
Da vergeht mir echt die Lust, Dir zu helfen. Sorry.
Dass Du gemaess Deiner Website erst in der "6 Klasse"
(Gymnasium) bist, entschuldigt einiges, aber nicht alles.
Gruesse,
Thomas
P.S. Vermutlich solltest Du nach else einen Block mit { und } machen.
Und statt die Variable aus dem Formular mit $email zu verwenden,
solltest Du auf $_POST['email'] bzw. $_REQUEST['email'] zugreifen.
http://www.dclp-faq.de/q/q-formular-variablen.html
PHP-Manual: Predefined Variables (englisch, die deutsche
Uebersetzung ist unvollstaendig/veraltet)
http://www.php.net/manual/en/language.variables.predefined.php und
http://www.php.net/manual/en/reserved.variables.php
Hallo Simon,
Deine Antwort finde ich nicht gerade hilfreich.
<form action='speicher.php' method='POST'>
Name: <input type='text' name='name' />
<input type='submit'>
</form>
schon mal was von echo "<HTML TAG></HTML TAG ENDE>"; gehört?
Was willst Du damit sagen?
Bei Input ist das End-Tag verboten.
http://www.w3.org/TR/html401/interact/forms.html#edef-INPUT
"Start tag: required, End tag: forbidden"
In HTML schreibt man deswegen:
<input type='text' name='name'>
In XHTML:
<input type='text' name='name' />
Das einzige, was man an dem Formular kritisieren koennte,
waere das fehlende Value-Attribut beim Submit-Button.
Es ist nicht vorgeschrieben, aber sinnvoll.
Ohne Vorgabe schreiben die Browser schreiben halt dann
selbst etwas in "Ihrer Sprache" hin, z.B.
"Anfrage senden" (MS IE 5.0 dt.)
"Absenden" (Opera 5.12 dt.)
"Submit Query" (Mozilla 1.2.1 en.)
In HTML 4.01 Strict muss der Inhalt des Formulars
noch einmal in einem Block-Level-Element stehen, z.B. so:
<form action='speicher.php' method='POST'>
<p>
Name: <input name='name'>
<input type='submit'>
</p>
</form>
Das ist valide.
Gruesse,
Thomas
Hallo,
action='speicher.php' <-- kann in meinen fall nicht stimmen den für was soll ich eine neue datei aufrufen
Ueberlege Dir genau, was wann passieren soll.
Im einfachsten Fall hat man
1. Ein (statisches) HTML-Formular, das im Browser ausgefuellt wird
2. Ein PHP-Skript, das auf dem Server das Formular verarbeitet
und irgendetwas mit den Daten tut, z.B.
- Anzeigen (d.h. HTML-Ausgabe an Browser schicken)
- speichern (in Datenbank oder Text-Datei)
- als Mail verschicken.
Manchmal kombiniert man zwei Dinge in
ein und dem selben Skript.
Das Formular wird dann "an sich selbst geschickt",
d.h. das ACTION-Attribut hat die URL des Formulars
selbst.
Das Skript unterscheidet dann, ob es
a) "einfach so" aufgerufen wurde (=> Ausgabe des Formulars),
oder ob es
b) "mit Daten" (GET/POST-Parametern) aufgerufen
wurde (=> Verarbeitung der Daten).
Beliebt ist das sogenannte "Affenformular", das immer
wieder an sich selbst geschickt wird, bis alle Eingaben
vollstaendig sind, und erst dann die Daten verarbeitet:
http://www.dclp-faq.de/q/q-stil-normalform.html
Lies auch mal alle Eintraege in der dclp-FAQ:
http://www.dclp-faq.de/ch/ch-webvariablen.html
Gruesse,
Thomas
hallo
wie mach ich es das ich ein eingabe feld habe wo ich was eingeben kann.
versuchs mal mit input-tags
wenn ich dann auf abschicken klicke wird der inhalt des eingabe felds in der variabel $text gespeichert?
schon möglich ... arbeite aber besser mit der post-variante der datenübermittlung
oder kann mir jemand sagen wo ich das nachlesen kann?
http://selfhtml.teamone.de - vermutlich unter html/formulare
http://www.php.net
cu
ulli