Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Zeichenüberprüfung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Zeichenüberprüfung


 
BeatrixKiddo
25-06-2010, 12:18 
 
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;
}
?>

 
h3ll
25-06-2010, 12:25 
 
Welchen Zeichensatz verwendest du?

 
BeatrixKiddo
25-06-2010, 12:43 
 
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.

 
AmicaNoctis
25-06-2010, 12:43 
 
Hallo,

sieh dir mal das an: PHP: Unicode character properties - Manual (http://de2.php.net/manual/de/regexp.reference.unicode.php)

Es heißt
charset=utf-8

Gruß,

Amica

 
BeatrixKiddo
25-06-2010, 12:51 
 
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?

 
AmicaNoctis
25-06-2010, 12:52 
 
Welche Ursachen kommen sonst noch für mein Problem in Frage?

Das ist die Ursache. Unicode-Zeichenklassen gibt es aus genau diesem Grund.

 
BeatrixKiddo
25-06-2010, 13:02 
 
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!";
}
}

 
unset
25-06-2010, 13:03 
 
Code-Tags einfügen, vorher geht's hier nicht weiter! Ich glaub es hackt!


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:02 Uhr.