Pit: Formularfeld prüfen auf Buchstaben und Zahlen

Hallo Experten,

ich möchte ein Formularfeld auf eingabe prüfen und zwar das nur Buchstaben und Zahlen erlaubt sind!

Nachfolgender Codeschnippsel habe ich auch soweit hinbekommen und er gibt mir eine Fehlermeldung aus wenn nichts eingetragen wurde und wenn andere Zeichen darin vorkomen die nicht erlaubt sind!

if (!ereg("[1]", $hallo)) {
   $gsm .= $err[6];
   $error = true;
  }

Jetzt möchte ich dieses aber nicht als Pflichtfeld deklarieren sondern nur dann überprüfen lassen wenn auch tatsächlich jemand etwas reinschreibt!

Habe es schon mit mehreren sachen versucht aber irgendwie scheitere ich ständig. Letzter versuch als beispiel:

if (!ereg($hallo) AND (!ereg("[2]", $hallo)) {
   $gsm .= $err[6];
   $error = true;
  }

Was mache ich hier falsch???

Danke für die antwort!!!

MfG, Pit


  1. a-zA-Z0-9 ↩︎

  2. a-zA-Z0-9 ↩︎

  1. Was mache ich hier falsch???

    du machst in erster linie falsch, dass du keine klare vorstellung von dem hast, was du eigentlich willst

    du nutzt ereg obwohl dir offenbar nicht ganz klar ist, was du damit tust - ein blick in die doku hätte dir wahrscheinlich geraten, dass du lieger perl-kompatible reguläre ausdrücke verwenden solltest (wenn du das überhaupt tun willst)

    a) schreibe auf was du tun wilst
    b) schreibe auf wie du es tun würdest, wenn du es per hand machtest
    c) übersetze dies in die programmier-/scriptsprache deiner wahl

    1. Hallo Shadowcrow, Hopsel und Suit,

      man seid Ihr schnell, so viele antworten in so kurzer Zeit da bin ich baff!
      Danke an euch für die Tipps!!!

      Mit freundlichen Grüßen, Pit

  2. hi $name,

    Jetzt möchte ich dieses aber nicht als Pflichtfeld deklarieren sondern nur dann überprüfen lassen wenn auch tatsächlich jemand etwas reinschreibt!

    ich bin ja (noch) PHP anfänger, aber ich würde einfach vor der prüfung auf erlabte werte abfragen ob das feld != '' ist.

    gruss
    shadow

    --
    Basic für Anfänger:
    if GUT goto MOZILLA
    if BOESE goto MICROSOFT
    1. ich bin ja (noch) PHP anfänger, aber ich würde einfach vor der prüfung auf erlabte werte abfragen ob das feld != '' ist.

      schlechter stil, verwende anstatt dessen lieber empty() und zusätzlich isset()

      1. Hi suit!

        [...] und zusätzlich isset()

        Wozu?

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Hi suit!

          [...] und zusätzlich isset()
          Wozu?

          weil beide funktionen etaws anders tun?

          siehe dazu in der doku von empty() vor allem den Abschnitt "Return Values" und "Example #1 A simple empty() / isset()  comparison."

          '0' != '' // false  
          empty('0') // true
          

          1. Hi suit!

            [...] und zusätzlich isset()
            Wozu?
            weil beide funktionen etaws anders tun?

            Okay... hab den Sonderfall "0" nicht bedacht...
            Aber ansonsten gibt empty() auch für nichtvorhandene Variablen true zurück.

            MfG H☼psel

            --
            "It's amazing I won. I was running against peace, prosperity, and incumbency."
            George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
            Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
            1. Okay... hab den Sonderfall "0" nicht bedacht...
              Aber ansonsten gibt empty() auch für nichtvorhandene Variablen true zurück.

              das ist schon richtig, nur im falle des op wäre es uncool weil der string mit inhalt 0 ja auch als zahl durchginge (zumindest was man aus dem regulären ausdruck errät)

    2. Hi Shadowcrow!

      ich bin ja (noch) PHP anfänger, aber ich würde einfach vor der prüfung auf erlabte werte abfragen ob das feld != '' ist.

      Oder empty() nutzen.

      MfG H☼psel

      --
      "It's amazing I won. I was running against peace, prosperity, and incumbency."
      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
      1. hi $name,

        Hi Shadowcrow!

        ich bin ja (noch) PHP anfänger, aber ich würde einfach vor der prüfung auf erlabte werte abfragen ob das feld != '' ist.

        Oder empty() nutzen.

        man lernt nie aus, ich hatte das in vielen scripten so gesehen und dachte: naja wird dann wohl richtig sein :-(

        freßt sch**** 10 milliarden fliegen können sich nicht irren.

        gruss
        shadow

        --
        ...Unable to Locate Coffee, OPERATOR HALTED!
        1. man lernt nie aus, ich hatte das in vielen scripten so gesehen und dachte: naja wird dann wohl richtig sein :-(

          wie hier beschrieben ist != '' und empty() nicht das selbe ;)

          es kann durchaus situationen geben, in denen man auf != '' prüft

          in vbscript zb gibts kein empty oder isset - da prüft man standardmäßig mit

          "" & foo <> ""