• User

    Inspiegabile problema di ... apostrofo

    Ciao a tutti,
    ho uno strano problema che vi spiego qui.

    Utilizzo un script in php che, attraverso un form con campo di testo, mi aggiorna (UPDATE) un detterminato campo di una tabella del database Mysql.

    In locale funziona tutto egregiamente senza problemi per qualsiasi carattere possibilie. In locale sono su ambiente Linux nel quale ho installato XAMPP 1.7.1

    Quando trasferisco il tutto in remoto il tutto funziona regolarmente solo se non uso il carattere " ' " (quello racchiuso dalle virgolette). Se inserisco questo carattere l'UPDATE non funziona. Lo script dovrebbe restituire il contenuto della cella aggiornato ma se inserisco quel carattere niente ... come se non avessi fatto alcuna modifica al campo.
    Al contrario se vado ad editare direttamente il campo nel database con phpmyadmin mi accetta il carattere e lo salva correttamente.
    Ho notato che invece se uso il carattere " ? " allora anche con lo script php mi si aggiorna il campo della tabella regolarmente.

    Ho pensato ad un problema di Collation della connessione o di Set di caratteri ma sia in locale che in remoto sono uguali e cioe'

    Collation della connessione: utf8_general_ci
    Set di caratteri: UTF-8 Unicode (utf8)

    Per quanto riguarda la Collation delle rispettive tabelle sono entrambe, sia in locale che remoto settate su latin1_swedish_ci

    Altri dati dei 2 server e sistemi se possono servirvi sono:

    Server Locale Xampp

    • Versione MySQL client: 5.1.33
    • Estensioni PHP: mysql

    Server remoto su Hostgator (Stati Uniti)

    • Versione MySQL client: 5.1.52
    • Estensioni PHP: mysql

    Secondo vooi da cosa puo' dipendere questo problema? Perche' in locale funziona tutto correttamente ma in remoto no?

    saluti e grazie


  • User Attivo

    Quando inserisci i dati, fai un addlashes

    
    $nome = trim(htmlentities(addslashes($form_values["Nome"])));
    
    ```Se vuoi ti fai una funzione ricorsiva in modo da non dover ripetere il codice per tutti i campi, vedi tu :)
    
    (riguardo htmlentities:       This function is identical to      **htmlspecialchars()** in all ways, except with      **htmlentities()**, all characters which have HTML       character entity equivalents are translated into these entities)

  • ModSenior

    Ciao fa_1976it,
    il problema è la configurazione del server, fai particolare attenzione quando programmi perchè ciò significa che i tuoi script sono vulnerabili ad SQL INJECTION.


  • User

    Grazie ad entrambi per le risposte. In effetti pensavo anche io si trattasse proprio di una impostazione del server. Prendereo' le debite precauzioni.

    Grazie