الفرق بين المراجعتين لصفحة: «PHP/addslashes»

من موسوعة حسوب
< PHP
لا ملخص تعديل
إنشاء الصفحة
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة addslashes()‎ في PHP }}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة addslashes()‎ في PHP }}</noinclude>
(PHP 4, PHP 5, PHP 7)
تضيف الدالة addslashes()‎ الخطوط المائلة العكسية (backslashes).
=== الوصف ===
<syntaxhighlight lang="php">
string addslashes (string $str).
</syntaxhighlight>تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي:  
- علامات الاقتباس المفردة (')
-علامات الاقتباس المزدوجة (")
-الخطوط المائلة العكسية (\)
- NUL (البايت NUL)
تستخدم الدالة addslashes()‎ لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP:<syntaxhighlight lang="php">
<?php
$str = "O'Reilly?";
eval("echo '" . addslashes($str) . "';");
?>
</syntaxhighlight>قبل نسخة 5.4.0  للغة PHP، كانت ميزة magic_quotes_gpc مُفَعلة تلقائيًا، إذ تُطَبق الدالة addslashes()‎ على كل من الدوال GET و POST و COOKIE. لذلك تجنب استخدام addslashes()‎ على سلسلة نصية  طُبِقَت عليها magic_quotes_gpc من قبل وإلا فإن السلسلة النصية ستُهرَب مرتين. تسمح الدالة magic_quotes_gpc()‎ بالتحقق من الميزة magic_quotes_gpc إن كانت مفعلة أو لا.
يستعمل البعض الدالة addslashes()‎ خطأً لمنع «حقن شيفرات SQL» أي SQL Injection. بدلًا من ذلك ينبغي استعمال الدوال الخاصة بالسلاسل النصية لقواعد البيانات.
=== المعاملات ===
==== str ====
السلسلة النصية التي نريد تهريبها.
=== أمثلة ===
==== المثال 1: مثال بسيط عن الدالة addslashes()‎ ====
<syntaxhighlight lang="php">
<?php
$str = "Is your name O'Reilly?";
// Is your name O\'Reilly?
echo addslashes($str);
?>
</syntaxhighlight>
=== انظر أيضًا ===
* stripcslashes()‎: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالة addcslashes()‎.
* stripslashes()‎: حذف الخطوط المائلة العكسية.
* addcslashes()‎: تهريب سلسلة نصية بإستعمال الخطوط المائلة العكسية على نمط لغة C.
* htmlspecialchars()‎: تحويل المحارف الخاصة مدخلات HTML.
* quotemeta()‎: اقتباس المحارف الخاصة.
* get_magic_quotes_gpc()‎: تتفقد حالة magic_quotes_gpc إن كانت مفعلةً أم لا.
=== مصادر ===
* صفحة الدالة addslashes في توثيق PHP الرسمي.

مراجعة 12:33، 5 أبريل 2018


(PHP 4, PHP 5, PHP 7)

تضيف الدالة addslashes()‎ الخطوط المائلة العكسية (backslashes).

الوصف

string addslashes (string $str).

تُعيد الدالة سلسلةً نصيةً تسبقها خطوط مائلة عكسية (backslashes) قبل المحارف المُراد تهريبها. تتمثل هذه المحارف فيما يلي:  

- علامات الاقتباس المفردة (')

-علامات الاقتباس المزدوجة (")

-الخطوط المائلة العكسية (\)

- NUL (البايت NUL)

تستخدم الدالة addslashes()‎ لتهريب أحد المحارف المذكورة آنفًا داخل كود برمجي بلغة PHP:

<?php

$str = "O'Reilly?";

eval("echo '" . addslashes($str) . "';");

?>

قبل نسخة 5.4.0  للغة PHP، كانت ميزة magic_quotes_gpc مُفَعلة تلقائيًا، إذ تُطَبق الدالة addslashes()‎ على كل من الدوال GET و POST و COOKIE. لذلك تجنب استخدام addslashes()‎ على سلسلة نصية  طُبِقَت عليها magic_quotes_gpc من قبل وإلا فإن السلسلة النصية ستُهرَب مرتين. تسمح الدالة magic_quotes_gpc()‎ بالتحقق من الميزة magic_quotes_gpc إن كانت مفعلة أو لا.

يستعمل البعض الدالة addslashes()‎ خطأً لمنع «حقن شيفرات SQL» أي SQL Injection. بدلًا من ذلك ينبغي استعمال الدوال الخاصة بالسلاسل النصية لقواعد البيانات.

المعاملات

str

السلسلة النصية التي نريد تهريبها.

أمثلة

المثال 1: مثال بسيط عن الدالة addslashes()‎

<?php

$str = "Is your name O'Reilly?";

// Is your name O\'Reilly?

echo addslashes($str);

?>

انظر أيضًا

  • stripcslashes()‎: حذف الخطوط المائلة العكسية التي أضيفت بواسطة الدالة addcslashes()‎.
  • stripslashes()‎: حذف الخطوط المائلة العكسية.
  • addcslashes()‎: تهريب سلسلة نصية بإستعمال الخطوط المائلة العكسية على نمط لغة C.
  • htmlspecialchars()‎: تحويل المحارف الخاصة مدخلات HTML.
  • quotemeta()‎: اقتباس المحارف الخاصة.
  • get_magic_quotes_gpc()‎: تتفقد حالة magic_quotes_gpc إن كانت مفعلةً أم لا.

مصادر

  • صفحة الدالة addslashes في توثيق PHP الرسمي.