Pagina 1 din 2 12 UltimulUltimul
Rezultate 1 la 10 din 12

Subiect: bla.php?id=Ceva & Ceva

  1. #1
    Avatarul lui necropsique
    necropsique este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    28th June 2005
    Locaţie
    Iasi
    Vârstă
    43
    Posturi
    374
    Putere Rep
    35


    Implicit bla.php?id=Ceva & Ceva

    Salut.

    Am si eu o problema de care nu am mai dat pana acum si nu prea mult timp sa ma o rezolv

    Incerc sa trimit id-ul Cerculete & Baloane de ex. unei pagini si se pare ca pagina respectiva nu intelege ce se intampla...


    De ex. daca incerc sa trimit paginii cerculete.php id-ul Cerculete & Baloane se pare ca nu primeste nimic, sau ca nu intelege id-ul

    www.cerculete.ro/cerculete.php?id=Cerculete & Baloane (nu merge)

    Daca ii trimit de ex. Cerculete si Baloane sau orice altfel de id fara caractere speciale cum e &, atunci e ok.

    www.cerculete.ro/cerculete.php?id=Cerculete si Baloane (merge)



    Din cate imi dau seama e probabil vorba de htmlspecialchars() dar nu stiu sigur inca.
    Are cineva ideie cum pot rezolva problema asta ? Sau ma puteti indruma spre o documentatie ?
    Am sinistra impresie ca e o intrebare a dracului de rookie dar nu m-am intalnit niciodata de problema asta pana acum..


    Multam anticipat.

  2. #2
    Avatarul lui andypopa
    andypopa este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    28th July 2005
    Locaţie
    Bucuresti
    Posturi
    417
    Putere Rep
    0


    Implicit

    hmm... incearca sa codezi ampersandul ala:

    www.cerculete.ro/cerculete.php?id=Cerculete & Baloane

    De fapt, daca ma gandesc mai bine, incearca sa codezi tot:

    http://www.cerculete.ro/cerculete.ph...amp;%20Baloane

    Ia vezi daca merge.

    Spor.

    <span style="color:red">EDIT: am aflat cum se foloseste htmlspecialchars()... ar trebui sa pui in cod
    Cod:
    htmlspecialchars&#40;$id&#41;;
    </span>

  3. #3
    Avatarul lui phane
    phane este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    5th September 2005
    Locaţie
    Bucuresti
    Vârstă
    38
    Posturi
    144
    Putere Rep
    0


    Implicit

    mai degraba o sa te ajute urlencode si urldecode.

  4. #4
    Avatarul lui m0n5t3r
    m0n5t3r este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    30th January 2005
    Locaţie
    intre tastatura si scaun
    Posturi
    52
    Putere Rep
    36


    Implicit

    nu poti sa pasezi '&' ca parte a unui string daca tu folosesti '&' ca delimiter, pentru ca, oricum l-ai coda, browser-ul o sa trimita acelasi lucru (oricum face el urlencode si decodeaza entitatile cand face request).
    pe unde am avut de pasat chestii de genul asta am inlocuit & cu "and" (in cazul tau "si") si am avut grija ca pe unde generam ceva din url (breadcrumb, de exemplu) sa schimb "and" cu "&amp;"
    O alta solutie ar fi sa folosesti ";" pentru delimitare, setabil in .htaccess:
    Cod:
     php_value arg_separator.input &#34;;&#34;
    cred.
    \"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.\" -- Rich Cook

  5. #5
    Avatarul lui danic
    danic este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    16th November 2004
    Locaţie
    Timisoara, Timis
    Vârstă
    42
    Posturi
    255
    Putere Rep
    0


    Implicit

    Corect, m0nst3r.
    Site-ul oficial PHP spune:
    Be careful about variables that may match HTML entities. Things like &amp, &copy and &pound are parsed by the browser and the actual entity is used instead of the desired variable name. This is an obvious hassle that the W3C has been telling people about for years. The reference is here: http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP supports changing the argument separator to the W3C-suggested semi-colon through the arg_separator .ini directive. Unfortunately most user agents do not send form data in this semi-colon separated format. A more portable way around this is to use &amp; instead of & as the separator. You don't need to change PHP's arg_separator for this. Leave it as &, but simply encode your URLs using htmlentities() or htmlspecialchars().
    Numai bine!

  6. #6
    Avatarul lui andypopa
    andypopa este deconectat Membru SeoPedia
    Reputatie:
    0
    Data înscrierii
    28th July 2005
    Locaţie
    Bucuresti
    Posturi
    417
    Putere Rep
    0


    Implicit

    so htmlspecialchars($id) era corect?

  7. #7
    Avatarul lui necropsique
    necropsique este deconectat Ambasador
    Reputatie:
    35
    Data înscrierii
    28th June 2005
    Locaţie
    Iasi
    Vârstă
    43
    Posturi
    374
    Putere Rep
    35


    Implicit

    Deci, htmlspecialchars face exact ce trebuie.

    Cod:
    	&#60;?php
    
    $new = htmlspecialchars&#40;str_replace&#40;'&', 'and', $row_cat&#91;'CATEGORY'&#93;&#41;, ENT_QUOTES&#41;;
    
    	?&#62; 
    
    
    
    &#60;a href=&#34;pag1.php?category=&#60;?php echo $new ?&#62;&#34; class=&#34;categ_list&#34;&#62;&#60;?php echo $new ?&#62;&#60;/a&#62;

    problema este cu unhtmlspecialchars.
    Nu face ceea ce trebuie sa faca. Nu decodeaza 'and' in '&'.


    asa arata codul pe pagina care primeste variabila:

    Cod:
    $colname_prod_detail = &#34;-1&#34;;
    
    if &#40;isset&#40;$_GET&#91;'category'&#93;&#41;&#41; &#123;
    
     $colname_prod_detail = &#40;get_magic_quotes_gpc&#40;&#41;&#41; ? $_GET&#91;'category'&#93; &#58; addslashes&#40;$_GET&#91;'category'&#93;&#41;; 
    
     
    
    function unhtmlspecialchars&#40;$colname_prod_detail&#41;
    
    &#123;
    
    	$colname_prod_detail = str_replace &#40; 'and;', '&', $colname_prod_detail &#41;;
    
    	return $colname_prod_detail;
    
    &#125;
    
    &#125;

    Are cineva o ideie ?

  8. #8
    Avatarul lui m0n5t3r
    m0n5t3r este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    30th January 2005
    Locaţie
    intre tastatura si scaun
    Posturi
    52
    Putere Rep
    36


    Implicit

    u rule! :rockout2:

    htmlspecialchars(str_replace("&","and","cucu & bau")) o sa-ti dea "cucu and bau"; browser-ul va face urlencode, si la scriptul tau receptor ajunge "cucu%20and%20bau"; php (sau apache) face transparent urldecode, asa ca in "unhtmlspecialchars" o sa-ti ajunga "cucu and bau"; acuma, tu faci str_replace("and;","&", $fucking_text), ceea ce nu functioneaza pt ca n-ai nicaieri in "cucu and bau" "and;"

    maybe you should try some other job?
    \"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.\" -- Rich Cook

  9. #9
    Avatarul lui Ioan Margineanu
    Ioan Margineanu este deconectat Membru SeoPedia
    Reputatie:
    37
    Data înscrierii
    16th May 2005
    Locaţie
    Bucuresti
    Vârstă
    44
    Posturi
    1.098
    Putere Rep
    37


    Implicit

    De ce nu luati voi stringul, care contine si &, folositi un explode, inlocuiti & cu %20and%20, il puneti la loc cu wordwrap si apoi il trimiteti fara sa va mai doara capul? Pe partea cealalalta operatiunea e asemanatoare, doar ca inlocuiti and cu &.

    Sau, trimiteti linkul de forma:
    www. cerculete.ro/cerculete.php?id=Cerculete_and_Baloane

    iar apoi:

    <?
    $cuvinte = explode("_", $string_primit);
    ?>

    si o sa aveti un array cu cuvintele separate, fiecare al 2-lea cuvant fiind "and".

  10. #10
    Avatarul lui m0n5t3r
    m0n5t3r este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    30th January 2005
    Locaţie
    intre tastatura si scaun
    Posturi
    52
    Putere Rep
    36


    Implicit

    e corect si ce zici tu, da e scarpinat cu piciorul stang dupa urechea dreapta...
    in loc de explode, nu e mai simplu sa faci
    str_replace('&','and',$text_de_trimis);
    si
    str_replace('and','&',$text_primit);
    ???
    oricum, prea multa vorbarie aiurea pentru o problema banala...
    \"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.\" -- Rich Cook

Pagina 1 din 2 12 UltimulUltimul

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Ceva nou?
    De thefan în forumul Bar, lobby...
    Răspunsuri: 13
    Ultimul Post: 23rd June 2008, 14:13
  2. Ceva cam ciudat...
    De dragoserv în forumul DMOZ
    Răspunsuri: 32
    Ultimul Post: 22nd July 2007, 09:21
  3. Ceva miscari?
    De too_night în forumul Google
    Răspunsuri: 19
    Ultimul Post: 29th June 2007, 15:49
  4. Ceva spam...
    De Gabriel Puscuta în forumul E-mail SPAM
    Răspunsuri: 0
    Ultimul Post: 5th June 2007, 11:38
  5. Un script ceva.. ceva sa ma scoata din oala
    De voiculau1 în forumul Server side
    Răspunsuri: 1
    Ultimul Post: 20th January 2007, 17:45

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •