Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Problema Query

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153

    Problema Query

    Salve a tutti,
    Ho un form in cui scrivo un testo, e lo devo salvare nel DB!

    Il problema è che se scrivendo in una parola metto un apice (ad esempio: l'altra), quando compongo la query non me la fa eseguire, perchè nel codice il php vede un apice e pensa che la stringa è finita, e restando spezzata a metà, l'istruzione viene considerata sbagliata!

    Ho provato con a sostituire sti benedetti apici prima di inserire la variabile nella query in diversi modi!

    Così:
    Codice PHP:
    $testo str_replace("'""\'"$testo); 
    ma non funziona, e non so il motivo!

    Così:
    Codice PHP:
    $testo addslashes($testo); 
    che funziona, ma quando visualizzo l'articolo si vedono le slash (ad esempio: l\'altra).

    Non ho nemmeno trovato la codifica dell'apice come entità carattere speciale...

    Insomma se qualcuno può aiutarmi sarebbe stupendo!!!

  2. #2
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    per togliere gli slash in fase di visualizzazione devi utilizzare la funzione stripslahes:

    Codice PHP:
    $testo stripslashes($testo); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Però secondo me non è una soluzione, ma solo un rimedio!

    Mi spiego: quando vado a modificare il testo dell'articolo, e aggiorno il record nel database, la funzione addslashed() continua ad aggiungere slash su slash, che io in fase di pubblicazione non vedo, ma che però popolano in quantità il database!

    Può essere che non si riesce a fare di meglio? Ad esempio per gli articoli scritti in questo forum come cavolo fanno?

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Vediamo...
    anche se secondo me avrà lo stesso problema di addslashed();

  6. #6
    Non te lo vorrei dire ma...
    Codice PHP:
    $testo str_replace("'""'"$testo); 
    ...se sostituisci un apice con un apice non è che risolvi granché...

    Codice PHP:
    $testo str_replace("'""''"$testo); 
    Così dovrebbe funzionare, tu basta che non passi apici singoli, che sennò l'sql sbrocca.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Originariamente inviato da Debiru
    Non te lo vorrei dire ma...
    Codice PHP:
    $testo str_replace("'""'"$testo); 
    ...se sostituisci un apice con un apice non è che risolvi granché...
    Ecco l'esempio di ciò di cui parlo!!!

    non sono mica matto a sostituire un apice con un apice! in realtà nella mia riga di codice avevo scritto:
    Codice PHP:
    str_replace("'""(SLASH)'"); 
    facendo questa sostituzione, prima di passare la variabile $testo alla query sql non mi dava errore, perché nella composizione di stringhe in php, se fai precedere un carattere con una SLASH questo non viene interpretrato!

    ed è quello che vorrei fare io!
    Solo che l'istruzione:
    Codice PHP:
    str_replace("'""(SLASH)'"); 
    non so perché non sostituisce e mi dice che la query è sbagliata!

    mysql_real_escape(); e le altre hanno lo stesso effetto, di aggiungere ogni volta slash su slash!

  8. #8
    Originariamente inviato da absolom
    Però secondo me non è una soluzione, ma solo un rimedio!

    Mi spiego: quando vado a modificare il testo dell'articolo, e aggiorno il record nel database, la funzione addslashed() continua ad aggiungere slash su slash, che io in fase di pubblicazione non vedo, ma che però popolano in quantità il database!

    Può essere che non si riesce a fare di meglio? Ad esempio per gli articoli scritti in questo forum come cavolo fanno?
    Quando visualizzi il record nella textarea per la modifica, fai cosi:
    Codice PHP:
    <textarea><?php echo stripslashes($valore); ?></textarea>
    Cosi il successivo addslashes non da problemi.
    Ciao!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    153
    Originariamente inviato da fmortara
    Quando visualizzi il record nella textarea per la modifica, fai cosi:
    Codice PHP:
    <textarea><?php echo stripslashes($valore); ?></textarea>
    Cosi il successivo addslashes non da problemi.
    QUESTA E UNA SOLUZIONE!!!

    Grazie davvero!!!

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.