Moin!
Probiere doch mal
if ( $Verfassen ) { ... }
if ( $Eintragen ) { ... }
Vorsicht! Du kannst nicht bei allen PHP-Installationen davon ausgehen, dass die vom Formular geschickten Werte als globale Variablen angelegt werden. In den neuen PHP-Versionen ist dieses Verhalten sogar standardmäßig abgeschaltet!
Der Trick, der dahinter steht, ist folgender: Ein Submitbutton hat name und value - und nur das name/value-Paar des geklickten Submitbuttons wird übertragen. Der Value ist meist für die vernünftige Beschriftung auf der Webseite gedacht, aber alleine die Existenz des name ist Beweis genug, welcher Button geklickt wurde.
Das bedeutet: Du mußt nur noch prüfen, ob ein Wert mit dem Namen des jeweiligen Buttons geklickt wurde.
Die obige Variante ist dabei ziemlich böse: Sie funktioniert immer dann, wenn der Variableninhalt von $Verfassen oder $Eintragen als "wahr" evaluiert. Es gibt aber auch Variableninhalte, bei denen der Ausdruck "falsch" wird, obwohl der Submit-Button geklickt wurde!
Deshalb: Prüfe erstens nicht die globalen Variablen, sondern $_GET bzw. $_POST (bzw. bei alten PHP-Versionen $HTTP_GET_VARS bzw. $HTTP_POST_VARS). Wenn dein Button 'verfassen' heißt, also mit $_GET['verfassen']
Zweitens: Wenn du wissen willst, ob eine Variable gesetzt ist, prüfe mit der Funktion isset().
Zusammengenommen:
if (isset($_GET['verfassen'])) { ... }
if (isset($_GET['eintragen'])) { ... }
Danke! Ich wußte doch, dass es bestimmt ganz einfach geht.
Der Teufel steckt im Detail. Da du jetzt weißt, dass nur der geklickte Submitbutton als Name/Value-Paar übermittelt wird, kannst du das auch auf Perl, ASP, JSP, ColdFusion etc. übertragen... (kleiner Seitenhieb an die Ich-geb-dir-den-Code-sofort-Fraktion :-> )
- Sven Rautenberg
Diese Signatur gilt nur am Freitag.