Zeichenüberprüfung

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Zeichenüberprüfung

    Hallo,

    ich bin gerade dabei für ein Portal ein Registrierungsformular zu erstellen.

    Hinter dieses Formular wurde auch folgende Funktion gelegt, die zur Zeichenüberprüfung dienen soll. Leider spuckt das Formular allerdings trotz dieses Codes bei Umlauten stets eine Fehlermeldung aus. Woran liegt das?

    Hier der Code:

    <?php
    function check_zeichen($in) {
    if(preg_match('/[^a-z0-9äöüß]/i',$in)){#innerhalb [] welche Zeichen erlaubt sind
    return false;
    }
    return true;
    }
    ?>

  • #2
    Welchen Zeichensatz verwendest du?

    Kommentar


    • #3
      Im Hauptcode ist UTF-8 enthalten.

      Allerdings kommt vor dem header in dem diese Anweisung enthalten ist ein längeres PHP Skript inem dem die ganzen if Sätze für z.B. es wurde kein Name eingetragen enthalten sind.
      Um auszuschließen das das aber hiermit zusammenhängt hab ich jetzt zusätzlich ganz oben im Hauptskript auch noch mal die Anweisung

      header ("Content-Type: text/html; charset=utf=8") geschrieben.

      Kommentar


      • #4
        Hallo,

        sieh dir mal das an: PHP: Unicode character properties - Manual

        Es heißt
        Code:
        charset=utf-8
        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          War ein Tippfehler von mir hier im Forum. Im Skript steht utf-8.

          Danke schon mal werde mal sehen ob mir der Link weiterhilft. Welche Ursachen kommen sonst noch für mein Problem in Frage?

          Kommentar


          • #6
            Zitat von BeatrixKiddo Beitrag anzeigen
            Welche Ursachen kommen sonst noch für mein Problem in Frage?
            Das ist die Ursache. Unicode-Zeichenklassen gibt es aus genau diesem Grund.
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Teil1

              Ich glaube jetzt reden wir aneinander vorbei. Es steht uft-8 ja im Skript.


              Aber hier nochmal das Hauptskript...


              <?php
              header ("Content-Type: text/html; charset=utf-8");
              session_start();

              require_once 'inc/config.inc.php';
              require_once 'inc/mysql.inc.php';
              require_once 'inc/mail/htmlMimeMail5.php';

              include "configuration.php";
              include "functions.inc.php";
              include "check_zeichen.php";



              $sessionstringnew = null; // für den Sicherheitscode
              $sessionstringadd = null;

              function validate_input() {
              $arrErrorMsgs = array();
              //echo $_POST['kategorie'];
              //die();

              // bildupload();
              // es wurde keine Firma eingetragen
              //Anfang der Validierung
              if(!$_POST["firma"] || empty($_POST["firma"])) {
              array_push($arrErrorMsgs, "Sie haben folgende Angabe vergessen einzutragen: Firma.");

              }

              if (!$_POST["name"] || empty($_POST["name"])) {
              // es wurde kein Name eingetragen check_zeichen.php
              array_push($arrErrorMsgs, "Sie haben folgende Angabe vergessen einzutragen: Name.");

              }

              if( !check_zeichen($_POST['name'])) {
              $arrErrorMsgs[] = "Der Name darf keine Sonderzeichen enthalten: Name.";

              }

              if(!$_POST["vorname"] || empty($_POST["vorname"])) {
              // es wurde kein Vorname eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Vorname.";

              }

              if( !check_zeichen($_POST['vorname'])) {
              $arrErrorMsgs[] = "Der Vorname darf keine Sonderzeichen. Vorname:";

              }

              if(!$_POST["strasse"] || empty($_POST["strasse"])) {
              // es wurde keine Straße eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Straße/Hausnummer.";

              }

              if(!$_POST["plz"] || empty($_POST["plz"])) {
              // es wurde keine PLZ eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: PLZ.";

              }

              if(!is_numeric($_POST["plz"])) {
              $arrErrorMsgs[] = "ungültige Eingabe: PLZ.";

              }

              if(!$_POST["ort"] || empty($_POST["ort"])) {
              // es wurde kein Ort eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Ort.";

              }

              if(!$_POST["telefon"] || empty($_POST["telefon"])) {
              // es wurde kein Telefon eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Telefon.";

              }

              if((!is_numeric($_POST["telefon"])) || (!is_numeric($_POST["vorwahl"]))) {
              $arrErrorMsgs[] = "ungültige Eingabe: Telefonnummer.";
              }

              if(!$_POST["email"] || empty($_POST["email"])) {
              // es wurde keine E-Mail Adresse eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: eMail-Adresse.";

              } elseif (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $_POST["email"])) {
              // eMail Validation
              $arrErrorMsgs[] = "Sie haben ungültige eMail-Adresse eingetragen.";

              }

              $sql = "SELECT email FROM qqwertz_kontaktdaten WHERE email='".mysql_real_escape_string($_POST['email'])."'";
              $result = mysql_query($sql);
              if (mysql_num_rows($result) > 0) {
              $arrErrorMsgs[] = "Die angegebene EMail-Adresse ist bereits vorhanden.";
              }


              if(!$_POST["pass"] || empty($_POST["pass"])) {
              //es wurde kein Passwort eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Passwort.";

              } elseif (!$_POST["repass"] || empty($_POST["repass"])) {
              //es wurde kein Passwort wiederholt
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Passwort wiederholen.";

              }

              if($_POST["repass"] != $_POST["pass"]) {
              // Passworte vergleichen
              $arrErrorMsgs[] = "Die beiden angegebenen Passwörter stimmen nicht überein: Passwort";

              }

              if(!$_POST["firmenname"] || empty($_POST["firmenname"])) {
              //Darstellung
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Firmenname.";

              }

              if(!$_POST["kategorie"] || empty($_POST["kategorie"])) {
              // es wurde keine Kategorie ausgewählt.
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Kategorie";

              }

              if(!$_POST["dar_name"] || empty($_POST["dar_name"])) {
              // es wurde kein Name eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Name.";

              }

              if( !check_zeichen($_POST['dar_name'])) {
              // Sonderzeichen im Feld Name prüfen
              $arrErrorMsgs[] = "Der Name darf keine Sonderzeichen. Name:";

              }

              if(!$_POST["dar_strasse"] || empty($_POST["dar_strasse"])) {
              // es wurde keine Straße eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: Straße/Hausnummer.";

              }

              if(!$_POST["dar_plz"] || empty($_POST["dar_plz"])) {
              // es wurde keine PLZ eingetragen
              $arrErrorMsgs[] = "Sie haben folgende Angabe vergessen einzutragen: PLZ.";

              } else if(!is_numeric($_POST["dar_plz"])) {
              $arrErrorMsgs[] = "die PLZ darf nur Ziffern enthalten.";
              }

              if ($_FILES['pic_file']['name'] != "") {
              $filetype = $_FILES['pic_file']['type'];
              switch ($filetype)
              {
              case 'image/jpeg':
              case 'image/jpg':
              case 'image/pjpeg':

              $pic_filetype = '.jpg';
              break;

              case 'image/png':
              case 'image/x-png':

              $pic_filetype = '.png';
              break;

              case 'image/gif':

              $pic_filetype = '.gif';
              break;
              default:
              $arrErrorMsgs[] = "Falsches Dateiformat des Bildes. Nur JPEG, GIF oder PNG erlaubt!";
              }
              }

              Kommentar


              • #8
                Code-Tags einfügen, vorher geht's hier nicht weiter! Ich glaub es hackt!
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Kommentar

                Lädt...
                X