Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129

    sostituzione automatica caratteri o parole

    Dunque, per avitare il problema che il mio db MySQL 3.23.58 con interfaccia phpMyAdmin 2.5.3 in una campo di tipo Text mi da (ovvero se ci sono ' "" \ non eseque la query), volevo fargli sostituire in automatico questi simboli con lo stesso simbolo preceduto dallo slesh --> \ <--.

    Ora, il problema è far capire al codice che " non è parte del codice, ma un vero e proprio valore che lui deve sostituire, idem per lo slesch stesso che interpreta a modo suo.

    Come posso scrivere questo:?


    $correzioni = htmlspecialchars($Messaggio);
    $correzioni = (str_replace("'", "\'", $correzioni)); #e questo funziona
    $correzioni = (str_replace('"', "\"", $correzioni)); #questo nn ne vuol sapere
    $Messaggio = $correzioni;


    Grazie in anticipo a tutti coloro che risponderanno

  2. #2
    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    grazie per il link... ma lo avevo già letto e non avevo ottenuto il risultato che cercavo , in quanto non si parla della sostituzione di caratteri che fanno anche parte della programmazione, quali le vorgolette, gli slesh e tutti questi che non riesco a fare.


    Marco

  4. #4
    Chiedo venia... mi sa che non avevo capito bene!


    ... In pratica il db nei campi TEXT dovrebbe contenere frammenti di codice php? :master:
    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    Dunque... ti spiego per bene...

    Il problema che mi ritrovo, sarebbe quello che i codici che uso, sono gli stessi che erano prima su Altervista.org, peccato che Altervista usi un PhpMyAdmin ed una versione di php differente da quella che ho attualmente (che sfortunatamente è inferiore).

    Ora mi trovo con phpMyAdmin 2.5.3 su MySQL 3.23.58

    Il problema che mi si crea, sarebbe quello che quando qualcuno scrive un messaggio in bacheca contenente parole del genere <<po' c'è parole \ parole >> il messaggio nn viene inserito, al 99% per la presenza di apostrofi e di slasch.(cosa che sul vecchio db non mi accadeva).

    Ho pensato di sostituire in automatico questi caratteri come segue:
    ' ----> \'
    \ ----> \\
    " ----> \"

    che a quanto pare è l'unica soluzione.


    Con la funzione str_replace volevo fare questa sostituzione, solo che il codice si ingrippa subito se scrivo una riga del genere:
    $correzioni = (str_replace('"', "\"", $correzioni));

    probabilmente perchè fa confusione con le virgolette della funzione e le virgolette che deve sostituire.


    Come posso farlo?

  6. #6
    Probabilmente hai fatto solo un po' di confusione tra singolo e doppio apice.... a me questo codice funziona... :master:

    codice:
    $test="po' c'è parole \ parole";
    echo "Prima: " . $test . "
    ";
    $correzioni = (str_replace("'", "\'", $test)); 
    echo "Dopo: " . $correzioni . "
    ";

    ...(a me pero' continua a sembrare proprio un caso da addslashes) :master:

    codice:
    echo "
    " . addslashes($test);
    Spero di esserti stato utile...
    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    129
    ora si che ci siamo.... diciamo che volevo fare manualmenta quello che fa già addslashes().....

    Grazie mille!!!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.