php.de

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

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
Alt 26.03.2008, 11:25  
Neuer Benutzer
 
Registriert seit: 25.03.2008
Beiträge: 5
Achilles befindet sich auf einem aufstrebenden Ast
Standard ereg() function fehler?

Habe ein kleines problem habe mir die funktion zusammengebaut und will damit email adressen prüfen,

if (!ereg("[A-Za-z0-9]+@+[A-Za-z0-9\-]+\.+[A-Za-z0-9]",$email) && $email != "")
{
echo(" Bitte geben Sie eine richtige E-Mail an !!!");
}
else
{


print "test";
}

1. auch wenn nichts angegeben ist geht er in die else rein
2. alles soll losgehen wenn ich auf ein button klicke
Achilles ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.03.2008, 12:19  
Erfahrener Benutzer
 
Benutzerbild von Montellese
 
Registriert seit: 30.07.2007
Beiträge: 541
Montellese befindet sich auf einem aufstrebenden Ast
Montellese eine Nachricht über MSN schicken
Standard

Natürlich geht er in den else Teil, wenn du nichts eingiebst. Liegt ganz einfach an der zweiten Bedingung, sprich nach dem &&. Da steht, dass er true zurückgeben soll, wenn $email etwas beinhaltet. Das tut es aber nicht => es wird false zurückgegeben => du kommst in den else-Teil.
Montellese ist offline  
Alt 26.03.2008, 13:09  
Neuer Benutzer
 
Registriert seit: 25.03.2008
Beiträge: 5
Achilles befindet sich auf einem aufstrebenden Ast
Standard

ja aber warum geht er sofort in den else teil also er gibt immer test aus obwohl das formular garnicht abgeschickt habe
Achilles ist offline  
Alt 26.03.2008, 14:26  
Erfahrener Benutzer
 
Benutzerbild von Hu5eL
 
Registriert seit: 26.02.2008
Beiträge: 342
Hu5eL befindet sich auf einem aufstrebenden Ast
Hu5eL eine Nachricht über ICQ schicken
Standard

schreib mal den quellcode, in welchem zusammenhang deine funktion setehn soll...
Hu5eL ist offline  
Alt 26.03.2008, 15:40  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Wenn das Formular nicht abgesendet wurde,ist $email null -einfach mal testen mit var_dump($email); - und null!="" ergibt false. Deshalb ist die if(&&) Bedingung nicht erfüllt -> else Zweig.
David ist offline  
Alt 27.03.2008, 10:50  
Neuer Benutzer
 
Registriert seit: 25.03.2008
Beiträge: 5
Achilles befindet sich auf einem aufstrebenden Ast
Standard

und wie kann ich den code ändern verändern??
Achilles ist offline  
Alt 27.03.2008, 11:00  
Erfahrener Benutzer
 
Benutzerbild von Hu5eL
 
Registriert seit: 26.02.2008
Beiträge: 342
Hu5eL befindet sich auf einem aufstrebenden Ast
Hu5eL eine Nachricht über ICQ schicken
Standard

PHP-Code:
 if (!ereg("[A-Za-z0-9]+@+[A-Za-z0-9\-]+\.+[A-Za-z0-9]",$email) && isset($email)) 
so vllt?
Hu5eL ist offline  
Alt 27.03.2008, 11:05  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

PHP-Code:
<html>
  <head><title>email</title></head>
  <body>
    <form action="" method="post">
      <div>
        <input type="text" name="maddr" />
        <input type="submit" />
      </div>
    </form>
<?php
function isValidEmailAddr($addr)
{
  return 
true;
}

if(isset(
$_POST['maddr']))
{
  
$email trim($_POST['maddr']);
  if (
strlen($email)==0)
  {
    echo 
'email Adresse angeben';
  }
  else if(!
isValidEmailAddr($email))
  {
    echo 
'email Adresse ungültig';
  }
  else {
    echo 
'Danke';
  }
}
?>  
  </body>
</html>
und zu isValidEmailAddr() kannst Du nochmal email regex - Google-Suche befragen.
David ist offline  
Alt 27.03.2008, 11:37  
Neuer Benutzer
 
Registriert seit: 25.03.2008
Beiträge: 5
Achilles befindet sich auf einem aufstrebenden Ast
Standard

ja hier prüfst du ob das feld ausgefüllt ist unoder nicht das ist ja kein problem, ich will aber das er auch prüft ob ein @ vorhanden ist und ein punkt .
Achilles ist offline  
Alt 27.03.2008, 12:10  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Ja, und das packst Du -Du selbst, höchstpersönlich- in die Funktion isValidEmailAddr().
ereg() ist veraltet. Der reguläre Ausdruck ist nicht "perfekt". Deshalb nochmal google befragen. Der "richtige" reguläre Ausdruck (und ob überhaupt regulärer Ausdruck oder nicht) ist eine "Wissenschaft" für sich - eher schon eine Religion. Da halte ich mich raus. Aber bei google findest Du dazu mehr als genug Infomaterial.

Geändert von David (27.03.2008 um 12:12 Uhr).
David 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
Ajax Fehler im IE andiR HTML, Usability und Barrierefreiheit 11 30.06.2008 09:26
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
Call to a member function on a non-object Riks PHP Tipps 2007 20 10.02.2007 22:59
JavaScript - Function aus Variabel aufrufen stefanjann HTML, Usability und Barrierefreiheit 6 04.09.2006 08:55
Fehler in rekursiver Funktion tinchen PHP Tipps 2006 1 27.08.2006 20:24
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
function PHP Tipps 2007 46 08.11.2005 23:00
function innerhalb einer function aufrufen. PHP Tipps 2005 18 21.01.2005 20:36
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
Call to a member function on a non-object --&amp;gt; WARUM ? PHP Tipps 2004-2 4 25.11.2004 20:16
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Klassenschachtelung -&amp;gt; Cannot Redeclare Class ... Fehler PHP-Fortgeschrittene 5 21.10.2004 18:04
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] Probleme beim PHP5 kompilieren / zlib fehler? Server, Hosting und Workstations 4 03.09.2004 15:39
LIMIT(?) Fehler Schaelle Datenbanken 0 28.08.2004 14:11


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