richtig.
eregi() und das Scharfe S
Einklappen
Dieses Thema ist geschlossen.
X
X
-
PHP-Code:<?php
//SQL Queries für Unique Vergleich--------------------------------------------------------------
$datas_equal="SELECT
name,
vorname,
strasse,
plz,
ort
FROM
microsite_pkv_kunde
WHERE
name = '".mysql_real_escape_string($_POST['name'])."' AND
vorname = '".mysql_real_escape_string($_POST['vorname'])."' AND
strasse = '".mysql_real_escape_string($_POST['strasse'])."' AND
plz = '".mysql_real_escape_string($_POST['plz'])."' AND
ort = '".mysql_real_escape_string($_POST['ort'])."' ";
//Funktionen zur formellen Überprüfung----------------------------------------------------------
function check_easy_string($in) {
if(preg_match('/[^a-z- äöüß]/i',$in)){
return false;
}
return $in;
}
function check_numeric($in) {
if(preg_match('/[^0-9 ]/i',$in)){
return false;
}
return $in;
}
function check_numeric_string($in) {
if(preg_match('/[^a-z0-9 ]/i',$in)){
return false;
}
return $in;
}
function check_strasse($in) {
if(preg_match('/[^a-z- .äöüß]/i',$in)){
return false;
}
return $in;
}
//Magic Quotes entfernen--------------------------------------------------------------------------
if(get_magic_quotes_gpc())
{
foreach($_POST AS $key => $value)
{
$_POST[$key] = stripslashes($value);
}
}
//Überprüfung auf Vollständigkeit------------------------------------------------------------------
if(trim($_POST['name']) == "")
{
die("Bitte geben Sie ihren Namen an.");
}
if(trim($_POST['vorname']) == "")
{
die("Bitte geben Sie ihren Vornamen an.");
}
if(trim($_POST['vorwahl']) == "")
{
die("Bitte geben Sie ihre Vorwahl an.");
}
if(trim($_POST['rufnummer']) == "")
{
die("Bitte geben Sie ihre Rufnummer an.");
}
if(trim($_POST['strasse']) == "")
{
die("Bitte geben Sie ihre Straße an.");
}
if(trim($_POST['hausnummer']) == "")
{
die("Bitte geben Sie ihre Hausnummer an.");
}
if(trim($_POST['plz']) == "")
{
die("Bitte geben Sie ihre Postleitzahl an.");
}
if(trim($_POST['ort']) == "")
{
die("Bitte geben Sie ihren Ort an.");
}
if(trim($_POST['geb_jahr']) == "")
{
die("Bitte geben Sie ihr Geburtsjahr an.");
}
//Formelle Überprüfung------------------------------------------------------------------------------
//Überprüfung auf SQL Injection von Name,Vorname und Ort--------------------------
if(check_easy_string($_POST['name']) == false){
die("Es sind lediglich Buchstaben<br />
und Bindestriche bei der Eingabe des<br />
Namens zulässig.");
}
if(check_easy_string($_POST['vorname']) == false){
die("Es sind lediglich Buchstaben<br />
und Bindestriche bei der Eingabe des<br />
Vornamens zulässig.");
}
if(check_easy_string($_POST['ort']) == false){
die("Es sind lediglich Buchstaben<br />
und Bindestriche bei der Eingabe des<br />
Ortes zulässig.");
}
//Überprüfung auf SQL Injection von Vorwahl, Rufnummer und Geburtsjahr------------
if(check_numeric($_POST['vorwahl']) == false){
die("Es sind lediglich Zahlen bei<br />
der Eingabe der Vorwahl zulässig.");
}
if(check_numeric($_POST['rufnummer']) == false){
die("Es sind lediglich Zahlen bei<br />
der Eingabe der Rufnummer zulässig.");
}
if(check_numeric($_POST['geb_jahr']) == false){
if( strlen($_POST['geb_jahr']) < '4' OR strlen($_POST['geb_jahr']) > '4'){
die("Bitte geben Sie ihr Geburtsjahr<br />
als vierstellige Zahl an.");
}
}
if(check_numeric($_POST['plz']) == false){
die("Die Postleitzahl darf nur Zahlen entahlten");
}
if( strlen($_POST['plz']) < '5' OR strlen($_POST['plz']) > '5'){
die("Bitte geben Sie ihre Postleitzahl<br />
als fünfstellige Zahl an.");
}
//Überprüfung auf SQL Injection von Hausnummer------------------------------------
if(check_numeric_string($_POST['hausnummer']) == false){
die("Es sind lediglich Zahlen und Buchstaben<br />
bei der Eingabe der Vorwahl zulässig.");
}
//Überprüfung auf SQL Injection Strasse------------------------------------------
if(check_strasse($_POST['strasse']) == false){
die("Es sind lediglich Buchstaben und Punkte<br />
bei der Eingabe der Strasse zulässig.");
}
//Überprüfung auf SQL Injection von E-Mai-Adresse---------------------------------
$checkemail = eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$",$_POST['email']);
if(!$checkemail){
die("Bitte geben Sie eine korrekte EMail Adresse an.\n");
}
//Inhaltliche Überprüfung---------------------------------------------------------------------------
//Geburtsjahr über 60 ?------------------------------------------------------------
if((int)$_POST['geb_jahr'] <= 1947){
die("Bitte geben Sie ein gültiges Geburtsjahr ein.<br />
Bei einem Geburtsjahr vor 1947 bitten wir<br />
um Verständnis, dass wir keine<br />
Krankenverischerungsvergleiche mehr durchführen");
}
//Hat User DSB zugestimmt?
if(!isset($_POST['datenschutz'])){
die("Bitte stimmen Sie unseren Datenschutzbestimmungen zu.");
}
//Überprüfung auf Unique der Daten (hat der Benutzer sich schonmal eingetragen?)-------------------
$result_datas_equal = mysql_query($datas_equal) OR die(mysql_error());
if(mysql_num_rows($result_datas_equal)){
die("Diese Kundendaten sind schon in unserer Datenbank vorhanden.");
}
//Zusammenfügen der Geburtsdaten-------------------------------------------------------------------
$geburtsdatum = $_POST['geb_jahr']."-".$_POST['geb_mon']."-".$_POST['geb_tag'];
$eintragen = "INSERT INTO microsite_pkv_kunde
(anrede,
name,
vorname,
strasse,
hausnummer,
plz,
ort,
vorwahl,
rufnummer,
erreichbarkeit,
geburtsdaten,
taetigkeit,
versicherung,
email)
VALUES
('".mysql_real_escape_string(htmlspecialchars($_POST['anrede']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['name']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['vorname']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['strasse']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['hausnummer']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['plz']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['ort']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['vorwahl']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['rufnummer']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['erreichbarkeit']))."',
'".mysql_real_escape_string(htmlspecialchars($geburtsdatum))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['taetigkeit']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['versicherung']))."',
'".mysql_real_escape_string(htmlspecialchars($_POST['email']))."' )";
mysql_query($eintragen) OR die(mysql_error());
var_dump($_POST);
Bei Eingabe von Umlauten, egal in welchem Feld, gibt mit der Browser die Sätze aus, die ich bei der preg_match Überprüfung für den Fall False angegeben habe.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Ich versteh das nicht Ich matche nur auf die ersten Zeichen? Auf die ersten Zeichen in der eckigen Klammer oder wie? Dann müsste es doch funktionieren, wenn ich dieses komische ^ da weg mache. Aber das macht es nicht.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
-
Wenn er eben diese Zeichen nicht akzeptieren würde, dann würde ich gar nichts reinschrieben können, auch nicht ohne Umlaute: Aber ohne Umlaute gehts. Zeig mir doch eifnach was der Fehler ist.-Am Anfang war das Wort-
Ich habe fertig mit Abi ^^
Kommentar
Kommentar