php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2011, 15:21  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard Noch ein Affenformular

Hallo Leute,

ich habe mich jetzt durchs Forum gesucht, aber leider nicht genau mein Problem gefunden.

Also, ich möchte ein Affenformular erstellen. So weit erstmal nicht so schwer. Allerdings habe ich insgesamt 15 mögliche eingaben. Einige sind Pflichtfelder, manche nicht.
Jetzt soll es bei Überprüfung der einzelnen Werte so sein, wenn ein Wert falsch ist, soll eine Fehlermeldung ausgegeben werden wie z.B. "Vorname wurde nicht angegeben" oder "Telefonnummer ist ungültig, geben Sie eine Zahl ein".
Grundsätzlich weiß ich wie die Überprüfung funktioniert, aber ich hab da irgendwo einen Wurm dirn.

Nach absenden des Formulars prüfe ich also ob es abgesendet wurde. if(isset($_POST....

danach wollte ich jeden Wert Prüfen ob er gesetzt ist und ob er nicht leer ist. wenn das ok ist wollte ich mittels
PHP-Code:
$vorname $_POST['vorname']; 
die variable zuweisen.

Wenn es allerdings nicht stimmt mach ich das hier:
PHP-Code:
else{
       
$evorname true;
       
$form true;
       echo 
"Vorname wurde nicht ausgefüllt";
    } 
$evorname ist dafür da um die Fehlerhaften formularfelder farbig zu machen.

Naja, jetzt mein eigentliches Problem. Nachdem alle Prüfungen durch sind, soll natürlich auch etwas geschehen. In dem Fall soll der User eine Bestätigungsmail bekommen, und der Betreiber soll eine Info bekommen.

Wenn ich jetzt aber nach den Prüfungen schreibe
PHP-Code:
echo $vorname 
wird jedesmal eine Fehlermeldung generiert die mir sagt das $vorname nicht vorhanden ist. Ich poste euch mal den Code. Vielleicht hab ich nur wieder mal ne kleine Blockierung im Gehirn und sehe den Fehler einfach nicht. Um es ein wenig abzukürzen habe ich mich auf ein Formularfeld beschränkt.
PHP-Code:
<?php

  
if (isset($_POST['submit'])) {
   
$form false;
    if ((isset(
$_POST['vorname'])) && !empty($_POST['vorname'])){
        
$vorname $_POST['vorname'];
       }
    else{
       
$evorname true;
       
$form true;
       echo 
"Vorname wurde nicht ausgef&uuml;llt";
    }
        echo 
$vorname;
  } 
//ende von if isset
  
else{
      
$form true;
  }

  if (
$form){

  
?>
<form action="" method="post" >
 Name eingeben:
 <input <?php if(isset($enachname)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>type="text" name="name" value="<?php if(isset($nachname)) echo $nachname?>"/><br />
Vorname:
<input <?php if(isset($evorname)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>
         type="text" name="vorname" value="<?php if (isset($vorname)) echo $vorname?>"/><br />
Telefon:
<input <?php if(isset($etel)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>type="text" name="tel" value="<?php if(isset($tel)) echo $tel?>"/><br />
 <input type="submit" name="submit" value="ab" />
</form>
 <?php
 
}
Ich hoffe irgendwer kann mir den kleinen Tipp geben den ich brauche.
Danke
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.10.2011, 15:46  
Neuer Benutzer
 
Registriert seit: 04.08.2011
Beiträge: 23
PHP-Kenntnisse:
Anfänger
Plopo23 befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube du hast eine Klammer zu viel
PHP-Code:
((isset($_POST['vorname'])) && !empty($_POST['vorname']))
..........................^ 
Plopo23 ist offline   Mit Zitat antworten
Alt 20.10.2011, 15:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Bis auf dass Deine Einrückung sehr unübersichtlich ist und isset+empty doppelt gemoppelt, kann ich kaum einen Fehler finden.
echo $vorname; ist an der Stelle logisch falsch, wenn $_POST['vorname'] nicht gesetzt ist, allerdings Dein beschriebenes Verhalten kann ich so nicht nachvollziehen.

Hier mal etwas aufgehübscht:

PHP-Code:
<?php

// Eingabeprüfung 

if (isset($_POST['submit'])) {

    
$form false;

    if (!empty (
$_POST['vorname'])) {

        
$vorname $_POST['vorname'];

    } else {

        
$evorname true;
        
$form true;

        echo 
"Vorname wurde nicht ausgef&uuml;llt";
    }

    
// erzeugt Notice nach else !!
    
echo $vorname;

} else {

    
$form true;

}


// Formulardarstellung

if ($form) {
    
    
// FORM HTML
    
}
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:09  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard

Ok, ich habe mal deine Einrückungen übernommen Nikosch.
Stimmt, ist logisch. Wenn $vorname empty ist wird der else zweig ausgeführt und deswegen ist echo $vorname an dieser Stelle unbekannt.

ABER
An der der Stelle wo echo $vorname steht, sollen ja die Mails versendet werden. und egal ob meine Prüfungen positiv oder negativ sind, der code nach den Prüfungen wird ja immer ausgeführt. Also sind die Prüfungen ja irgendwie nutzlos. Wenn z.B. die eingabe der email-adresse vergessen wird, wird zwar geprüft ob sie !empty ist, aber auch wenn sie !empty ist wirde der danach folgende code ausgeführt, und eine mail wird niemals versendet.
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:31  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
der code nach den Prüfungen wird ja immer ausgeführt. Also sind die Prüfungen ja irgendwie nutzlos.
Nö. Nur die Aktion an dieser Stelle auszuführen ist sinnlos. Die Prüfungen sind sehr sinnvoll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:41  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard

ich sags nicht gern, aber irgendwie kann ich dir nicht richtig folgen.
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Alt 20.10.2011, 16:53  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard

Hm, ich müsste ja den code dort weiter ausführen wo
PHP-Code:
if(!empty($_POST['vorname']; 
true ist.
Aber dann hab ich ja bei 15 möglichen eingaben ein wirrwarr von verschachtelten if abfragen.
Das ist doch sciher nicht sinn und zweck
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Alt 20.10.2011, 17:04  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Du könntest bspw. $form auswerten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 20.10.2011, 17:10  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard

hm... $form benutze ich doch um mein formular zu generieren. Also wenn irgendeine eingabe empty ist wird $form auf true gesetzt weil man ja dann erneut eingeben muss. Achja und mit den verschachtelten ifs gehts ja auch nicht, weil wenn z.B. die erste bedingung false ist werden die andren ja nicht mehr geprüft.
sorry, aber ich steh gerade voll aufm schlauch, und der ist riesig.
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Alt 20.10.2011, 18:12  
Erfahrener Benutzer
 
Registriert seit: 15.08.2011
Beiträge: 104
PHP-Kenntnisse:
Anfänger
maikh befindet sich auf einem aufstrebenden Ast
Standard

So, an alle!

Jetzt habe ich noch eine Weile gegooglet und gelesen und hab folgendes zusammen gebaut.

PHP-Code:
<?php

  
if (isset($_POST['submit'])) {

    
$form false;
    
$errors = array();

    if (empty (
$_POST['vorname'])){
          
$errors[] = "Bitte geben Sie ihren Vornamen ein.<br />";
          
$evorname true;
          
$form     true;

    } else {

        
$vorname $_POST['vorname'];

       }
    if (empty(
$_POST['name'])){
        
$errors[] = "Bitte geben Sie ihren Nachnamen ein.<br />";
        
$enachname true;
        
$form true;

    } else {
        
$nachname $_POST['name'];
    }
    if (empty(
$_POST['tel'])){

        
$errors[] = "bitte geben sie ihre Telefonnummer an.<br />";
        
$etel true;
        
$form true;

    } else {

        
$tel $_POST['tel'];
    }
       if (isset(
$errors) AND !count($errors)){

                  echo 
"Eingabe erfolgreich";
       }
       else{
           if(isset(
$errors)){
               echo 
"sorry, ihre daten konnten nicht verarbeitet werden.<br />";
               foreach (
$errors as $error)
                   echo 
$error;
           }
       }




    
// erzeugt Notice nach else !!

} else {

    
$form true;

}
if (
$form){

  
?>
<form action="" method="post" >
 Name eingeben:
 <input <?php if(isset($enachname)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>type="text" name="name" value="<?php if(isset($nachname)) echo $nachname?>"/><br />
Vorname:
<input <?php if(isset($evorname)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>
         type="text" name="vorname" value="<?php if (isset($vorname)) echo $vorname?>"/><br />
Telefon:
<input <?php if(isset($etel)){
         echo 
'style="background-color: #FF0000;"';
         }
         
?>type="text" name="tel" value="<?php if(isset($tel)) echo $tel?>"/><br />
 <input type="submit" name="submit" value="ab" />
</form>
 <?php
 
}
funktioniert für meine Zwecke ganz gut.

Danke nochmal für eure Tipps
__________________
http://www.polygona.de
maikh ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Affenformular (Standardverfahren) robo47 Wiki Diskussionsforum 9 17.03.2012 14:07
Seitenaufruf per include + Affenformular MaNuu PHP Einsteiger 9 05.08.2011 15:18
[Erledigt] Problem mit Affenformular nordhelm PHP Einsteiger 4 31.12.2010 19:59
[Erledigt] Affenformular - htmlentities MaxC PHP Tipps 2010 7 05.08.2010 21:53
Aktualisierungssperre im Affenformular sämiprofi PHP Tipps 2010 12 02.05.2010 19:13
Affenformular - Sprungbefehl (Aufrufen neuer Seite) bei Erfolg ... Farlif PHP Tipps 2010 3 22.02.2010 16:35
Affenformular - charset Problem (?) pjotr PHP Tipps 2009 3 31.10.2009 19:13
[Erledigt] parse errror Affenformular andre_ PHP Tipps 2009 7 15.09.2009 14:35
Affenformular - Fehlermeldung Hype2002 PHP Tipps 2009 20 28.08.2009 09:03
[Erledigt] Affenformular - Select - Funktioniert nicht yanfred PHP Tipps 2009 7 13.08.2009 13:27
Html Formular zu Affenformular transformieren Bergtroll PHP-Fortgeschrittene 0 30.06.2009 00:04
problem: weiterleitung nach affenformular KaVo PHP Tipps 2009 11 25.06.2009 18:25
Tutorial Affenformular litterauspirna Off-Topic Diskussionen 41 05.03.2009 18:54
Cookies im Affenformular binäri PHP Tipps 2008 29 29.12.2008 14:19
Affenformular / Doppelpost / Weiterleitung malungo PHP Tipps 2008 31 21.10.2008 17:14

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
affenformular php, \initiative mittelstand\ nutzlos, php affenformular submit, affenformular nach dem absenden bestätigungsseite, affenformular fehler felder hervorheben, php affenformular empty mehrfach, php affenformular fehler farbe, affenformular erstellen, affenformular prüfung und mail adresse, affenformular fehlerausgabe stelle

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:18 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum