Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
ncphp
/
mcClasses
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit ccada8aa
authored
Apr 11, 2012
by
meier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mcValidator klasse hinzugefügt
1 parent
bc356bfb
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
197 additions
and
2 deletions
include.php
validation/class_mcValidator.inc.php
include.php
View file @
ccada8a
...
...
@@ -59,6 +59,8 @@ require_once $__PATH_to_mcClasses . 'class_mcFPDF.inc.php';
require_once
$__PATH_to_mcClasses
.
'class_mcLanguage.inc.php'
;
require_once
$__PATH_to_mcClasses
.
'finance/class_mcZinsmethoden.inc.php'
;
require_once
$__PATH_to_mcClasses
.
'validation/class_mcValidator.inc.php'
;
/**
* mcPUIX - database - userinterface
*/
...
...
@@ -68,5 +70,4 @@ require_once $__PATH_to_mcClasses . 'mcPUIX/class_mcPUIX_CONFIG.inc.php';
require_once
$__PATH_to_mcClasses
.
'mcPUIX/class_mcPUIX_DOM.inc.php'
;
require_once
$__PATH_to_mcClasses
.
'mcPUIX/class_Converter.inc.php'
;
?>
\ No newline at end of file
validation/class_mcValidator.inc.php
0 → 100644
View file @
ccada8a
<?php
/**
* @filesource class_mcValidator.inc.php
*
* @category losp
* @copyright Copyright by mensch.coop e.G. 2011
* @mailto dev [at] mensch.coop
* @link http://mensch.coop
*/
class
mcValidator
{
const
VALIDATOR_TYPE_EMAIL
=
'email'
;
const
VALIDATOR_TYPE_URL
=
'url'
;
const
VALIDATOR_TYPE_SINGELTONNAME
=
'singeltonName'
;
const
VALIDATOR_TYPE_PHONE
=
'singeltonName'
;
const
VALIDATOR_TYPE_GERPLZ
=
'gerPlz'
;
const
VALIDATOR_TYPE_YOUTUBEID
=
'youtubeID'
;
const
VALIDATOR_TYPE_VIMEOID
=
'vimeoID'
;
private
static
$regExpArray
=
array
(
self
::
VALIDATOR_TYPE_URL
=>
array
(
'regExp'
=>
'/(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/'
,
'match'
=>
true
),
self
::
VALIDATOR_TYPE_SINGELTONNAME
=>
array
(
'regExp'
=>
'/[^A-Za-z0-9\-]/'
,
'match'
=>
false
),
self
::
VALIDATOR_TYPE_PHONE
=>
array
(
'regExp'
=>
'/[^-\s\d.\(\)\/+]/'
,
'match'
=>
false
),
self
::
VALIDATOR_TYPE_GERPLZ
=>
array
(
'regExp'
=>
'/\d{5}$/'
,
'match'
=>
true
),
self
::
VALIDATOR_TYPE_YOUTUBEID
=>
array
(
'regExp'
=>
'/[^A-Za-z0-9\-\_]/'
,
'match'
=>
false
),
self
::
VALIDATOR_TYPE_VIMEOID
=>
array
(
'regExp'
=>
'/[\D]/'
,
'match'
=>
false
)
);
/**
* Attention: function returns true if $param_type is not const of VALIDATOR_TYPE_*
*
* @param String $param_value
* @param String $param_type - the regexpression-type which should be used
* @param boolean $param_allowNoValue - default false, allow blank value
* @param boolean $param_utf8 - default true, $param_value format is utf8
*
* @return boolean
*/
public
static
function
checkValue
(
$param_value
,
$param_type
,
$param_allowNoValue
=
false
,
$param_utf8
=
true
){
if
(
$param_type
==
self
::
VALIDATOR_TYPE_EMAIL
){
return
self
::
checkEmail
(
$param_value
,
$param_allowNoValue
);
}
$var_value
=
trim
(
$param_value
);
if
(
!
isset
(
$var_value
)
||
is_null
(
$var_value
)
||
empty
(
$var_value
)
||
$var_value
===
''
)
{
return
$param_allowNoValue
;
}
else
{
$var_regExp
=
''
;
$var_match
=
true
;
if
(
$param_type
){
switch
(
$param_type
){
case
self
::
VALIDATOR_TYPE_EMAIL
:
return
self
::
checkEmail
(
$param_value
,
$param_allowNoValue
);
default
:
if
(
array_key_exists
(
$param_type
,
self
::
$regExpArray
)){
$var_regExp
=
self
::
$regExpArray
[
$param_type
][
'regExp'
];
$var_match
=
self
::
$regExpArray
[
$param_type
][
'match'
];
}
else
{
return
true
;
}
break
;
}
}
if
(
$param_utf8
){
$var_regExp
+=
'u'
;
}
$tmp_return
=
preg_match
(
$param_value
,
$var_regExp
);
if
(
!
$var_match
){
return
!
$tmp_return
;
}
else
{
return
$tmp_return
;
}
}
return
true
;
}
/**
* checks if a String is a valid email address
*
* @param $param_email
* @param boolean $param_allowNoValue - default false, allow blank value
* @return boolean
*/
public
static
function
checkEmail
(
$param_email
,
$param_allowNoValue
=
false
)
{
function
valid_dot_pos
(
$email
)
{
$str_len
=
strlen
(
$email
);
for
(
$i
=
0
;
$i
<
$str_len
;
$i
++
)
{
$current_element
=
$email
[
$i
];
if
(
$current_element
==
"."
&&
(
$email
[
$i
+
1
]
==
"."
))
{
return
false
;
break
;
}
else
{
}
}
return
true
;
}
function
valid_local_part
(
$local_part
)
{
if
(
preg_match
(
"/[^a-zA-Z0-9-_ß@.!#$%&'*\/+=?^`
{
\|
}
~]/"
,
$local_part
))
{
return
false
;
}
else
{
return
true
;
}
}
function
valid_domain_part
(
$domain_part
)
{
if
(
preg_match
(
"/[^a-zA-Z0-9-_ß@#\[\].]/"
,
$domain_part
))
{
return
false
;
}
elseif
(
preg_match
(
"/[@]/"
,
$domain_part
)
&&
preg_match
(
"/[#]/"
,
$domain_part
))
{
return
false
;
}
elseif
(
preg_match
(
"/[\[]/"
,
$domain_part
)
||
preg_match
(
"/[\]]/"
,
$domain_part
))
{
$dot_pos
=
strrpos
(
$domain_part
,
"."
);
if
((
$dot_pos
<
strrpos
(
$domain_part
,
"]"
))
||
(
strrpos
(
$domain_part
,
"]"
)
<
strrpos
(
$domain_part
,
"["
)))
{
return
true
;
}
elseif
(
preg_match
(
"/[^0-9.]/"
,
$domain_part
))
{
return
false
;
}
else
{
return
false
;
}
}
else
{
return
true
;
}
}
// trim() the entered E-Mail
$str_trimmed
=
trim
(
$param_email
);
// find the @ position
$at_pos
=
strrpos
(
$str_trimmed
,
"@"
);
// find the . position
$dot_pos
=
strrpos
(
$str_trimmed
,
"."
);
// this will cut the local part and return it in $local_part
$local_part
=
substr
(
$str_trimmed
,
0
,
$at_pos
);
// this will cut the domain part and return it in $domain_part
$domain_part
=
substr
(
$str_trimmed
,
$at_pos
);
if
(
!
isset
(
$str_trimmed
)
||
is_null
(
$str_trimmed
)
||
empty
(
$str_trimmed
)
||
$str_trimmed
==
""
)
{
return
$param_allowNoValue
;
}
elseif
(
!
valid_local_part
(
$local_part
))
{
return
false
;
}
elseif
(
!
valid_domain_part
(
$domain_part
))
{
return
false
;
}
elseif
(
$at_pos
>
$dot_pos
)
{
return
false
;
}
elseif
(
!
valid_local_part
(
$local_part
))
{
return
false
;
}
elseif
((
$str_trimmed
[
$at_pos
+
1
])
==
"."
)
{
return
false
;
}
elseif
(
!
preg_match
(
"/[(@)]/"
,
$str_trimmed
)
||
!
preg_match
(
"/[(.)]/"
,
$str_trimmed
))
{
return
false
;
}
else
{
return
true
;
}
}
}
?>
\ No newline at end of file
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment