php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.12.2009, 10:28  
Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 70
t-stude befindet sich auf einem aufstrebenden Ast
Standard Variable Posten und mit Formular auswerten

Hallo,

ich habe ein Kontaktformular entwickelt wo der Benutzer seine Daten eintragen kann!

Hat er jetzt ein Feld vergessen so erscheint eine Fehler meldung ($fehler)!
Dann wird das Formular nicht abgesendet sondern soll auch noch die anderen Textfelder mit den bereit eingetragenen Werten anzeigen!

Sind nun alle Felder komplett und richtig ausgefüllt so sollen die Felder aber keine Werte mehr beinhalten!

Und das funtkioniert leider nicht, nach den Übertragen der Daten, sind trotzdem noch alle textfelder ausgefüllt!

PHP-Code:
if (isset($_POST['Submit'])) 
{          
$_POST['$fehler'];..... 
Hier wie ich mir das mit dem Textfeld vorgestellt hatte!
PHP-Code:
<input type="text" name="teamname" id="teamname" value="<?php if (isset($_POST['Submit'])) 
{ if (
$fehler == true) {echo $_POST['teamname']; }}?>" />
Bekomme immer die Fehlermeldung das er die $fehler variable nicht kennt!
t-stude ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.12.2009, 10:30  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

ist doch auch klar. $_POST['$fehler'] bedeutet dass du an php ein formularfeld senden willst mit dem namen $fehler. du müsstest aber in dem fall mit echo arbeiten. sprich wenn feld vergessen, dann echo $fehler
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline  
Alt 11.12.2009, 10:35  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.240
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Wo wir $fehler denn definiert? Dein Code-Auszug ist viel zu kurz um dir zu helfen...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 11.12.2009, 10:36  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

ich denke , dass er denkt, dass man mit $_POST irgendwas ,inhalte auf der seite anzeigt
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline  
Alt 11.12.2009, 10:36  
Benutzer
 
Registriert seit: 28.10.2008
Beiträge: 70
t-stude befindet sich auf einem aufstrebenden Ast
Standard

Das ist das komplette Script beim Senden des Formulars
PHP-Code:
function eingabe_check($vorname,$nachname,$teamname,$mail,$geburtstag,$street,$plz,$ort,$vorname1,$name1,$vorname2,$name2,$vorname3,$name3,$radio){
    if (
$vorname == ""$fehler $fehler." Ihren Vornamen";
    if (
$nachname == ""$fehler $fehler." Ihren Nachnamen"# Alle eingaben werden darauf geprüft ob sie überhaupt gemacht wurden
    
if ($teamname == ""$fehler $fehler." Teamname";   # wurden sie nicht gemacht wird die Variable $fehler gesetzt oder eine weitere
    
if ($mail == ""){                                  # Fehlermeldung angehängt.
        
$fehler $fehler." Ihre Emailadresse";
    if (
$geburtstag == ""$fehler $fehler." Ihr Geburtsdatum";
    if (
$street == ""$fehler $fehler." Ihre Straße"
    if (
$plz == ""$fehler $fehler." Ihre Postleitzahl"
    if (
$ort == ""$fehler $fehler." Ihren Wohnort";
    if (
$vorname1 == ""$fehler $fehler." Spieler 2 | Vorname"
    if (
$name1 == ""$fehler $fehler." Spieler 2 | Name";
    if (
$vorname2 == ""$fehler $fehler." Spieler 3 | Vorname"
    if (
$name2 == ""$fehler $fehler." Spieler 3 | Name";
    if (
$vorname3 == ""$fehler $fehler." Spieler 4 | Vorname"
    if (
$name3 == ""$fehler $fehler." Spieler 4 | Name";
    if (
$radio == ""$fehler $fehler." Ihre Spielklasse";
    }
    else {                                             
# Der Email adresse schenken wir besondere aufmerksamkeit, wir wollen uns ja nicht ganz so einfach verarschen lassen...
        
if(strstr($mail,"@") && strstr($mail,".")){    #deshalb überprüfen wir ob ein @ und wenigstens ein . darin enthalten sind.
        
}                                              # das heisst zwar noch immer nicht das die Adresse Existiert aber sie ist wenigstens formal richtig
        
else {
            
$fehler $fehler." Ihre echte eMailadresse";
        }
   }
  if (
$fehler =="") {
      
      include 
"./config.php";
        
            
$sql_abfrage "INSERT INTO teams (Teamname, Spielklasse, Vorname, Name, Mail, Geburtstag, Strasse, Plz, Ort, Vorname1, Name1, Vorname2, Name2, Vorname3, Name3) VALUES ('$teamname', '$radio', '$vorname',                 '$nachname', '$mail', '$geburtstag', '$street', '$plz', '$ort', '$vorname1', '$name1', '$vorname2', '$name2', '$vorname3', '$name3')";
    
$ergebnis mysql_query($sql_abfrage) or die(mysql_error());
    
                  echo 
"<center><b>Dein Team wurde angemeldet!<b><br>";
                echo 
"<center><b>In wenigen Minuten wirst du eine Bestätigungsmail mit den Kontodaten zugeschickt bekommen!<b><br>";
                    }                   
                                                                        
# gab es keinen Fehler bei der überpüfung geben wir 1 zurück
  
else{ return "Bitte geben sie noch <b>".$fehler."</br></b> ein.<br>";}         #ansonsten die Fehlermeldung
        

        
if (isset(
$_POST['Submit'])) 
{          
$_POST['$fehler'];
    echo 
eingabe_check($vorname,$nachname,$teamname,$mail,$geburtstag,$street,$plz,$ort,$vorname1,$name1,$vorname2,$name2,$vorname3,$name3,$radio);
        } 
?> 
t-stude ist offline  
Alt 11.12.2009, 10:37  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

jep, ich habe es richtig gedacht, schreibe statt $_POST['$fehler']

einfach nur echo $fehler;

und da drunter musst du
PHP-Code:
ausgabe_check($_POST['vorname'],$_POST['nachname'],...) 
schreiben also kein echo davor. du rufst die funktion auf, gibts ihr parameter, die funktion generiert eine fehlermeldung, du gibst die fehlermeldung mit echo $fehler; aus
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen

Geändert von BlackScorp (11.12.2009 um 10:40 Uhr).
BlackScorp ist offline  
Alt 11.12.2009, 10:49  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.240
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Davon abgesehen ist $fehler nicht initialisiert. Es ist grauselig eingerückt. Bitte gewöhne dir von Anfang an einen vernünftigen Stil an, denn ich denke BlackScorp hat (so wie ich auch auf den ersten Blick) nicht gesehen wo deine Funktion zuende ist.

Zu guter letzt ist die Ecke, wo du $_POST['$fehler'] stehen hast (was per se sinnfrei ist, wie BlackScorp erläutert hat) einfach nur völlig falsch. Das ist ausserhalb der Funktion und damit hast du keinerlei Zugriff mehr auf $fehler. Sprich: Du hast strukturelle Fehler in deinem Code.

Im Grunde willst du doch folgendes machen:
PHP-Code:
$ergebnis ausgabe_check(.....);
if (
$ergebnis) {
    
// verarbeite ergebnis
}
else {
    
// gebe Fehler und Formular nochmal aus

Die Methode ausgabe_check sollte nur zum checken da sein, weil der Name das so sagt. Sie sollte NIE die Verarbeitung machen. Derzeit hast du da extrem viel gemischt, gibst zudem Fehlertexte aus, gibst sie per Return zurück, merkst sie dir aber nicht.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 11.12.2009, 10:51  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

naja um $return = function($param) einen false oder true wert zu kriegen, muss die funktion auch ein return wert zurückliefern. aber die bastelt nur einen fehlerstring zusammen.
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline  
Alt 11.12.2009, 11:03  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.240
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von BlackScorp Beitrag anzeigen
naja um $return = function($param) einen false oder true wert zu kriegen, muss die funktion auch ein return wert zurückliefern. aber die bastelt nur einen fehlerstring zusammen.
Augen auf im Straßenverkehr
Zitat:
PHP-Code:
else{ return "Bitte geben sie noch <b>".$ 
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 11.12.2009, 11:19  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

ach das gehörte zu der funktion??? hm... ich räum mal ein wenig auf:

PHP-Code:
<?php
function eingabe_check($vorname,$nachname,$teamname,$mail,$geburtstag,$street,$plz,$ort,$vorname1,$name1,$vorname2,$name2,$vorname3,$name3,$radio) {
   
$result true;
   if(empty(
$vorname)) {
        
$fehler .= ' Ihren Vornamen';
        
$result false;
    }
    if(empty(
$nachname)) {
        
$fehler .= ' Ihren Nachnamen';
        
$result false;
    }
    if(empty(
$teamname)) {
        
$fehler .= ' Teammane';
        
$result false;
    }
    if(empty(
$mail)) {
        
$fehler .= ' Ihre Emailadresse';
        
$result false;
    }
    if(empty(
$geburtstag)) {
        
$fehler .= ' Ihr Geburtstadtum';
        
$result false;
    }
    if(empty(
$street)) {
        
$fehler .= ' Ihre Straße';
        
$result false;
    }
    if(empty(
$plz)) {
        
$fehler .= ' Ihre Postleizahl';
        
$result false;
    }
    if(empty(
$ort)) {
        
$fehler .=  'Ihren Wohnort';
        
$result false;
    }
    if(empty(
$vorname1)) {
        
$fehler .= ' Spieler 2 | Vorname';
        
$result false;
    }
    if(empty(
$name1)) {
        
$fehler .= ' Spieler 2 | Name';
        
$result false;
    }
    if(empty(
$vorname2)) {
        
$fehler .= ' Spieler 3 | Vorname';
        
$result false;
    }
    if(empty(
$name2)) {
        
$fehler .= ' Spieler 3 | Name';
        
$result false;
    }
    if(empty(
$vorname3)) {
        
$fehler .= ' Spieler 4 | Vorname';
        
$result false;
    }
    if(empty(
$name3)) {
        
$fehler .= ' Spieler 4 | Name';
        
$result false;
    }
    if(
$radio != 'on') {
        
$fehler .= ' Ihre Spielklasse';
        
$result false;

    }
    if(!
filter_var($emailFILTER_VALIDATE_EMAIL)){
        
$fehler .= ' Ihre echte E-Mail Adresse';
        
$result false;
    }
  
    return 
$result;
}

if(isset(
$_POST['Submit'])){
    
$result eingabe_check(
        
$_POST['vorname'],
        
$_POST['nachname'],
        
$_POST['teamname'],
        
$_POST['email'],
        
$_POST['geburtstag'],
        
$_POST['street'],
        
$_POST['plz'],
        
$_POST['ort'],
        
$_POST['vorname1'],
        
$_POST['name1'],
        
$_POST['vorname2'],
        
$_POST['name2'],
        
$_POST['vorname3'],
        
$_POST['name3'],
        
$_POST['radio']
    );
    if(
$result){
        include 
"./config.php";
        
$sql_abfrage "INSERT INTO teams (Teamname, Spielklasse, Vorname, Name, Mail, Geburtstag, Strasse, Plz, Ort, Vorname1, Name1, Vorname2, Name2, Vorname3, Name3) "
                        
."VALUES ('$teamname', '$radio', '$vorname','$nachname', '$mail', '$geburtstag', '$street', '$plz', '$ort', '$vorname1', '$name1', '$vorname2', '$name2', '$vorname3', '$name3')";
        
$ergebnis mysql_query($sql_abfrage) or die(mysql_error());
        if(
$ergebnis){
           echo 
"<center><b>Dein Team wurde angemeldet!<b><br>";
           echo 
"<center><b>In wenigen Minuten wirst du eine Bestätigungsmail mit den Kontodaten zugeschickt bekommen!<b><br>";
        }
    }else{
        echo 
'Bitte geben sie noch <b>'.$fehler.'</br></b> ein.<br>';
    }
}
?>
so müsste das ganze funktionieren
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline  
 


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
[Erledigt] Wo kommen die X und Y Variablen her bei nem Get formular? owii PHP Tipps 2009 3 23.11.2009 22:25
[Erledigt] Optionsfeld ermitteln und variable in formular Leinberger PHP Tipps 2009 1 15.08.2009 11:50
[Erledigt] Formular Submit, Variable laden krackmoe PHP Tipps 2009 5 01.07.2009 15:57
[Erledigt] (HTML/PHP) Variable ohne Formular übergeben? SilverVegeto PHP Tipps 2008 10 09.11.2008 13:56
[Erledigt] Variable aus formular übergeben millas PHP Tipps 2008 3 03.09.2008 12:18
e-mail adresse per Variable im Formular ändern rcorten PHP Tipps 2008 13 30.04.2008 13:43
Variable zurück an Formular schicken ?!?!? TeazY PHP Tipps 2008 5 18.12.2007 20:07
Formular auswerten, aber wie Ricardando PHP Tipps 2008 14 05.09.2007 11:55
php Aufruf von Formular und Übergabe einer Variable (get) PHP Tipps 2007 10 30.12.2005 16:45
[Erledigt] Variable ohne Formular &quot;weiterschicken&quot; PHP Tipps 2007 15 21.12.2005 15:49
problem mit variable snatch-ic PHP Tipps 2007 5 13.12.2005 13:18
Variable aus Formular auslesen .. PHP Tipps 2005-2 10 25.10.2005 15:48
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
Update Funktion mit Formular Experte gesucht... Datenbanken 2 30.12.2004 12:04
weitergabe einer variable ohne formular PHP Tipps 2004 5 23.07.2004 15:22

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fehler in php formular auswerten, php formulardaten erneut posten, php variable posten, php formular auswerten und an mail, html formulare auswerten variablen verändern, php variable feld ausgefüllt, street

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:48 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