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

Téma: Speciális karakterek

  1. #1
    Tag aboy logója
    Csatlakozott
    08-05-28
    Hely
    Püspökladány
    Hozzászólás
    57
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás Speciális karakterek

    Hello Mindenki!

    Kerestem, de nem találtam olyan témát, amiben az én problémámról lenne szó.
    Ezért nyitottam egy újat.
    Arról lenne szó, hogy a weblapomon a felhasználó beküld egy verset/novellát és egy php kód azt html-ben menti el. A probléma az, hogy az idézőjeleket („”) ugyan rendesen kezeli, de a felhasználók zöme nem ezeket használja, inkább " jeleket. Na és ezt nem kezeli rendesen. Ezt adja vissza: \"
    Azt tudom, hogy miért. De sehogy nem tudom beállítani.
    Próbáltam már a str_replace is hogy " cserélje erre ” Persze, hogy nem sikerült.
    Úgyhogy nagyon szépen megkérném, aki tud segítsen nekem.

    Előre is kösz.

    aboy



  2. #2
    Bölcs
    Csatlakozott
    08-01-02
    Hozzászólás
    1.271
    Begyűjtött 82 köszönetet
    53 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Nálam ez működik:
    PHP kód:
    <?php
    $valami
    ='itt lakik a "Mikulás"';
    $pattern '"';
    $replacement '”';
    $valami=str_replace($pattern$replacement$valami);
    print 
    $valami;
    ?>
    Upsz, nem egészen ugyanaz jelenik meg. A lényeg, hogy a ” helyett írj:
    & # 1 4 8 ;
    -t szóközök nélkül.


    Utoljára módosítva: oszti által : 2009-05-02 12:59

  3. #3
    Tag aboy logója
    Csatlakozott
    08-05-28
    Hely
    Püspökladány
    Hozzászólás
    57
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    A " jelet ugyan kicseréli erre ” , de az elé is odateszi a \
    Valami más baj lehet.
    Itt az eredeti kód.. Valaki nézzen bele lécci, lécci, lécci.
    hxxp://irok.atw.hu/original-post.txt

    azért kösz oszti

    aboy



  4. #4
    Törzsvendég
    Csatlakozott
    09-01-29
    Hozzászólás
    124
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Idézet aboy eredeti hozzászólása Hozzászólás megtekintése
    A " jelet ugyan kicseréli erre ” , de az elé is odateszi a \
    Valami más baj lehet.
    Itt az eredeti kód.. Valaki nézzen bele lécci, lécci, lécci.
    hxxp://irok.atw.hu/original-post.txt

    azért kösz oszti

    aboy
    Próbáld meg a stripslashes()-t használni, de előfordulaht, hogy ingyenes szolgáltatónál ez sem lesz eredményes.



  5. #5
    Bölcs
    Csatlakozott
    08-01-02
    Hozzászólás
    1.271
    Begyűjtött 82 köszönetet
    53 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Vagy próbáld a \"-t cserélni.

    $pattern = '\\\"';
    (azaz 3 db \ jelet írj)



  6. #6
    Bölcs
    Csatlakozott
    07-08-28
    Hozzászólás
    1.024
    Begyűjtött 146 köszönetet
    105 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Hali,

    Átnéztem a kódot, és lpmorpheus által javasolt stripslahses() fügvény a megoldás számodra.


    Ugyan akkor vigyázz. Ha ezt kikapcsolod, akkor az utolsó védvonal is eltünik ami jelenleg megvéd az olyan rossz indulatú kódoktól, mint amilyet jelenleg az általam beküldött novellában találsz (bocsi, muszály volt tesztelnem az elképzeléseimet)

    Ha a stripslashes függvénnyel megvagy, akkor ajánlom figyelmedbe a következő pár függvényt:
    - htmlspecialchars
    - striptags

    Ja és a TLoF néven létrehozoett mindent törölj, nem akarom tönkre tenni a lapodat.



  7. #7
    Tag aboy logója
    Csatlakozott
    08-05-28
    Hely
    Püspökladány
    Hozzászólás
    57
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    TLoF: kösz az alertet
    am nem futott le.. mert még nem volt stripslahses() fügvény...
    a "verset" töröltem, de az usert meghagyhatom? had lássák, hogy jó "sokan" vagyunk.

    És végül a legjobb megoldást választottam:
    Jól rászóltam a felhasználókra, hogy " helyett használják az igazi idézőjeleket.

    azért mindenkinek kösz!

    uff: aboy



  8. #8
    Bölcs
    Csatlakozott
    07-08-28
    Hozzászólás
    1.024
    Begyűjtött 146 köszönetet
    105 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Nem oldottad meg a problémát, csak elkented.

    PHP kód:
        public static function clean($data)
        {
            
    $data stripslashes($data);
            
    $mit = array ('<'   '>');
            
    $mire =array ('&lt;''&gt;');
            
    $data strip_tags($data);
            
    $data str_replace($mit$mire$data);
            return 
    $data;
        } 
    Ajánlott lenne legalább egy ilyen függvényt lefuttatni minden adatra amit a felhasználótól kapsz. Ez sem tökéletes, mert néhány spéci böngésző, spéci hibáját talán ki lehet használni vele, de azért eszméletlenül megnehezíti a dolgot.



  9. #9
    Net vadász nagysanyi logója
    Csatlakozott
    09-04-11
    Hely
    Budapest
    Hozzászólás
    483
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Ez majd megoldja a problémát:

    PHP kód:
    function charset_decode_utf_8 ($string) {
        if (! 
    ereg("[\200-\237]"$string) and ! ereg("[\241-\377]"$string))
            return 
    $string;
        
    $string preg_replace("/([\340-\357])([\200-\277])([\200-\277])/e",       
        
    "'&#'.((ord('\\1')-224)*4096 + (ord('\\2')-128)*64 + (ord('\\3')-128)).';'",   
        
    $string);
        
    $string preg_replace("/([\300-\337])([\200-\277])/e",
        
    "'&#'.((ord('\\1')-192)*64+(ord('\\2')-128)).';'",
        
    $string);
        return 
    $string;


    $adat charset_decode_utf_8($adat); 



    Utoljára módosítva: nagysanyi által : 2009-05-09 20:28 Oka: meghívás

  10. #10
    Törzsvendég
    Csatlakozott
    09-01-29
    Hozzászólás
    124
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: Speciális karakterek

    Naaa, nem kell azt annyira túlcifrázni.
    Jó pont az ATW-nek, amiért sztenderd az addslashes(), de a beolvasott adatokkal elég csak ennyit csinálni:

    Kód:
    $mehet_az_adatbazisba = stripslashes	(htmlspecialchars	($_POST["adat"], ENT_QUOTES, "UTF-8"));




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
  •