If anweisung bei submit betatigung

hallo zusammen

wie kann ich bei klick auf submit(html) eine oberhalb geschriebene php if-anweisung ausgeführen? genauer genommen soll überprüft werden ob formularfelder bestimmte typen beinhalten oder leer sind.
wie kann ich das realisieren?

danke im voraus

if anweisung bei submit betatigung
hallo zusammen

wie kann ich bei klick auf submit(html) eine oberhalb
geschriebene php if-anweisung ausgeführen? genauer genommen
soll überprüft werden ob formularfelder bestimmte typen
beinhalten oder leer sind.
wie kann ich das realisieren?

danke im voraus

ps: kann ich vllt in der anweisung angeben dass sie bei klick auf
„$name von submit“ ausgeführt wird?

Hallo

Meinst du so?

<?php if ( (isset($_POST['name'])) and (ereg('[A-Za-zÄÖÜäöüß]+',$_POST['name'])) and (isset($_POST['nummer'])) and (ereg('[1-9][0-9]*',$_POST['nummer'])) and (isset($_POST['gewicht'])) and (ereg('[0-9]+(,[0-9]+)?',$_POST['gewicht'])) )<br />{ //Anweisung bei korrekt ausgefülltem Formular }}
else {
?\><?php } ?>

Die Bedingungen in einer if-Anweisung werden von links nach rechts abgearbeitet. Bei and-verknüpften Bedingungen wird nach der ersten unwahren Bedingung abgebrochen. So kann man immer erst auf Vorhandensein von Variablen prüfen und nur falls die Variable existiert wird der Inhalt geprüft.
Für die Syntax von regulären Ausdrücken siehe http://de.wikipedia.org/wiki/Regex

Was willst du dann mit den Formulareinträgen machen? Je nach Verwendungszweck müssen die Werte unbedingt auf unerwünschte Inhalte geprüft werden, sonst enstehen riesige Sicherheitslücken.

Gruß Johannes

hi johannes

danke für die schnelle antwort

Was willst du dann mit den Formulareinträgen machen?

sie sollen per erst an eine andere php seite und dann per email verschickt werden.

eigentlich hab ich mir das iwie einfacher vorgestellt aba werds mal versuchen

nochmal danke

noch eine frage:
wo soll denn der von dir geschriebene code hin?

noch eine frage:
wo soll denn der von dir geschriebene code hin?

Gegenfrage:
Wie sieht dein Code bisher aus?

Und zum Weiterverarbeiten mal ein paar Links:
-In einer HTML-Seite anzeigen: http://de.php.net/manual/de/function.htmlspecialchar…
-Per Email versenden: http://www.heise.de/security/Versandkontrolle–/arti…
-In Datenbank eintragen: http://de.wikipedia.org/wiki/SQL-Injection

hi

Wie sieht dein Code bisher aus?

bisher hab ich sowas verzapft

<?php if ($uservorname =="" or $usernachname =="" or $userort =="" or $useremail =="")
echo "Bitte überprüfen Sie Ihre Eingaben" ?\> davor is natürlicch form action zu der seite wo die email verschickt wird usw. natürlich klappt es so nicht

Moin,

Ich denke, am einfachsten für dich ist, die Prüfung ins Zielskript zu schreiben. Also du schickst alles was du hast ans Zielskript und prüfst ob jede Variable mit Daten gefüllt ist, und wenn das nicht der Fall ist, rufst du die vorhergehende Seite erneut auf. Du kannst ja auch, um dem User die Abwicklung etwas einfacher zu machen, die schon ausgefüllten Daten per „hidden-input“ wieder mit zurückschicken und dort einbinden. Somit muss der User, wenn er zum Bleistift nur vergessen hat, seinen Nachname anzugeben o.ä. nicht wieder alles eintippen.

Grüße Marco

hi

Wie sieht dein Code bisher aus?

bisher hab ich sowas verzapft

<?php // POST DATEN IN VARS
$uservorname = $\_POST[uservorname]; $usernachname = $\_POST[usernachname]; $userort = $\_POST[userort]; $useremail = $\_POST[useremail]; // Eingabe Überprüfen $eingabenOK = true; // FehlerEingabe Meldungen $error=array(); if ($uservorname == "" ) { $eingabenOK = false; $error[uservorname]="Feld Vorname ist leer"; } if ($usernachname == "" ) { $eingabenOK = false; $error[usernachname]="Feld Nachname ist leer"; } if ($userort == "" ) { $eingabenOK = false; $error[userort]="Bitte geben sie ein Ort an."; } if ($useremail == "" ) { $eingabenOK = false; $error[useremail]="Wir benötigen eine Email."; } // Auswertung der Prüfung if ($eingabeOK) { ?\> Eingabe OK .. Mach was,,, <?php } else {
// Fehleranzeige echo "Bitte überprüfen Sie Ihre Eingaben"; foreach ($error as $errorstuff=\>$erroritem) { echo " Fehler : ".$erroritem; } } ?\> Aber dir ist klar, das es nach dem abschicken erst die fehler sieht. will man es vor dem abbschicken machen, muss man javascript im browser ausführen. Es wird immer TEXT übertragen. Überprüfung von Zahlenwerten etc muss dann mit preg\_match gemacht werden. Es gibt also nicht den Typ Integer oder double , sondern strings :smile: Aber PHP hilft, Zahlen werden automatisch umgewandelt :smile: