zero: php/html $_POST oder doch action= "$SERVER[PHP_SELF]"

hallo,

ich brauch eure meinung :). ist $_POST() besser oder doch ein php Datei, wo ich ein textbox erstelle(  <form id="form1" name="speichern" method="post" action="$SERVER[PHP_SELF]" >) und dabei beim action: action="$SERVER[PHP_SELF]" verwende ? Somit geschieht alles nur in einer Datei, also nicht wie herkömmlich von einer html-Datei an eine php-Datei posten.

Naja da wird auch der $_POST Befehl verwendet, aber dafür keine andere Datei geöffnet.

Es schaut so aus:
<body>
  <form id="form1" name="speichern" method="post" action="$SERVER[PHP_SELF]" >
...
 <input name="textbox1" type="text" value="Bitte füllen..." />
...
</form>

<?php
$text = $_POST["textbox1"];
if(!empty($text)){
...
echo "Daten erfolgreich gespeichert.<br>";
...
}else{
echo "Die Textboxe sind leer!<br>";
}
?>
</body>

... = andere code-stücke

das funktioniert auch, aber ich weiß nicht was besser wäre.

ich bin schon auf eure meinung gespannt :)

danke und lg,
zero

  1. Hi,

    ich brauch eure meinung :).

    Kommt:

    ist $_POST() besser oder doch ein php Datei, wo ich ein textbox erstelle(  <form id="form1" name="speichern" method="post" action="$SERVER[PHP_SELF]" >) und dabei beim action: action="$SERVER[PHP_SELF]" verwende ?

    Wenig Sinn erkennbar in dieser Fragestellung.

    Somit geschieht alles nur in einer Datei, also nicht wie herkömmlich von einer html-Datei an eine php-Datei posten.

    OK, langsam wird's klar. Warum denn nicht gleich so ...

    Naja da wird auch der $_POST Befehl verwendet, aber dafür keine andere Datei geöffnet.

    $_POST ist kein Befehl, sondern ein superglobales Array.

    das funktioniert auch, aber ich weiß nicht was besser wäre.

    Wenn du den Nutzer ggf. auf fehlerhafte/fehlende Eingaben hinweisen willst, und dabei die bisherigen Eingaben beibehalten willst, ist ein Script, welches dynamisch das Formular erzeugt und die Daten "an sich selbst" posten laesst - auch bekannt als Affenformular - sicher zweckmaessiger.

    MfG ChrisB

    1. Wenn du den Nutzer ggf. auf fehlerhafte/fehlende Eingaben hinweisen willst, und dabei die bisherigen Eingaben beibehalten willst, ist ein Script, welches dynamisch das Formular erzeugt und die Daten "an sich selbst" posten laesst - auch bekannt als Affenformular - sicher zweckmaessiger.

      MfG ChrisB

      Yeah, you are right

      thank you very much,
      zero

  2. ich hab selber ein fehler eingebaut, tschuldigung und zwar
    statt <body> habe ich echo verwendet, also mit echo ein texbox erstellt

    Es schaut so aus:
    <?php
    echo "<form method='post' action='$SERVER[PHP_SELF]' />";
    echo "Type Here: <input type='text' name='textbox1' value='' size='70'><br />";
    echo "<input type='submit' value='speichern' />";
    echo "</form>";

    $text = $_POST["textbox1"];
    if(!empty($text)){
    ...
    echo "Daten erfolgreich gespeichert.<br>";
    ...
    }else{
    echo "Die Textboxe sind leer!<br>";
    }
    ?>

    lg,
    zero

    1. Hi,

      echo "<form method='post' action='$SERVER[PHP_SELF]' />";

      das ist übrigens gleich dreifach falsch.
      1. das Form-Tag ist nicht inhaltslos und kann nicht direkt geschlossen werden,
      2. wegen der single quotes wird im HTML '$SERVER[PHP_SELF]' ausgegeben,
      3. und selbst "$SERVER[PHP_SELF]" wäre fehlerhaft, da 'PHP_SELF' keine Konstante ist.
      Du solltest unbedingt das error_reporting während der Entwicklung aktivieren.

      Und da $SERVER['PHP_SELF'] darüber hinaus auch manipulierbar ist, wäre die Zeile schließlich so anzugeben:
      echo '<form method="post" action="'.$_SERVER['SCRIPT_NAME'].'">';

      freundliche Grüße
      Ingo