اذهب إلى المحتوى
  • 0

التحقق من مدخلات المستخدم في لغة php بشكل صحيح isset - empty

Flutter Dev

السؤال

أحاول استعمال if الشرطية في ملفات PHP قبل الاتصال بقاعدة البيانات ولدي الكود التالي:

<?php
require_once 'connt.php';

$id=$_GET['id'];
$IDCat=$_GET['IDCat'];


if($_GET['IDCat']== '310') {



 $sql="SELECT  * FROM .......



}else if($_GET['IDCat']=='315') {

    
  $sql="SELECT  * FROM .......
  
    
    
}


$stmt = $con->prepare($sql); 

$stmt->bind_param("s",$id);

$stmt->execute();

$result = $stmt->get_result();


$array = array();

while ($row  = mysqli_fetch_assoc($result))
{
	$array[] = $row;
}


echo ($result) ?
json_encode(array("code" => 1, "result"=>$array)) :
json_encode(array("code" => 0, "message"=>"Data not found !"));


?>

 

هل طريقة كتابة الكود بشكل هذا صحيحة ؟وامانه ؟

موقع الشرط وكتابته :

if($_GET['IDCat']== '310')

بشكل هذا هل هو صحيح ؟

ام توجد طريقة مختلفة افضل لفعل ذلك؟

حقيقه هذا اول مره استعمل الشرط في ملفات PHP  ياليت أصحاب الخبرة يفيدونا 

الهدف الشرط هنا انني ارغب لو قمت بأرسال الرقم الفلاني ان تتفعل الاستعلام الذي في ذاك الشرط بمعنى يعتمد على الرقم الذي سوف يحصل عليه

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

لا مشكلة في كتابة الشيفرة كذلك، التحقق من وجود قيمة ضمن الطلب والتصرف على أساسها لتعيين الاستعلام الحاصل والاستفادة من العبارة الشرطية if طريقة سليمة، لكن بما أنك استخرجت القيمة سابقًا ووضعتها ضمن متغير يمكنك التحقق من ذلك المتغير، قد تضيف لاحقًا معالجة لتلك القيمة خلال استخراجها فتضيفه في الأعلى فقط ولا تغير الشرط كالتالي:

$IDCat = $_GET['IDCat'];

if($IDCat == '310') {
  // معالجة وجود القيمة
  ...
}

يمكنك الاطلاع أكثر على الجمل الشرطية في PHP وطرق استخدامها من المقال التالي:

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

من الأفضل التحقق من أن الحقول التي أرسلها التطبيق أو HTML FORM تحوي بيانات وغير فارغة، نستعمل الدالة isset للتحقق من وجود بيانات ضمن الحقل., وأن القيمة نفسها غير فارغة

  • نعمل trim لحذف الفراغات التي من الممكن أن يرسلها المستخدم أو تمر عن طريق الخطأ
<?php

$id    = $_GET['id'];
$IDCat = $_GET['IDCat'];

if ( isset($id) && trim($id)!= "" && isset($IDCat) && trim($IDCat)!= "" ) {
	// code
} else {
	// error  بيانات ناقصة
}
  • ملاحظة: يمكن استعمال الدالة empty ولكنها تعتبر 0 مثلاً قيمة فارغة و أحيانا نريد تمرير 0 أو False لذلك نتوخى الحذر و نتأكد لكل قيمة حسب نوعها أيضاً
empty, تعتبر كل شيء من التالي فارغ empty:

""  (an empty string)
0   (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)

في حال عدم تمريرك لأي من القيم السابقة يمكن عمل التالي:

<?php

$id    = $_GET['id'];
$IDCat = $_GET['IDCat'];

if ( !empty($id) && !empty($IDCat) ) {
	// code
} else {
	// error  بيانات ناقصة
}

مع العلم استخدام IF في مثالك يتحقق من قيمة واحدة وهو كاف

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...