• Qatorli kiritish parametri Sorovlar index2.php
  • Amalga o`tamiz Bir oz nazariya Ehtimol, siz xatolardan tashqari, bundan biror narsa chiqarishni kuta olmaysiz. Birinchidan, belgi ekanligini tushuning "
  • UNION
  • Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\WebServ\domains\sqlinj\index1.php on line 16




    Download 67,89 Kb.
    bet3/24
    Sana20.05.2024
    Hajmi67,89 Kb.
    #246484
    1   2   3   4   5   6   7   8   9   ...   24
    Bog'liq
    Shuningdek, O’zbekiston Prezidenti 7-fevral kungi farmoni bilan -hozir.org

    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\WebServ\domains\sqlinj\index1.php on line 16
    Agarda hatolik chiqmasa, quyidagi sabablar bo`lishi mumkin:
    1.SQL in'ektsiyasi Bu yerga yo'q - filtrlangan qo`shtirnoq belgilari yoki oddiygina (int)ga almashtiruvchi o`rnatilgan
    2. Xatolar chiqarilishi o`chirilgan.
    Agar shunga qaramay, xato ko'rsatilsa. Biz SQL in'ektsiyasining birinchi turini topdik - Raqamli kiritish parametri.


    Qatorli kiritish parametri
    So'rovlar index2.php ga yuboriladi . Ushbu faylda so'rov quyidagicha ko'rinadi:
    $user = $_GET['user'];
    $query = "SELECT * FROM news WHERE user='$user'";
    Bu yerda biz foydalanuvchi nomi boʻyicha yangiliklarni tanlaymiz va yana uni filtrlamaymiz, yana taklif bilan soʻrov yuboramiz:
    sqlinj/index2.php?user=AlexanderPHP'
    Xato berdi. OK! Shunday qilib, zaiflik mavjud. Boshlash uchun etarli - keling, mashg'ulotlarga o'taylik.


    Amalga o`tamiz
    Bir oz nazariya
    Ehtimol, siz xatolardan tashqari, bundan biror narsa chiqarishni kuta olmaysiz. Birinchidan, belgi ekanligini tushuning " -- " SQL tilida izoh hisoblanadi.
    DIQQAT! Undan oldin va keyin boʻsh joy boʻlishi kerak. URLda ular %20 sifatida uzatiladi.
    Sharhdan keyin hamma narsa oʻchiriladi. Yaʼni soʻrov:
    SELECT * FROM news WHERE user='AlexanderPHP' – habrahabra
    muvaffaqiyatli ishlaydi, siz buni index2.php skriptida quyidagi so'rovni yuborish orqali sinab ko'rishingiz mumkin:
    sqlinj/index2.php?user=AlexanderPHP'%20--%20habrahabr
    UNION parametrini bilib oling . SQLda UNION kalit so'zi ikkita SQL so'rovi natijalarini bitta jadvalga birlashtirish uchun ishlatiladi. Ya'ni, bizga kerak bo'lgan narsani boshqa stoldan tortib olish uchun.


    Ushbu ma`lumotgan foyda tomonini olamiz
    Agar parametr "Raqamli" bo'lsa, so'rovda biz taklifni yuborishimiz shart emas va tabiiy ravishda oxirida sharh qo'yamiz. Keling, index1.php skriptiga qaytaylik .
    Keling, sqlinj/index1.php?id=1 UNION SELECT 1 skriptiga murojaat qilaylik . Biz ma'lumotlar bazasiga quyidagi so'rovni olamiz:
    SELECT * FROM news WHERE id=1 UNION SELECT 1
    Va u bizga xatolik berdi, chunki so'rovlarni yig'ish bilan ishlash uchun bizga bir xil miqdordagi maydonlar kerak.
    Chunki Birinchi so'rovda ularning soniga ta'sir o'tkaza olmaganimiz uchun, ikkinchisida ularning raqamini birinchisiga teng bo'lishi uchun tanlashimiz kerak.



    Download 67,89 Kb.
    1   2   3   4   5   6   7   8   9   ...   24




    Download 67,89 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\WebServ\domains\sqlinj\index1.php on line 16

    Download 67,89 Kb.