galaxycarp: formular, email eingabe überprüfen ob ein leerzeichen drin vork.

hallo,

befasse mich seit kurzem ein bisschen mit html php usw. jetzt habe ich ein formular erstellt in das man adresse, telefonnummer und email-adresse eingeben kann. die email-adresse soll überprüft werden ob ein @ drin vorkommt das funktioniert auch mit:

if(document.Formular.eMail.value.indexOf('@') == -1) {
   alert("Das ist keine gültige eMail-Adresse!");
   document.Formular.eMail.focus();
   return false;
  }

ich bekomme es nicht hi´n, dass er die adresse nach leerzeichen durchsucht und falls vorhanden dann einen fehler ausgibt. Ist der Ansatz richtig?Was kann ich machen dass es funktioniert?

if(document.Formular.eMail.value.indexOf(' ') == ?????) {
   alert("Das ist keine gültige eMail-Adresse!");
   document.Formular.eMail.focus();
   return false;
  }

  1. @@galaxycarp:

    if(document.Formular.eMail.value.indexOf(' ') == ?????) {

    Wie du das Vorhandensein eines Zeichens abfragst, weißt du ja. ('@')

    Wie du einen booleschen Wert (Bedingung) negierst, liest du in SELFHTML nach.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
  2. Hallo!

    ich bekomme es nicht hi´n, dass er die adresse nach leerzeichen durchsucht und falls vorhanden dann einen fehler ausgibt. Ist der Ansatz richtig?Was kann ich machen dass es funktioniert?

    Oben hast dus ja eh schon mit dem @-Zeichen. Wenn indexOf() -1 zurückliefert dann kommt das Zeichen nicht vor. Folglich muss indexOf() einen Wert > -1 zurückliefern wenn das Zeichen vorhanden ist.
    Wenn das @-Zeichen jedoch ganz am Anfang oder ganz am Ende ist ist die Email Adresse nicht gültig. Eine Email Adresse sieht immer so aus name@site.foo.
    Es reicht also nicht aus nur auf vorhandensein des @-Zeichens zu prüfen. Gibt bei SELFHTML sicher etliche Threads usw. wo steht wie man eine Email Adresse korrekt auf gültigkeit prüft.

    JavaScript seitige Überprüfungen sind aber im Prinzip gleich zu vergessen. Du kannst dem Benutzer das absenden eines "ungültigen" Formulars ersparen aber mehr nicht.
    Die Eingaben sollten unbedingt serverseitig überprüft werden (z.B. mit php), clientseitig ist optional. Was machst du z.B. wenn jemand kein JS aktiviert hat.

    --
    LG,
    Snafu
    1. super vielen dank klappt bestens. wieder was dazu gelernt. hast schon recht da gibt es mit sicherheit einige bessere möglichkeiten, da ich aber erst mit dieser ganzen geschichte angefangen habe bin ich schon mal froh wenns so funktioniert ;-)

      vielen dank!

      1. Hi!

        Zur syntaktischen Überprüfung von E-Mail Adressen gibt es einen Artikel von C. Kruse: http://aktuell.de.selfhtml.org/artikel/programmiertechnik/email/index.htm

        Ob eine E-Mail Adresse wirklich "gültig" ist, kannst du aber nur bspw. mit dem  Opt-In Verfahren feststellen.

        hast schon recht da gibt es mit sicherheit einige bessere möglichkeiten, da ich aber erst mit dieser ganzen geschichte angefangen habe bin ich schon mal froh wenns so funktioniert ;-)

        Das ist imho der falsche Weg. Wenn du ja jetzt weißt, dass es einen "besseren Weg" gibt, ist es wenig sinnvoll, mit dem "schlechteren" anzufangen. Also schmeiß ihn über Bord und fange mit der "besseren" Variante an.

        Gruß Gunther

  3. Hi,

    ich bekomme es nicht hi´n, dass er die adresse nach leerzeichen durchsucht und falls vorhanden dann einen fehler ausgibt.

    Am Besten waer's, wenn du das *gar nicht* hinbekommst, denn -

    Ist der Ansatz richtig?

    • nein, der Ansatz, E-Mail-Adressen aufgrund eines Leerzeichens abzulehnen, waere falsch.

    Was kann ich machen dass es funktioniert?

    "vorname nachname"@example.com *ist* eine syntaktisch gueltige E-Mail-Adresse.
    Mache diesbezueglich also schlicht und einfach *nichts*, und dein Pruefverfahren "funktioniert" wieder ein "bisschen mehr" ...

    MfG ChrisB