Latest web development tutorials
×

PHP مسار

PHP مسار PHP مقدمة موجزة PHP تثبيت PHP قواعد PHP متغير PHP echo/print PHP أنواع البيانات PHP ثابت PHP سلسلة PHP مشغلي PHP If...Else PHP Switch PHP مجموعة PHP فرز مجموعة PHP Superglobals PHP While تداول PHP For تداول PHP وظيفة PHP المتغيرات السحرية PHP مساحات PHP الشيئية

PHP شكل

PHP شكل PHP مصادقة النماذج PHP شكل - الحقول المطلوبة PHP شكل - البريد الإلكتروني التحقق وURL PHP المثال شكل كامل PHP $_GET متغير PHP $_POST متغير

PHP دروس متقدمة

PHP المصفوفات متعددة الأبعاد PHP تاريخ PHP احتواء PHP ملف PHP تحميل ملف PHP Cookie PHP Session PHP E-mail PHP أمن E-mail PHP Error PHP Exception PHP فلتر PHP فلتر متقدم PHP JSON

PHP 7 الميزات الجديدة

PHP 7 الميزات الجديدة

PHP قاعدة بيانات

PHP MySQL مقدمة موجزة PHP MySQL صلة PHP MySQL إنشاء قاعدة بيانات PHP MySQL إنشاء جدول بيانات PHP MySQL إدراج بيانات PHP MySQL إدراج بيانات متعددة PHP MySQL القوائم المعدة PHP MySQL قراءة البيانات PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX مقدمة موجزة AJAX PHP AJAX قاعدة بيانات AJAX XML AJAX البحث في الوقت الحقيقي AJAX RSS Reader AJAX تصويت

PHP الدليل المرجعي

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP معالجة الصور PHP RESTful

مرشح PHP

يستخدم PHP مرشح للتحقق من صحة وتصفية البيانات من مصادر غير آمنة، مثل إدخال المستخدم.


ما هو تصفية PHP؟

يستخدم PHP مرشح للتحقق من صحة وتصفية البيانات من مصادر غير آمنة.

اختبار والتحقق من صحة المدخلات وفلتر المستخدم أو البيانات المخصصة هو جزء مهم من أي تطبيق ويب.

تم تصميم تمديد PHP فلتر لجعل البيانات تصفية أسهل وأسرع.


لماذا استخدام فلتر؟

تقريبا جميع تطبيقات الويب التي تعتمد على المدخلات الخارجية. تأتي هذه البيانات عادة من المستخدمين أو التطبيقات الأخرى (مثل خدمات الويب). باستخدام المرشحات، ويمكنك التأكد من أن طلبات الحصول على نوع الإدخال الصحيح.

يجب عليك دائما تصفية البيانات الخارجية!

تصفية الإدخال القضايا الأمنية التطبيق الأكثر أهمية.

ما هي البيانات الخارجية؟

  • إدخال البيانات من شكل
  • بسكويت
  • خدمات البيانات على شبكة الإنترنت
  • المتغيرات الخادم
  • نتائج الاستعلام قاعدة البيانات

وظائف ومرشحات

لتصفية متغير، استخدم إحدى الوظائف التصفية التالية:

  • filter_var () - لتصفية متغير واحد من قبل مرشح محدد
  • filter_var_array () - لتصفية متغيرات متعددة من نفس أو مرشحات مختلفة
  • filter_input - احصل على متغير واحد المدخلات وتصفية عليه
  • filter_input_array - الحصول على مزيد من متغيرات المدخلات، ونفس أو مختلفة مرشحات لتصفية لهم

في المثال التالي، ونحن نستخدم filter_var () وظيفة بالتحقق من صحة عدد صحيح:

<?php
$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))
{
	echo("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

يستخدم رمز أعلاه في "FILTER_VALIDATE_INT" فلتر لتصفية متغير. منذ صحيح شرعي، وبالتالي فإن أعلاه كود إرادة الإخراج:

لو كنا في محاولة لاستخدام متغير غير صحيح (مثل "123abc")، يتم إخراج: "صحيح غير صالح".

للحصول على قائمة كاملة من وظائف والمرشحات، وزيارة موقعنا على دليل PHP تصفية المرجعي .


التأكد من صحتها والتعقيم

هناك نوعان من الفلاتر:

التحقق من المرشحات:

  • تستخدم للتحقق من صحة إدخال المستخدم
  • قواعد التنسيق صارمة (مثل URL أو البريد الإلكتروني التحقق)
  • في حال نجاحها، ونوع العائد المتوقع، إذا فشل في العودة FALSE

التعقيم المرشحات:

  • وهي تستخدم للسماح أو منع سلسلة الحرف المحدد
  • لا توجد قواعد تنسيق البيانات
  • دائما العودة السلسلة

الخيارات والأعلام

تستخدم الخيارات وأعلام لإضافة خيارات تصفية إضافية للمرشحات محدد.

مرشحات مختلفة لديها خيارات والأعلام المختلفة.

في المثال التالي، ونحن نستخدم 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("不是一个合法的整数");
}
else
{
	echo("是个合法的整数");
}
?>

مثل رمز أعلاه، هو الخيار المناسب يجب أن توضع في مجموعة تسمى "خيارات" في. إذا لم يكن مطلوبا على علامة في مجموعة.

منذ العدد الصحيح هو "300"، أنها ليست ضمن نطاق محدد، والإخراج من التعليمات البرمجية أعلاه سيكون:

不是一个合法的整数

للحصول على قائمة كاملة من وظائف والمرشحات، وزيارة موقعنا على دليل PHP تصفية المرجعي . يمكنك ان ترى الخيارات المتاحة لكل مرشح والأعلام.


إدخال التحقق من صحة

دعونا نحاول التحقق من صحة المدخلات من نموذج.

يتعين علينا القيام به أول شيء هو للتأكد من أن البيانات المدخلة نحن نبحث عن.

ثم نستخدم وظيفة filter_input () لتصفية البيانات التي تم إدخالها.

في المثال التالي، يتم تمرير المدخلات متغير "البريد الإلكتروني" إلى صفحة PHP:

<?php
if(!filter_has_var(INPUT_GET, "email"))
{
	echo("没有 email 参数");
}
else
{
	if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL))
	{
		echo "不是一个合法的 E-Mail";
	}
	else
	{
		echo "是一个合法的 E-Mail";
	}
}
?>

ومن الأمثلة على هذه النتائج على النحو التالي:

وأوضح الأمثلة

في المثال أعلاه لديه متغير الإدخال عن طريق (البريد الإلكتروني) "GET" طريقة نقل:

  1. الكشف عن وجود "البريد الإلكتروني" إدخال متغير "GET" نوع
  2. إذا كان هناك متغير مدخلات لاكتشاف ما إذا كان ذلك هو عنوان بريد إلكتروني صالح

إدخال تنقية

دعونا نحاول توضيح قادمة من URL النموذج.

أولا وقبل كل شيء، نحن بحاجة للتأكد من أن البيانات المدخلة نحن نبحث عن.

ثم نحن تطهير وظيفة إدخال البيانات filter_input ().

في المثال التالي، يتم تمرير المدخلات متغير "رابط" إلى صفحة PHP:

<?php
if(!filter_has_var(INPUT_GET, "url"))
{
	echo("没有 url 参数");
}
else
{
	$url = filter_input(INPUT_GET, 
	"url", FILTER_SANITIZE_URL);
	echo $url;
}
?>

وأوضح الأمثلة

ومن الأمثلة على ما سبق من متغير واحد المدخلات (رابط) "GET" طريقة إرسالها:

  1. الكشف عن وجود "رابط" المتغيرات الإدخال "GET" نوع
  2. في حالة وجود متغير المدخلات، وتنقية لها (إزالة أحرف غير قانونية)، وسيتم تخزين في المتغير $ رابط

إذا كان المتغير المدخلات عبارة عن سلسلة من هذا القبيل: "http://www.ruaanoob.com/"، المتغير $ رابط بعد تنقيتها كما يلي:



إن تعددية تصفية إدخال

غالبا ما تتكون أشكال حقول الإدخال متعددة. لتجنب filter_var أو filter_input ظيفة دعا مرارا وتكرارا، يمكننا استخدام filter_var_array 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("年龄必须在 1 到 120 之间。<br>");
}
elseif(!$result["email"])
{
	echo("E-Mail 不合法<br>");
}
else
{
	echo("输入正确");
}
?>

وأوضح الأمثلة

في المثال السابق على ثلاثة متغيرات المدخلات (الاسم، العمر، والبريد الإلكتروني) التي تنتقل من خلال أسلوب "GET":

  1. إعداد مصفوفة الذي يحتوي على أسماء متغيرات المدخلات المستخدمة لتحديد المتغيرات الإدخال ومرشح
  2. () وظيفة، إدخال المعلمات، بما في ذلك المتغيرات GET وضعت للتو filter_input_array دعوة مجموعة
  3. الكشف $ نتيجة متغير "عمر" و "البريد الإلكتروني" متغير المدخلات غير قانونية. (إذا كان هناك مدخلات غير الشرعيين، بعد استخدام وظيفة filter_input_array ()، متغير الإدخال FALSE).

filter_input_array () والحجة الثانية إلى وظيفة يمكن أن يكون صفيف أو هوية مرشح واحد.

إذا كانت المعلمة هوية مرشح واحد، ثم مرشح محدد وتصفية كل القيم مجموعة الإدخال.

إذا كانت هذه المعلمة صفيف، يجب على مجموعة يتوافق مع القواعد التالية:

  • يجب أن يكون مجموعة النقابي تحتوي على متغير الدخل هو مفتاح مجموعة (مثل "عمر" متغير المدخلات)
  • يجب أن تكون قيمة هذه المجموعة هوية المرشح، أو أحكام التصفية والأعلام والخيارات صفائف

استخدام تصفية الاستدعاء

باستخدام مرشحات FILTER_CALLBACK، يمكنك استدعاء وظيفة مخصصة، واستخدامها كعامل تصفية للاستخدام. وبالتالي، لدينا سيطرة كاملة على تصفية البيانات.

يمكنك إنشاء وظيفة المخصصة الخاصة بك، أو يمكنك استخدام وظائف PHP القائمة.

سوف تكون جاهزة للاستخدام وظيفة التصفية، وفقا للخيارات الأحكام المحددة سلفا الأسلوب. في مجموعة النقابي مع "خيارات" اسم.

في المثال التالي، ونحن نستخدم وظيفة مخصصة للجميع "_" تحويلها إلى فضاءات:

<?php
function convertSpace($string)
{
	return str_replace("_", ".", $string);
}

$string = "www_w3big_com!";

echo filter_var($string, FILTER_CALLBACK,
array("options"=>"convertSpace"));
?>

نتيجة للرمز أعلاه هي ما يلي:

وأوضح الأمثلة

الأمثلة المذكورة أعلاه عن "_" إلى "".:

  1. لإنشاء "_" يتم استبداله "." وظيفة
  2. وظيفة مكالمة filter_var ()، الذي المعلمات لتصفية FILTER_CALLBACK ومجموعة تحتوي على وظيفتنا