Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491

    AJAX - PHP passaggio testo

    Allora, volendo salvare del testo inserito dall'utente passandolo con un XMLHttpRequest sono incappato nel problema dei caratteri accentati. Avevo pensato di risolverlo inserendo utf8_decode nella pagina PHP che riceveva le variabili POST tramite javascript. Invece sono spuntati problemi con altri caratteri come ""%.
    Allora mi pare di capire che l'unico modo per mandare correttamente sti dati è usare encodeURIComponent() nella parte Javascript che manda i dati, ma poi lato PHP come faccio a decodificare il testo prima di salvarli su database?
    Leggendo in internet mi pare si debba usare rawurldecode(). Ora faccio un pò di prove, ma qualcuno sa consigliarmi??

    Grazie
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  2. #2
    non devi fare niente ... al massimo usi utf8_decode($_POST['valore']) ... http://webreflection.blogspot.com/20...omparison.html
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Infatti, facendo delle prove ero arrivato alla stessa conclusione, in ricezione ho fatto utf-8 e poi salvato sul database, poi quando stampo a video faccio alnche uno stripslash. Ora funziona tutto, spero di aver concluso finalmente quella che è stata un'odissea tra lettere accentate e caratteri speciali.
    Ciao
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  4. #4
    Originariamente inviato da Xadoom
    Infatti, facendo delle prove ero arrivato alla stessa conclusione, in ricezione ho fatto utf-8 e poi salvato sul database, poi quando stampo a video faccio alnche uno stripslash. Ora funziona tutto, spero di aver concluso finalmente quella che è stata un'odissea tra lettere accentate e caratteri speciali.
    Ciao
    lo stripslashes non serve in output ... serve in input (se hai maguc_quotes abilitato).

    Aggiungi questa a inizio files che ricevono stringhe e risolvi i problemi di stripslashes (sperando che tu stia usando mysql_escape_string o simili prima di inserire in db)
    http://www.devpro.it/code/35.html


    P.S. in output dovresti reencodare con utf8_encode se stai usando ajax
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Grazie per le dritte, adesso ho sistemato la funzione che chiamo prima di salvare su database per elaborare il nome ed il commento inserito dall'utente così:
    codice:
     
    function elaboraHTMLComm($text,$nome,$ajax){
        /*Elimina i tag HTML*/
        $text=strip_tags($text);
        $nome=strip_tags($nome);
        /*Elimina gli slash*/
        $text=stripslashes($text);
        $nome=stripslashes($nome);
        /*Sostituisce le lettere accentate*/
        if($ajax){
    	$text=htmlentities(utf8_decode($text));
    	$nome=htmlentities(utf8_decode($nome));
    	}
        else{
    	$text=htmlentities($text);
    	$nome=htmlentities($nome);
    	}
        $text=nl2br($text);
        /*Prepara la stringa per l'inserimento*/
        $text=mysql_escape_string($text);
        $nome=mysql_escape_string($nome);
        return array($text,$nome);
      }
    Mi pare Ok...
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

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.