Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    POST dati da Ajax domanda

    Buongiorno a tutti,

    vorrei porvi una domanda che è già stata affrontata sul forum di HTML.it ma alla quale non ho ancora trovato una vera e propria risposta.
    Ho una pagina html con delle <input type="text">, con il javscript prelevo il contenuto di queste input e le posto con l'AJAX ad una pagina PHP.
    Ho avuto parecchi problemi con gli accenti, e i caratteri speciali in genere fino alla scoperta della funzione encodeURIComponent di Javascript (che transcodifica i cararatteri speciali con i rispettivi esadecimali).
    Il Charset della mia pagina è UTF-8 ed il Content-Type text/html.
    Quando ricevo i dati nella pagina PHP nelle variabili $_POST, esse sono già 'decodate'.
    Mi chiedo: il server come fa a sapere che quelle variabili sono stati precedentemente encodate?! Grazie al content-type forse?!

    Grazie per le risposte

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    no usa jQuery. Hai gia' un framework fatto bene per gestire tutto e un chiamata ajax da dati in form la gestisci in poche righe.

  3. #3
    grazie della risposta... io gia uso jquery... peró prima encodo le stringhe per i caratteri speciali...

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    si ok un escape o encodeuri su stringhe particolari o utf8 a volte e' utile

    ricorda che puoi anche fare $("#mioform").serialize();

  5. #5
    mmm... interessante... faccio però fatica a capire a cosa serve...nel senso...posso evitare di encodarle passandole dentro serialize?!?
    Una piccola nota... non utilizzo i form

  6. #6
    ho fatto qualche prova... non male come metodo... grazie del consiglio, gentilissimo!!

    Una domanda a cui però non mi hai risposto :P (è tutta curiosità), ma quando il server riceve i dati (PHP) come diavolo fa a sapere che sono encodate???nel senso...io nella variabile $_POST[] le stringhe le trove già decodate ed io non faccio alcuna operazioni di 'decoding'...
    scusa i termini ma non trovo altro modo per esprimere questo mio dubbio...

  7. #7
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    capisco.

    Allora di base (senza alcuna specifica) se mandi dati in post come li mandi arrivano. L'encoding dipende dalla pagina(quindi utf-8, isoxxxx etc...) e dalle impostazioni del server e dallo script.

    una buona soluzione e' appunto usare un uri_encode o quello che sia nei vari linguaggi per essere sicuro che le stringhe ti arrivino corrette.

    Purtroppo devi manualmente verificare come arrivano, poiche appunto dipende da molti fattori la cosa. Diciamo che pero' se fai var stringa = escape(stringa) lato server da php devi cmq fare un rawurldecode( $_POST["stringa"] )

    Dovrai impazzirci sopra un pochetto poiche purtroppo la gestione codifiche e' un problema proprio dei nostri giorni(ci sono circa 200 codifiche disponbili e tutte sono 1 standard !!!)
    Io consiglio di applicare sempre e solo utf-8 o utf-16 e quinidi lavorare su unicode e morta la vedrai che risolvi tutti i problemi

  8. #8
    ooK GRANDE...finalmente qualcuno che mi risponde

    e mi spieghi allora perchè io non facendo rawurldecode funziona tutto alla perfezione?!

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Puo' essere che non ci siano caratteri speciali che quindi quando fai l'escape da js non ci sono caratteri che vengono cambiati.(ad esempio barrette spazi o altri caratteri speciali).. ma puo' anche dipendere da altri fattori ... ora non sapendo cosa usi, come sono configurate le cose etc... e' duretta venirne fuori

  10. #10
    sto facendo i test dovuti provando a mettere /\!"£?$=%§àè+ò*°° tutti caratteri del cavolo insomma... eppure vengono tutti salvati correttamente nel DB.

    se faccio un echo della $_POST['var'] ottengo la variabile pulita... e sta cosa mi lascia 'allibito' in quanto non so come cazolicchio faccia...

    nel PHP.ini non ho visto nulla che abbia la voce simile a encode, uriencode, ecc...
    boooo.... anche facendo ricerche non trovo nulla... la cosa però un po mi preoccupa in quanto non vorrei far partire il progetto e trovarmi con dei problemi dopo...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.