# Wurde das Formular gesendet ?



## Yoda (14. August 2003)

Tag auch, 
wenn ich ein Formular mit PHP verarbeiten will, mache ich das immer auf einer Seite, d.h. das Formular verweist immer auf die selbe Seite. Mit PHP will ich dann überprüfen ob ich die Angaben jetzt bearbeiten muss, also ob der User auf Senden (o.ä.) geklickt hat.
Bisher habe ich das meisst so gemacht:

```
if($_POST['sendform'] == " Angaben Übernehmen ") { ...
```
Diese Variante ist jedoch sehr umständlich, da man sich verschreiben kann und ich denke es gibt bestimmt eine bessere Lösung um zu prüfen ob das Formular geysendet wurde. Hat jemand eine Idee ?
MfG Yoda


----------



## vogtländer (14. August 2003)

Du könntest die Existenz von $HTTP_POST_VARS überprüfen. Das hat bei mir immer gut funktioniert.


```
if(isset($HTTP_POST_VARS))
{
    ...
}
```

Geht natürlich nur, wenn ausschließlich durch das Absenden des Formulars Daten per POST übergeben werden.

Gruß
Falk


----------



## SonicBe@m (14. August 2003)

oder eben mit if(isset($submit))


----------



## Sebastianus (14. August 2003)

Die Variante mit "if(isset($submit))" kann fehlerhaft sein, denn wenn ich nicht auf den Submit-Button geklickt habe sondern das Formular wenn möglich mit Enter abgeschickt habe, ist submit nicht gesetzt obwohl das Formular abgeschickt wurde. Ich würde daher ganz einfach ein Feld kontrollieren lasen ob es gesetzt ist und ein POST-Variable ist und fertig ist das ganze!


----------



## SonicBe@m (14. August 2003)

Im Normalfall kannst du *kein* Formular abschicken ohne einen Submit auszulösen.
Das liegt wohl darran das der Handleevent vom Browser auf einen Submit gerichtet ist!
Wenn du 2 Submitbuttons im Formular hast und du drückst Enter dann wird er den Submitbutton ausführen der im Formular an erster Stelle steht!.
Hab nen haufen Erfahrung damit gemacht ! 
Natürlich kann man es auch 100% sicher machen die variante die selbst im Html-1 Standart funktioniert (wichtig bei Spielen wie Eve-Online)
in dem du ein Hiddenfield im Formular platzierst und auf seine Existens prüfst!

```
<?
if(isset($isSubmit){
   ...
}
?>
<input type="hidden" name="isSubmit" value="1">
```
sorry aber anders wirste es nicht sicherer bekommen!


----------



## danube (14. August 2003)

setzt einfach ein verstecktes feld im formular ein, zb:

<input type="hidden" name="status" value="abgeschickt">

dann kannst du in php folgendermassen überprüfen ob das formular abgeschickt wurde oder nicht:

if($status=="abgeschickt"){
//code
}


----------



## lambda (14. August 2003)

Verstehe das Problem gar nicht... normalerweise braucht man doch ein Formular um Daten zu senden, oder? 

Wenn man doch ganz sauber mit isset() prüft, ob die Daten die man verarbeiten will da sind, hat man das ganze doch, oder?


----------



## Fabian H (14. August 2003)

Und bitte immmer dran denken, dass es auch PHP-Installationen fibt, bei denen register_globals auf off steht.
Also schön brav _POST und _GET davorschreiben 
Wenn nicht sicher ist, ob das Formular post oder get is, kann man auch auf das Array _REQUEST zurückgreifen, das ist eine Mischung aus _POST, _GET und _COOKIE


----------



## Yoda (14. August 2003)

Erstmal danke,
@Nuinmundo: die ganzen Superglobalen Arrays sind mir schon bekannt , trotzdem danke für deine Mühe.
Ansonsten werde ich wohl die hiddenfeld isset() combo benutzen .
MfG Yoda


----------

