PHP ��������Filter��
PHP ������������֤�������Էǰ�ȫ��Դ�����ݣ������û������롣
ʲô�� PHP ��������
PHP ������������֤�������Էǰ�ȫ��Դ�����ݡ�
��֤�����û�������Զ����������κ� Web Ӧ�ó������Ҫ��ɲ��֡�
��� PHP �Ĺ�������չ��Ŀ����ʹ���ݹ��˸����ɿ�ݡ�
Ϊʲôʹ�ù�������
�������� web Ӧ�ó��������ⲿ�����롣��Щ����ͨ�������û�������Ӧ�ó����� web ����ͨ��ʹ�ù����������ܹ�ȷ��Ӧ�г�������ȷ���������͡�
��Ӧ��ʼ�ն��ⲿ���ݽ��й��ˣ�
�������������Ҫ��Ӧ�ó���ȫ����֮һ��
ʲô���ⲿ���ݣ�
- ���Ա�������������
- Cookies
- ����������
- ���ݿ��ѯ���
����������
������˱�������ʹ������Ĺ���������֮һ��
- filter_var() - ͨ��һ��ָ���Ĺ����������˵�һ�ı���
- filter_var_array() - ͨ����ͬ�Ļ�ͬ�Ĺ����������˶������
- filter_input - ��ȡһ��������������������й���
- filter_input_array - ��ȡ��������������ͨ����ͬ�Ļ�ͬ�Ĺ����������ǽ��й���
������������У������� filter_var() ������֤��һ��������
<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
����Ĵ���ʹ���� "FILTER_VALIDATE_INT" �����������˱�����������������ǺϷ��ģ���˴��������ǣ�"Integer is valid"��
�������dz���ʹ��һ���������ı�����������ǣ�"Integer is not valid"��
���������ĺ����������б�����������ǵ� PHP Filter �ο��ֲ���
Validating �� Sanitizing
�����ֹ�������
Validating ��������
- ������֤�û�����
- �ϸ�ĸ�ʽ������ URL �� E-Mail ��֤��
- �������ɹ�Ԥ�ڵ����ͣ����� FALSE
Sanitizing ��������
- �����������ֹ�ַ�����ָ�����ַ�
- �����ݸ�ʽ����
- ʼ�շ����ַ���
ѡ��ͱ�־
ѡ��ͱ�־������ָ���Ĺ��������Ӷ���Ĺ���ѡ�
��ͬ�Ĺ������в�ͬ��ѡ��ͱ�־��
������������У������� filter_var() �� "min_range" �Լ� "max_range" ѡ����֤��һ��������
<?php
$var=300;
$int_options = array(
"options"=>array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))
{
echo("Integer is not valid");
}
else
{
echo("Integer is valid");
}
?>
��������Ĵ���һ����ѡ��������һ����Ϊ "options" ����������С����ʹ�ñ�־�������������ڡ�
���������� "300"��������ָ���ķ�Χ�ڣ����ϴ����������� "Integer is not valid"��
���������ĺ������������б�������� phpStudy �ṩ�� PHP Filter �ο��ֲᡣ�����Կ���ÿ���������Ŀ���ѡ��ͱ�־��
��֤����
������������֤���Ա��������롣
������Ҫ���ĵ�һ��������ȷ���Ƿ�����������ڲ��ҵ��������ݡ�
Ȼ�������� filter_input() ����������������ݡ�
������������У�������� "email" ������ PHP ҳ�棺
<?php
if(!filter_has_var(INPUT_GET, "email"))
{
echo("Input type does not exist");
}
else
{
if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
{
echo "E-Mail is not valid";
}
else
{
echo "E-Mail is valid";
}
}
?>
���ӽ��ͣ�
�����������һ��ͨ�� "GET" �������͵�������� (email)��
- ����Ƿ���� "GET" ���͵� "email" �������
- ����������������������Ƿ�����Ч���ʼ���ַ
��������
��������������һ�´ӱ��������� URL��
���ȣ�����Ҫȷ���Ƿ�����������ڲ��ҵ��������ݡ�
Ȼ�������� filter_input() �����������������ݡ�
������������У�������� "url" ������ PHP ҳ�棺
<?php
if(!filter_has_var(INPUT_POST, "url"))
{
echo("Input type does not exist");
}
else
{
$url = filter_input(INPUT_POST,
"url", FILTER_SANITIZE_URL);
}
?>
���ӽ��ͣ�
�����������һ��ͨ�� "POST" �������͵�������� (url)��
- ����Ƿ���� "POST" ���͵� "url" �������
- ������ڴ����������������о�����ɾ���Ƿ��ַ�����������洢�� $url ������
���������������������"http://www.W3#$%S^%$#ool.com.cn/"������� $url ����Ӧ���������ģ�
/
���˶������
����ͨ���ɶ�������ֶ���ɡ�Ϊ�˱���� filter_var �� filter_input �ظ����ã����ǿ���ʹ�� filter_var_array �� the filter_input_array ������
�ڱ����У�����ʹ�� filter_input_array() �������������� GET ���������յ��� GET ������һ�����ơ�һ�������Լ�һ���ʼ���ַ��
<?php
$filters = array
(
"name" => array
(
"filter"=>FILTER_SANITIZE_STRING
),
"age" => array
(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array
(
"min_range"=>1,
"max_range"=>120
)
),
"email"=> FILTER_VALIDATE_EMAIL,
);
$result = filter_input_array(INPUT_GET, $filters);
if (!$result["age"])
{
echo("Age must be a number between 1 and 120.<br />");
}
elseif(!$result["email"])
{
echo("E-Mail is not valid.<br />");
}
else
{
echo("User input is valid");
}
?>
���ӽ��ͣ�
���������������ͨ�� "GET" �������͵�������� (name, age and email)
- ����һ�����飬���а�����������������ƣ��Լ�����ָ������������Ĺ�����
- ���� filter_input_array �������������� GET ����������ղ����õ�����
- ��� $result �����е� "age" �� "email" �����Ƿ��зǷ������롣��������ڷǷ����룬��
filter_input_array() �����ĵڶ������������������һ�������� ID��
����ò����ǵ�һ�������� ID����ô���ָ���Ĺ�����������������������е�ֵ��
����ò�����һ�����飬��ô�����������ѭ����Ĺ���
- ������һ���������飬���а������������������ļ������� "age" ���������
- �������ֵ�����ǹ������� ID �������ǹ涨�˹���������־�Լ�ѡ�������
ʹ�� Filter Callback
ͨ��ʹ�� FILTER_CALLBACK �����������Ե����Զ���ĺ�����������Ϊһ����������ʹ�á����������Ǿ�ӵ�������ݹ��˵���ȫ����Ȩ��
�����Դ����Լ����Զ��庯����Ҳ����ʹ�����е� PHP ������
�涨�����õ��������ĺ�������涨ѡ��ķ�����ͬ��
������������У�����ʹ����һ���Զ���ĺ��������� "_" ת��Ϊ�ո�
<?php
function convertSpace($string)
{
return str_replace("_", " ", $string);
}
$string = "Peter_is_a_great_guy!";
echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>
���ϴ���Ľ���������ģ�
Peter is a great guy!
���ӽ��ͣ�
��������Ӱ����� "_" ת���ɿո�
- ����һ���� "_" �滻Ϊ�ո�ĺ���
- ���� filter_var() ���������IJ����� FILTER_CALLBACK �������Լ��������ǵĺ���������