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)��

  1. ����Ƿ���� "GET" ���͵� "email" �������
  2. ����������������������Ƿ�����Ч���ʼ���ַ

��������

��������������һ�´ӱ��������� 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)��

  1. ����Ƿ���� "POST" ���͵� "url" �������
  2. ������ڴ����������������о�����ɾ���Ƿ��ַ�����������洢�� $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)

  1. ����һ�����飬���а�����������������ƣ��Լ�����ָ������������Ĺ�����
  2. ���� filter_input_array �������������� GET ����������ղ����õ�����
  3. ��� $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!

���ӽ��ͣ�

��������Ӱ����� "_" ת���ɿո�

  1. ����һ���� "_" �滻Ϊ�ո�ĺ���
  2. ���� filter_var() ���������IJ����� FILTER_CALLBACK �������Լ��������ǵĺ���������