Visualizzazione risultati 1 fino 9 di 9

Discussione: Problema di accento?

  1. #1
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito Problema di accento?

    Ciao Ragazzi.

    Vengo subito al dunque.
    Inserisco un cognome in un campo così ad esempio:

    <td width=18%><b>Cognome</b></td>
    <td width=82%><input type=text name=cognome size=30></td>


    Poi quando l'invio al db con questa query

    Codice PHP:
    function upload(){
    if (isset(
    $_REQUEST['cognome'])){
    $dati=" INSERT INTO clientidb VALUES (NULL,
    '"
    .$_REQUEST['cognome']."',
    '"
    .$_REQUEST['nome']."',
    '"
    .$_REQUEST['indirizzo']."',
    '"
    .$_REQUEST['citta']."',
    '"
    .$_REQUEST['iva']."')";
    mi accorgo che se inserisco nel campo cognome (ma anche nome, città ecc) un cognome
    con un apice del tipo De' giorgio o che so io i dati non vengono caricati ed ottengo
    questo messaggio di errore:

    Non riesco ad eseguire la query INSERT INTO clientidb VALUES (NULL, 'De' Giorgio', 'Carlo', 'via g. merone', 'Milano', '123456789')


    Come può essere risolto questa cosa?
    Grazie

  2. #2
    Guest

    Predefinito

    Basta usare stripslashes:
    Codice PHP:
    function upload(){
    if (isset(
    $_REQUEST['cognome'])){
    $dati=" INSERT INTO clientidb VALUES (NULL,
    '"
    .stripslashes($_REQUEST['cognome'])."',
    '"
    .stripslashes($_REQUEST['nome'])."',
    '"
    .stripslashes($_REQUEST['indirizzo'])."',
    '"
    .stripslashes($_REQUEST['citta'])."',
    '"
    .stripslashes($_REQUEST['iva'])."')";

  3. #3
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    Citazione Originalmente inviato da tuttoeniente2
    Basta usare stripslashes:
    Codice PHP:
    function upload(){
    if (isset(
    $_REQUEST['cognome'])){
    $dati=" INSERT INTO clientidb VALUES (NULL,
    '"
    .stripslashes($_REQUEST['cognome'])."',
    '"
    .stripslashes($_REQUEST['nome'])."',
    '"
    .stripslashes($_REQUEST['indirizzo'])."',
    '"
    .stripslashes($_REQUEST['citta'])."',
    '"
    .stripslashes($_REQUEST['iva'])."')";
    tenchiu!
    provo subito.
    ciao

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    No, la function stripslashes() serve per rimuovere gli slash \ che vengono aggiunti proprio per non "spaccare" la query SQL. Quindi serve esattamente nel "senso opposto", quando da mysql richiedo valori a cui sono stati aggiunti slash di escape.

    Quella che serve a te in quel punto è
    mysql_escape_string()
    http://www.php.net/mysql_escape_string

    quindi se usi:
    stripslashes($_REQUEST['cognome'])
    inviando
    De' Giorgio
    ottieni
    De\' Giorgio
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Citazione Originalmente inviato da heracleum
    quindi se usi:
    stripslashes($_REQUEST['cognome'])
    inviando
    De' Giorgio
    ottieni
    De\' Giorgio
    Credo che ti sei confuso:
    Codice PHP:
    mysql_escape_string($_REQUEST['cognome']);
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  6. #6
    Guest

    Predefinito

    Scusate tutti quanti, volevo scrivere addslashes()...
    La vecchiaia si fa sentire (e a 15 anni è tragico).

  7. #7
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Citazione Originalmente inviato da funcool
    Credo che ti sei confuso:
    Codice PHP:
    mysql_escape_string($_REQUEST['cognome']);
    OOOps :)
    prima correggo e poi mi scordo di correggermi da solo (dimenticato di sostituire dopo il copia+incolla) eheh
    cmq ci siamo capiti insomma ;)

    eeeh la vecchiaia comincia a bussare eh
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  8. #8
    gianlucaweb non è connesso Utente attivo
    Data registrazione
    01-01-2003
    Messaggi
    470

    Predefinito

    ho risolto così:

    Codice PHP:
    function upload(){
    if (isset(
    $_REQUEST['cognome'])){
    $dati=" INSERT INTO clientidb VALUES (NULL,
    '"
    .addslashes($_REQUEST['cognome'])."',
    '"
    .addslashes($_REQUEST['nome'])."',
    '"
    .addslashes($_REQUEST['indirizzo'])."',
    '"
    .addslashes($_REQUEST['citta'])."',
    '"
    .addslashes($_REQUEST['iva'])."')";
    va bene?
    ciao e grazie

  9. #9
    Guest

    Predefinito

    Si, in teoria dovrebbe funzionare correttamente.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •