Oldal: 1 / 2 12 UtolsóUtolsó
Eredmény: 1 - 10 (11) összesen

Téma: Lekérdező sztringben opcionális paraméterek

  1. #1
    Tag
    Csatlakozott
    10-07-26
    Hozzászólás
    78
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás Lekérdező sztringben opcionális paraméterek

    Szeretném azt megvalósítani az oldalon, hogy ha simán csak ennyi szerepel az URL-ben, hogy .../kategoria.php akkor véletlenül válasszon ki videókat (minden kategóriából egyet), ha pedig így adom meg, hogy .../kategoria.php?kategoria=video_kategoria1&sorszamto l=20. Tehát, hogy opcionálisak legyenek a paraméterek, mint pl. egy függvényben. Meg lehet ilyet valósítani PHP-ben?



  2. #2
    Szerkesztő
    Csatlakozott
    09-05-09
    Hozzászólás
    205
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Ha azt mondom, hogy meg, akkor jó?

    Egyébként paramétert isset függvénnyel tesztelj.

    PHP kód:
    if (isset($_GET['kategoria']))
    {
    // kategóriában lévő videók listázása
    }
    else
    {
    // random videók listázása





  3. #3
    Mentor arth2o logója
    Csatlakozott
    10-03-11
    Hely
    Győr
    Hozzászólás
    408
    Begyűjtött 7 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Sokkal jobban járnál, ha keresnél itt a fórumon valakit a megcsinálja helyetted. Mert az URL-ben küldözgetett paraméterekkel óvatosan kell bánni. Konkrétan az l=20 gondolom Limit, feltételezem hogy SQL.

    a Switch / case feltételt javaslom és a default: ágba tedd ami akkor fut le mikor nincs param.

    http://twitt.hu/yS

    Kód:
    <?php
    $kategoria = trim(strip_tags($_GET["katagoria"]));
    
    //biztos hogy szám? :)
    $limit = (int)$_GET["l"];
    
    switch($kategoria){
       case "lorem":
      break;
      
      case "ipsum":
     break;
    
     case "akarmi":
     default:
       //ez az alap
     break;
    }
    ?>



    Utoljára módosítva: arth2o által : 2010-08-28 18:18 Oka: (int) utasítás

  4. #4
    Szerkesztő
    Csatlakozott
    09-05-09
    Hozzászólás
    205
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    @arth2o:
    Miért strip_tags-elsz és trim-elsz? XSS elleni védelem miatt inkább a view-ba kéne tenni.
    Miért kell a kategóriákat megadni? Szvsz azokat az adatbázisban kellene tárolni.



  5. #5
    Tag
    Csatlakozott
    10-07-26
    Hozzászólás
    78
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet arth2o eredeti hozzászólása Hozzászólás megtekintése
    Sokkal jobban járnál, ha keresnél itt a fórumon valakit a megcsinálja helyetted. Mert az URL-ben küldözgetett paraméterekkel óvatosan kell bánni. Konkrétan az l=20 gondolom Limit, feltételezem hogy SQL.

    a Switch / case feltételt javaslom és a default: ágba tedd ami akkor fut le mikor nincs param.

    http://twitt.hu/yS

    Kód:
    <?php
    $kategoria = trim(strip_tags($_GET["katagoria"]));
    
    //biztos hogy szám? :)
    $limit = (int)$_GET["l"];
    
    switch($kategoria){
       case "lorem":
      break;
      
      case "ipsum":
     break;
    
     case "akarmi":
     default:
       //ez az alap
     break;
    }
    ?>
    Az nem l=20, hanem sorszámtól, hogy hanyas sorszámtól adjon ki öt videót: kiválaszt véletlenül, abban a kategóriában lévő videók közül mondjuk az 53-at és onnantól kitesz az oldalra 5-öt (53-tól 57-ig).
    És a video_kategória1, helyett eredetileg valamilyen konkrétan megnevezett kategória szerepel (nincs benne szám)



  6. #6
    Szerkesztő
    Csatlakozott
    09-05-09
    Hozzászólás
    205
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet toldigabor eredeti hozzászólása Hozzászólás megtekintése
    Az nem l=20, hanem sorszámtól, hogy hanyas sorszámtól adjon ki öt videót: kiválaszt véletlenül, abban a kategóriában lévő videók közül mondjuk az 53-at és onnantól kitesz az oldalra 5-öt (53-tól 57-ig).
    Részletkérdés.

    Idézet toldigabor eredeti hozzászólása Hozzászólás megtekintése
    És a video_kategória1, helyett eredetileg valamilyen konkrétan megnevezett kategória szerepel (nincs benne szám)
    Ez is.

    Tegyük föl van két adatbázis táblád, a videók és a kategóriák

    Kód:
    |   videok   |          | kategoriak |
    --------------          --------------
    |     id     |     >>>>>|     id     |
    | kategoria  |>>>>>     |     seo    |
    |    path    |          stb...
    stb...
    Ahol ID az elsődleges kulcs és videok.kategoria a kategoriak.id-re hivatkozik és seo a kategória keresőoptimalizált neve.

    Ekkor ezzel a két lekérdezéssel lehet lekérdezni az adott kategoriákhoz tartozó videókat:

    PHP kód:
    SELECT FROM videok LEFT JOIN (kategoriakON (videok.kategoria kategoria.idWHERE kategoriak.seo "'kategoria-seo'" LIMIT 'sorszam'
    De ha adatbázis nélkül is ismered a kategóriák azonosítóját, akkor
    PHP kód:
    SELECT FROM videok WHERE kategoria "'kategoria-azonosito'" LIMIT 'sorszam'
    ' ' alatt a saját beillesztett értékeidet értem.



  7. #7
    Tag
    Csatlakozott
    10-07-26
    Hozzászólás
    78
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet mallee eredeti hozzászólása Hozzászólás megtekintése
    Részletkérdés.



    Ez is.

    Tegyük föl van két adatbázis táblád, a videók és a kategóriák

    Kód:
    |   videok   |          | kategoriak |
    --------------          --------------
    |     id     |     >>>>>|     id     |
    | kategoria  |>>>>>     |     seo    |
    |    path    |          stb...
    stb...
    Ahol ID az elsődleges kulcs és videok.kategoria a kategoriak.id-re hivatkozik és seo a kategória keresőoptimalizált neve.

    Ekkor ezzel a két lekérdezéssel lehet lekérdezni az adott kategoriákhoz tartozó videókat:

    PHP kód:
    SELECT FROM videok LEFT JOIN (kategoriakON (videok.kategoria kategoria.idWHERE kategoriak.seo "'kategoria-seo'" LIMIT 'sorszam'
    De ha adatbázis nélkül is ismered a kategóriák azonosítóját, akkor
    PHP kód:
    SELECT FROM videok WHERE kategoria "'kategoria-azonosito'" LIMIT 'sorszam'
    ' ' alatt a saját beillesztett értékeidet értem.
    És akkor azt az isset-tel kell megadni, hogy adtam-e meg paramétereket? Mert úgy akarom, ha az oldalon rákattint valamelyik kategória linkre, akkor abból az adott kategóriából adjon ki 5-öt (ekkor kell az URL-ben a paraméter). Ha pedig felül a főmenűben kattint Videók kategóriánként-ra, akkor minden kategóriából 1-et tegyen ki véletlenül (ekkor nem kell paraméter).



  8. #8
    Szerkesztő
    Csatlakozott
    09-05-09
    Hozzászólás
    205
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet toldigabor eredeti hozzászólása Hozzászólás megtekintése
    És akkor azt az isset-tel kell megadni, hogy adtam-e meg paramétereket? Mert úgy akarom, ha az oldalon rákattint valamelyik kategória linkre, akkor abból az adott kategóriából adjon ki 5-öt (ekkor kell az URL-ben a paraméter). Ha pedig felül a főmenűben kattint Videók kategóriánként-ra, akkor minden kategóriából 1-et tegyen ki véletlenül (ekkor nem kell paraméter).
    Igen, az isset-tel tudod ellenőrizni egy változó meglétét és hogy a változó értéke nem NULL. A te esetedben ez tökéletes lesz.



  9. #9
    Mentor arth2o logója
    Csatlakozott
    10-03-11
    Hely
    Győr
    Hozzászólás
    408
    Begyűjtött 7 köszönetet
    2 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet mallee eredeti hozzászólása Hozzászólás megtekintése
    @arth2o:
    Miért strip_tags-elsz és trim-elsz? XSS elleni védelem miatt inkább a view-ba kéne tenni.
    Miért kell a kategóriákat megadni? Szvsz azokat az adatbázisban kellene tárolni.
    Azért mert nem szabad megbízni a felhasználóktól érkező adatokban. Amit látsz, csak érzékeltetés. Egy jóravaló PHP programozó ennél sokkal paranoiásabb. Switch: azt gondoltam jobban kontroll alatt szeretné tartani a kategóriákat.

    Én a view-ban már csak adatot jelenítenék meg. Ami oda ér, abban már nem lehet kártékony kód.

    Nem elég betolni a komplett SQL kérést. Szép, (látszik hogy már 1-2 begépeltél) de nem látom benne, hogy védekeznél az SQL injection ellen. Tipikus példát írtál arra, hogyan lehet beoltani egy SQL kérést.

    _http://en.wikipedia.org/wiki/SQL_injection



  10. #10
    Adminisztrátor BagiZoli logója
    Csatlakozott
    07-04-26
    Hely
    8200, Királynék városa
    Hozzászólás
    3.855
    Begyűjtött 320 köszönetet
    154 hozzászólásával

    Alapbeállítás re: Lekérdező sztringben opcionális paraméterek

    Idézet arth2o eredeti hozzászólása Hozzászólás megtekintése
    Én a view-ban már csak adatot jelenítenék meg. Ami oda ér, abban már nem lehet kártékony kód.
    100%-ban egyetértek. Ha már MVC-zik valaki, akkor a VIEW-t szerkesztő designernek ne kelljen már ismernie a php függvényeket. A paraméter kezelés "elméleti" ismereteim szerint egyébként is a Controller feladata.



Oldal: 1 / 2 12 UtolsóUtolsó

A téma címkéi:

Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •