• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
درمورد سبدخريد
#1
سلام عرض ميشود يه تابع دارم براي سبد خريده هيچي ازش سردر نميارم.البته اجرا ميشه هاااا.ولي چون ميخوام برم ارائه بدم نميدونم چجوري توضيح بدم.ميشه اگه در موردش توضيحي دارين برام بفرستين ممنونتون ميشم. يكي گف تابع sql injection سرچ كردم هيچي پيدا نكردم.ميشه ياريم كنيد؟؟خواهش
کد پی‌اچ‌پی:
[/align]<?php 

function find ($table $data)
{
$query="select * from ".$table." where ";
$i=1;
$condition='';
    foreach(
$data as $key => $value)
    {
        if(
$i count($data)) 
        {
            
$condition.=$key."='".$value."'"." and ";
            
        }
//end if
        
else
        {
            
$condition.=$key."='".$value."'"
        }
        
$i++;
    }
    
$query.=$condition;

  
//  $result =array();
    
$result=mysql_query($query);
    
//print_r($result); die;
    //echo($result); die;
    
if(mysql_num_rows($result)==0)
    {
        return 
false;
    }
    else if(
mysql_num_rows($result)==1)
    {
        
$rows=mysql_fetch_array($result);
    }
    else
    {
    while(
$row mysql_fetch_array($result))
    {
        
$rows[]=$row;
    }
    }
        return 
$rows;
}
?>
  پاسخ
تشکر شده توسط :
#2
سلام توضیح اجمالی میدم خدمتتون
این تابع برای اتصال به دیتابیس و دریافت اطلاعت از جدول هستش و خروجی یک آرایه از مقادیر برگشتی از جدول دیتابیس هست
این تابع دوتا پارامتر ورودی میگیره یک اسم جدول و 2 ارایه ای از شرط هایی که به واسطه اونها میخوایم اطلاعات از جدول رو بگیریم
حالا قسمت به قسمت میرم جلو:
1: با استفاده از کد زیر ما sql مورد نظرمون رو میسازیم که اسم جدول هست و شرطهامون اسم جدول که مشخص هست ولی شرطها بصورت یک ارایه هست که کی ارایه اسم فیلد جدول و کقدارش مقدار جدول هست و در نهایت شرط ساخته شده ده رو به sql اضافه میکنیم
کد پی‌اچ‌پی:
$query="select * from ".$table." where ";
$i=1;
$condition='';
    foreach(
$data as $key => $value)
    {
        if(
$i count($data)) 
        {
            
$condition.=$key."='".$value."'"." and ";
            
        }
//end if
        
else
        {
            
$condition.=$key."='".$value."'"
        }
        
$i++;
    }
    
$query.=$condition

در ادامه با تو جه به دستور sql ساخته از جدول اطلاعات رو دریافت میکنم
اول هم میاد با mysql_query دستور رو اجرا میکنه بعد 3تا if گذاشته اولی میگه اگه خروجی نداشت false برگردون دومین if میگه اگه خروجی 1 سطر بود همون سطر رور برگردون و سومی هم میگه اگه بیشتر از یک سطر بود تبدیلش میکنه به آرایه و بر میگردونه

بخش دومش که کاملا مشخص هست شاید گیرتون رو بخش اول باشه من یک مثال از فراخونی این تابع میزنم تا واضح بشه

فرض کنیم یک جدول داریم به اسم post که مثلا پست های نوشته شده رو توش نگه میداریم و فیلدهای این جدول هم id, title , psot , date , author باشند حالا من میخوام بگم همه پست هایی که author برابر M.J هست و title اون برابر با lesson هست رو برگردون این میشه فراخوانی تابع:
کد پی‌اچ‌پی:
$table 'post';
$data = array('author'=>'M.J''title'=>'lesson');
$rows find ($table $data); 

اما در مورد sql injection اون بحث گسترده ای هست ولی در کل باید این $data که بنوان شرط میفرستی رو مراقب باشی داده هایش باید متبر سازی بشن
اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی دیگه در مورد آزادی شعار نده !
آلبر کامو
  پاسخ
تشکر شده توسط : Reza water_lily
#3
خيلي ممنون و متشكرم از كمك تون
لطف كردينRolleyes
  پاسخ
تشکر شده توسط : M.J


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان