24. Februar 200322 j Hallo Leute, ich habe ein kleines Problem... ein einfaches Skript zur Veranschaulichung des Problems... Das Formular ruft sich selbst auf, damit spar ich mir den CGI-Kram fürs erste, nur um mal das Wesentliche besser darzustellen ****************************************************************** <FORM METHOD="post" ACTION="formular.php" enctype="multipart/form-data"> Betreff:<br> <INPUT TYPE="text" NAME="betreff" SIZE="40" MAXLENGTH="40" VALUE="betreff..."><br> <input TYPE="submit" VALUE="Abschicken"> </form> <? echo "Betreff: $betreff"; ?> ****************************************************************** Fehlermeldung: Notice: Undefined variable: betreff in C:\Programme\Apache Group\Apache\htdocs\test\formular.php on line 15 Betreff: Alles funktioniert wie es soll, der Interpreter funzt, der Server funzt und sonst alles was ich bisher in PHP geschrieben habe. Nur die Übergabe von Parametern funzt nicht... Aber eben genauso habe ich es überall nachgelesen, dass Daten aus Formularen, eben so übergeben werden??? Wer kann helfen??
24. Februar 200322 j Hi, $betreff hat beim ersten Aufruf des Formulars noch keine Zuweisung, also noch keinen Inhalt. Fang das mit if (isset ($betreff)) { echo "Betreff: " .$betreff; } [/PHP] ab. isset(); überprüft, ob eine Variable wirklich existiert. Ansonsten empfehle ich dir im Bezug auf Formularen die sich selber wieder aufrufen einige Schalter einzubauen, z.B. mit einem Hidden Input der eine $action Variable übergibt und dann kannst du immer beim Aufrufen der php-Seite abfangen ob das Formular abgesendet wurde und darauf reagieren. Wenn du willst geb ich dir ein Beispiel wenn dir nicht klar ist was ich meine
24. Februar 200322 j und wir gewöhnen uns ab mit Globals zu arbeiten: http://www.php.net/manual/de/security.registerglobals.php
24. Februar 200322 j Super Posting, und übersetzt für Unwissende heisst das? Ich denke nicht das du ihm damit weiterhilfst. Ausserdem, für ein simples Kontaktformular ist das etwas überzogen, oder?
24. Februar 200322 j Originally posted by Spike Super Posting, und übersetzt für Unwissende heisst das? Ich denke nicht das du ihm damit weiterhilfst. Das heißt das seit PHP 4.1 Register_Globals in der php.ini auf off stehen. Vielleicht ist der hier etwas verständlicher: http://fachinformatiker-world.de/forums/showthread.php?threadid=41094&highlight=RegisterGlobals Ansonsten mal die Suchfunktion benutzen, es gibt alle paar Tage eine Frage dazu: http://fachinformatiker-world.de/forums/search.php?action=showresults&searchid=128162&sortby=lastpost&sortorder=descending
24. Februar 200322 j Eben. seit einiger Zeit wird empfohlen die Variante $_POST["betreff"]; zu verwenden. Also in diesem Fall um genau zu sein so: echo "Betreff: " . $_POST["betreff"]; Warum das so ist kannst du in den oben gelinkten Seiten lesen, was zu empfehlen ist.
25. Februar 200322 j Achso damit man sicherstellt das niemand Variablenwerte per Cookie in dein Script "einschmuggeln" kann? Ich hab das bisher einfach immer mit isset() überprüft, werd meine Scripte dann nochmal anpassen denke ich. Danke
25. Februar 200322 j warum erfindet man eine Programmiersprache die doch sowieso nur wieder von C/C++ abgeleitet ist??? - ist doch alles derselbe Kram Kleines Bsp.: in C kann man doch den Datentyp einer Variable vor der Benutzung genau definieren... gesagt, getan - nie wieder ein Problem in PHP bleibt das aus, doch es gibt wieder extra zig Funktionen um den Datentypen festzustellen... ... wo ist da der Sinn???
28. Februar 200322 j Originally posted by solvery warum erfindet man eine Programmiersprache die doch sowieso nur wieder von C/C++ abgeleitet ist??? - ist doch alles derselbe Kram Hallo solvery! Das macht wenig Sinn für das geschilderte Problem, die Philosophie von PHP in Frage zu stellen. Wenn alle mit C++ arbeiten würden, wäre das bestimmt schön für dich, aber wenig sinnvoll. Ähnlich wäre eine Frage wie: "Die europäischen Sprachen sind alle vom Latien abgeleitet, warum sprechen alle trotzdem andere Sprachen?" Sorry wg. OT, SCNR Florian
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.