Eredmény: 1 - 8 (8) összesen

Téma: Biztonságos lekérdező sztring ékezettel

  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 Biztonságos lekérdező sztring ékezettel

    Azt szeretném megoldani, hogy ha valaki az URL lekérdező sztringjébe ( ami valahogy így néz ki: ...cim.php?kezdobetu=A ) A helyett Á betűt ír, akkor az úgy is működjön és akkor az A és Á betűvel kezdődő videókat is listázza az oldalra.
    Úgy vettem észre, hogy a mysql_query lekérdezésbe a like után mindegy hogy A-t vagy Á-t írok így is úgy is listázza mindkettőt ( ... LIKE 'A%' ).
    Az URL beírásakor azonban nem ez a helyzet. Azt is meg akartam csinálni, hogy ha valaki nem egy betűt, hanem hanem egy szót ír be, akkor vágja le az első karaktert és csak azt vegye figyelembe. Ahogy nézegettem a neten az 'mb_str'-nél és az 'urlencode'-nál van a megoldás, de ha előbb átkódolom és utána végzem a levágást, akkor csak a % vágja le.
    Szóval hogy szokás az ilyet megoldani?



  2. #2
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: Biztonságos lekérdező sztring ékezettel

    $betu = mb_substr($_GET['cim'], 0, 1, 'UTF-8');

    Figyelj még a kapcsolat kodólására.
    $dbc = mysql_connect($host, $user, $pass);
    mysql_select_db($dbs);
    mysql_set_charset('utf8',$dbc);



  3. #3
    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: Biztonságos lekérdező sztring ékezettel

    Idézet KForum eredeti hozzászólása Hozzászólás megtekintése
    $betu = mb_substr($_GET['cim'], 0, 1, 'UTF-8');

    Figyelj még a kapcsolat kodólására.
    $dbc = mysql_connect($host, $user, $pass);
    mysql_select_db($dbs);
    mysql_set_charset('utf8',$dbc);

    Ha beírom ezt a címsorba:
    Kód:
    ...cim.php?kezdobetu=Á
    És kiiratom a kimenetet:
    Kód:
    echo mb_substr($_GET['kezdobetu'],0,1,'UTF-8');
    Akkor csak egy kis kockát ad.

    A kapcsolatot így kódoltam:
    Kód:
    mysql_query("SET NAMES UTF8");
    mysql_query("SET CHARACTER SET UTF8");
    mysql_query("SET collation_connection = 'utf8_hungarian_ci'");




  4. #4
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: Biztonságos lekérdező sztring ékezettel

    UTF-8 ban nézed az oldalt, nézd meg a forrást lehet hogy jól van csak a böngésző probálkozik mással.



  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: Biztonságos lekérdező sztring ékezettel

    Idézet KForum eredeti hozzászólása Hozzászólás megtekintése
    UTF-8 ban nézed az oldalt, nézd meg a forrást lehet hogy jól van csak a böngésző probálkozik mással.
    Már végigjártam ezt: minden fájlt UTF-8-ba BOM nélkül, meg a böngészőbe is.



  6. #6
    Hekker 0xFF logója
    Csatlakozott
    09-08-21
    Hozzászólás
    1.079
    Begyűjtött 168 köszönetet
    118 hozzászólásával

    Alapbeállítás re: Biztonságos lekérdező sztring ékezettel

    Hmm fura, azt próbáld meg hogy ha kiiratod mit ad vissza kiadja rendesen az Á betüt? vagyis ha a $_GET et iratod ki, a URL decode ot azt meg kellene csinálja php alapból

    Esetleg próbáld meg még ezt
    $utf8_text = html_entity_decode( $text, ENT_QUOTES, "utf-8" );



  7. #7
    MinderBinder edem logója
    Csatlakozott
    09-09-02
    Hely
    Budapest
    Hozzászólás
    1.093
    Thanked 1 Time in 1 Post

    Alapbeállítás re: Biztonságos lekérdező sztring ékezettel

    iconv library-val próbáltad már? Nekem az a bejövős (pl akkor is ha url-t generálok valamiből).



  8. #8
    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: Biztonságos lekérdező sztring ékezettel

    Idézet KForum eredeti hozzászólása Hozzászólás megtekintése
    Hmm fura, azt próbáld meg hogy ha kiiratod mit ad vissza kiadja rendesen az Á betüt? vagyis ha a $_GET et iratod ki, a URL decode ot azt meg kellene csinálja php alapból

    Esetleg próbáld meg még ezt
    $utf8_text = html_entity_decode( $text, ENT_QUOTES, "utf-8" );
    Közbe megtaláltam a megoldást:
    Az urlencode helyett az utf8_encode-ot kell használni, így (az első karakter levágásával együtt):

    Kód:
    mb_substr(utf8_encode($_GET['kezdobetu']),0,1,'UTF-8')
    Köszi mindenkinek



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
  •