Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    284

    problema passaggio apostrofo

    Ciao, ho una textarea, in cui immetto dei dati che dovrebbero andare a finire nel campo della tabella mysql, funziona tutto ma quando inseriso del testo con apostrofo mi da errore come posso fare per risolvere questo problema?

    la parte incriminata è descrizione = '$descrizione' nel seguente codice

    Codice PHP:
    $comune=$_POST['comune'];
    $id=$_POST['id'];
    $descrizione=$_POST['descrizione'];
    $regione1=$_POST['regione1'];
    $regione2=$_POST['regione2'];
    $regione3=$_POST['regione3'];
    $regione4=$_POST['regione4'];
    $regione5=$_POST['regione5'];
    $regione6=$_POST['regione6'];
    $regione7=$_POST['regione7'];



    $query="UPDATE $tab2 SET nomeregione = '$comune',
     id = '
    $id' , descrizione = '$descrizione' , 
    provincia1 = '
    $regione1' , provincia2 = '$regione2' , 
    provincia3 = '
    $regione3'  , provincia4 = '$regione4' ,
     provincia5 = '
    $regione5' , provincia6 = '$regione6' ,
     provincia7 = '
    $regione7' where id = '$id'"

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    devi utilizzare la funzione nativa mysql_real_escape_string() , che ti permette di fare gli escape dei caratteri speciali presenti in una stringa durante l'inserimento nel db.


    Codice PHP:
    $descrizionemysql_real_escape_string($_POST['descrizione']); 

  3. #3
    Quello che chiedi si chiama "Escape della stringa". Documentati a riguardo.

    Comunque usa str_replace() per raddoppiare l'apice, in modo che non ti dia errore.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    284
    mi puoi fare un'esempio con str_replace() per favore ?

  5. #5
    Ehm non avevo visto la risposta di mariox. Quella soluzione è migliore.

    Comunque per sapere come si usa str_replace() hai provato a dare un'occhiata alla sintassi nella documentazione ufficiale?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    284
    sto provando con mysql_real_escape_string ma non mi funziona, il campo rimane vuoto

    Codice PHP:
    $descrizione=$_POST['descrizione'];
    $descrizione2 mysql_real_escape_string($descrizione);
    $regione1=$_POST['regione1'];
    $regione2=$_POST['regione2'];
    $regione3=$_POST['regione3'];
    $regione4=$_POST['regione4'];
    $regione5=$_POST['regione5'];
    $regione6=$_POST['regione6'];
    $regione7=$_POST['regione7'];


    $query="UPDATE $tab2 SET nomeregione = '$comune', id = '$id' , 
    descrizione = '
    $descrizione2' , provincia1 = '$regione1' ,
     provincia2 = '
    $regione2' , provincia3 = '$regione3'  ,
     provincia4 = '
    $regione4' , provincia5 = '$regione5' ,
     provincia6 = '
    $regione6' , provincia7 = '$regione7' where id = '$id'"

  7. #7
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Ti devi assicurare che ci sia la connessione al db prima di utilizzare quella funzione, per interderci:

    Codice PHP:
    $connessione mysql_connect("localhost""user""pass");
    mysql_select_db("nome_database"$connessione);

    $descrizionemysql_real_escape_string($_POST['descrizione']);

    /* tutto il resto*/

    $query="UPDATE $tab2........"

  8. #8
    Originariamente inviato da tyson
    sto provando con mysql_real_escape_string ma non mi funziona, il campo rimane vuoto
    Intendi il campo 'descrizione' sulla tabella del database, oppure la variabile '$descrizione2'?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    284
    il problema è che proprio con questa funzione non ottengo il risultato, ho provato a fare

    Codice PHP:
    $descrizionemysql_real_escape_string($_POST['descrizione']);
    echo 
    "$descrizione"
    non stampa il risultato, invece con

    Codice PHP:

    $descrizione
    =$_POST['descrizione'];
    echo 
    "$descrizione"
    funziona correttamente, non c'è un'alternativa a questa funzione ?

  10. #10
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    Certo che c'è, anche se quella era la migliore:

    Codice PHP:
    $descrizioneaddslashes($_POST['descrizione']); 

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.