php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.07.2005, 13:24  
Gast
 
Beiträge: n/a
Standard check_eingabe

PHP-Code:
<?php
function check_eingabe($ni,$pw,$pww,$em,$mu)
    {
            function 
check_email($em) {return (eregi('^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,4}$',$em)===false false true);} 
            if (!
$ni) echo "- Kein Nickname angegeben!

"
; else {$kontrolle;}
            if (
preg_match('#[^a-zA-Z]#'$ni)) echo "- Der Benutzernamen darf nur Buchstaben enthalten!

"
; else {$kontrolle;}
            if (!
$pw) echo "- Kein Passwort angegeben!

"
; else {$kontrolle;}
            if (
preg_match('#[^0-9]#'$pw)) echo "- Das Passwort darf nur Zahlen enthalten!

"
;else {$kontrolle;}
            if (
preg_match('#[^0-9]#'$pww)) echo "- Das Passwort darf nur Zahlen enthalten!

"
;else {$kontrolle;}
            if (!
$pww) echo "- Kein Passwort angegeben!

"
; else {$kontrolle;}
            if (
$pw != $pww) echo "- Die Passwörter stimmen nicht überein!

"
;else {$kontrolle;}
            if (!
$em) echo "- Keine E-Mail Addrese angegeben!

"
; else {$kontrolle;}
            if (
false == check_email($em)) echo "- Ihre E-Mail Adresse ist ungültig!

"
; else {$kontrolle;}
            if (!
$mu) echo "- Keinen Namen deiner Mutter angegeben!

"
; else {$kontrolle;}
            if (
preg_match('#[^a-zA-Z]#'$mu)) echo "- Der Namen der Mutter darf nur Buchstaben enthalten!

"
; else {$kontrolle;}
            
            if (!
$kontrolle)
                return 
true;
            else if (
$kontrolle)
                return 
false;
        }
    
    if (
check_eingabe($ni,$pw,$pww,$em,$mu)==true)
    {
        echo 
"Der Datensatz wurde gespeichert!

"
;
    }
    else if (
check_eingabe($ni,$pw,$pww,$em,$mu)==false)
    {
        echo 
"Es wurden Fehler gefunden und kein Datensatz gespeichert!

"
;
    }
?>



Der Code soll die Eingaben von einem Formular überprüfen. Jetzt kommt aber immer Der Datensatz wurde gespeichert. auch wenn eine eingabe falsch ist, warum?

lg flo
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.07.2005, 13:29  
Gast
 
Beiträge: n/a
Standard

Dieser Quellcode ist doch wohl ein schlechter Witz, noch unleserlicher geht es ja kaum.

Und wieso definierst du eine Funktion in einer Funktion? Und an welcher Stelle wird $kontrolle jemals mit einem Wert belegt? Und was soll else {$kontrolle;}

15.11. Wie kann ich feststellen, ob eine Mailadresse äußerlich gültig ist?
http://www.php-faq.de/q/q-mail-adresse-gueltig.html

Gruß
phpfan
 
Alt 29.07.2005, 13:30  
Gast
 
Beiträge: n/a
Standard

Bitte bearbeite deinen Beitrag nochmal und benutzer [php ] bb code tag damit die ganzen php funktionen farbig hervorgehoben werden...
 
Alt 29.07.2005, 13:37  
Gast
 
Beiträge: n/a
Standard

also, wenn irgendeine if abfrage zutrifft, heist das irgendeine eingabe nicht stimmt und die variable $kontrolle entsteht. und wenn diese da ist liefert die funktion false zurück

lg flo
 
Alt 29.07.2005, 13:44  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Na, was soll der Mist denn hier bedeuten?
Code:
else {$kontrolle;}
Denk mal drüber nach ...
imported_Ben ist offline  
Alt 29.07.2005, 13:45  
Gast
 
Beiträge: n/a
Standard

Bitte die Grundlagen mal lernen:

http://www.php.net/manual/de
http://www.php-faq.de
http://www.schattenbaum.net/php/ (leider etwas veraltet)
http://www.galileocomputing.de/openbook/php4 (leider etwas veraltet)
http://tut.php-q.net/index.html
http://dev.mysql.com/doc/mysql/de/index.html
http://ffm.junetz.de/members/reeg/DSP/
http://www.phptutorials.de
http://www.dynamic-webpages.de/05.tutorials.php

Da fragt man sich, wie du diesen Quellcode überhaupt hinbekommen hast. Vermutlich irgendwo zusammenkopiert, ohne zu wissen, was da eigentlich passiert.

Baue mal an den Anfang deines Scriptes die Zeile
PHP-Code:
error_reporting(E_ALL); 
ein, dann wird dir PHP bestimmt schon einiges erzählen.

Und mit else {$kontrolle;} definierst du garnichts, das ist einfach nur Quatsch. Man setzt bei solchen Funktionen am Anfang eine Variable, z.B.
PHP-Code:
$noError true
Wird bei der Überprüfung ein Fehler entdeckt, wird die dann auf false gesetzt.

Und diesen Teil solltest du auch dringends überdenken:
PHP-Code:
   if (check_eingabe($ni,$pw,$pww,$em,$mu)==true
   { 
      echo 
"Der Datensatz wurde gespeichert!

"

   } 
   else if (
check_eingabe($ni,$pw,$pww,$em,$mu)==false
   { 
      echo 
"Es wurden Fehler gefunden und kein Datensatz gespeichert!

"

   } 
Denn das ist extrem dummes Zeug.

Gruß
phpfan
 
Alt 29.07.2005, 14:08  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?phpif (check_eingabe($ni,$pw,$pww,$em,$mu)==true
   { 
      echo 
"Der Datensatz wurde gespeichert!

"

   } 
   else if (
check_eingabe($ni,$pw,$pww,$em,$mu)==false
   { 
      echo 
"Es wurden Fehler gefunden und kein Datensatz gespeichert!

"

   } 


?>
das ist ja nur die ausgabe und heist noch gar nichts. dieser teil kommt erst wenn der obige teil funzt.

und wie funktioniert das genau mit $noError = true; ?



lg flo

P.S.: ich bin dabei PHP zu lernen, baue nur nebenbei meine hp um zu testen was ich schon kann.
 
Alt 29.07.2005, 14:29  
Gast
 
Beiträge: n/a
Standard

Ein Beispiel:
PHP-Code:
<?
function check_eingabe($ni,$pw,$pww,$em,$mu

  
$result true;    
  if (!
$ni)
  {
     echo 
"- Kein Nickname angegeben!

"
;
     
$result false;
  }
  :
  :
  :
  :
  return 
$result;
}
?>
Zitat:
das ist ja nur die ausgabe und heist noch gar nichts.
Und wieso wird die Funktion 2x aufgerufen???

Gruß
phpfan
 
Alt 29.07.2005, 14:38  
Gast
 
Beiträge: n/a
Standard

...das ist eine gute frage
 
Alt 29.07.2005, 14:56  
Gast
 
Beiträge: n/a
Standard

aber wenn ich jetzt alle deine tipps befolge kommt immer noch die meldung: es wurden fehler gefunden und kein datensatz gespeichert.

PHP-Code:
<?php
function check_eingabe($ni,$pw,$pww,$em,$mu)
    {
    
error_reporting(E_ALL); 
    
$noError true
            function 
check_email($em) {return (eregi('^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,4}$',$em)===false false true);} 
            if (!
$ni) echo "- Kein Nickname angegeben!

"
$noError false
            if (
preg_match('#[^a-zA-Z]#'$ni)) echo "- Der Benutzernamen darf nur Buchstaben enthalten!

"
$noError false
            if (!
$pw) echo "- Kein Passwort angegeben!

"
$noError false
            if (
preg_match('#[^0-9]#'$pw)) echo "- Das Passwort darf nur Zahlen enthalten!

"
$noError false
            if (
preg_match('#[^0-9]#'$pww)) echo "- Das Passwort darf nur Zahlen enthalten!

"
$noError false
            if (!
$pww) echo "- Kein Passwort angegeben!

"
$noError false
            if (
$pw != $pww) echo "- Die Passwörter stimmen nicht überein!

"
$noError false
            if (!
$em) echo "- Keine E-Mail Addrese angegeben!

"
$noError false
            if (
false == check_email($em)) echo "- Ihre E-Mail Adresse ist ungültig!

"
$noError false
            if (!
$mu) echo "- Keinen Namen deiner Mutter angegeben!

"
$noError false
            if (
preg_match('#[^a-zA-Z]#'$mu)) echo "- Der Namen der Mutter darf nur Buchstaben enthalten!

"
$noError false
            
            return 
$noError;
        }
    
    if (
check_eingabe($ni,$pw,$pww,$em,$mu)==true)
    {
        echo 
"Der Datensatz wurde gespeichert!

"
;
    }
    else
    {
        echo 
"Es wurden Fehler gefunden und kein Datensatz gespeichert!

"
;
    }
?>
normal müsste es ja passen oder?

lg flo
 
 


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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php kontrolle funktion true

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.