Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Intercettare apici singoli nel testo

    Ho un "semplice problema".. Ho creato un programmino in php + mysql (per il db) ed ho la necessità di intercettare eventuali apostrofi (o apici singoli) che l'utente potrebbe inserire, al fine di evitare messaggi di errore del db, errori che impedirebbero l'inserimento dei dati nel db. Questo perché il codice PHP, essendo mischiato all'html, a volte é racchiuso tra virgolette doppie ed alle volte tra apici singoli (più che altro lo sono le query mysql)..

    io dovrei dapprima intercettare tramite espressione regolare l'apice singolo per poterlo inserire nel db e poi interpretare il relativo codice e riconvertirlo in apice singolo quando il campo viene letto e mostrato a video.

    Ho provato con questa espressione regolare per l'inserimento, ma ottengo sempre un messaggio di errore:

    Codice PHP:
    function text_encode($txt)
    {
    $pattern = ['];
    $replace = [/'
    ];

    $txt_2 preg_replace($pattern,$replace,$txt);

    return 
    $txt_2;


  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2012
    Messaggi
    159
    Basta un:
    addslashes(text);

  4. #4
    grazie ragazzi, provo e vi dico

  5. #5
    uff.. ho provato ambedue le funzioni ma niente da fare.. mi segnala sempre errore nella query perché incontra l'apice..

    Codice PHP:
    mysql_query("INSERT INTO luoghi SET luoghi.luogo = ('$var'), luoghi.id_autista = ('$var_id_autista'), luoghi.data = CURDATE()") or die(mysql_error()); 

  6. #6
    allora, sbagliavo io.. la funzione che mi permette di inserire correttamente gli apici nel testo é la funzione addslashes().. ora ho un ulteriore problema, quando voglio modificare un precedente inserimento mi da nuovamente errore.. la funzione addslashes fa anche il lavoro inverso?

  7. #7
    Originariamente inviato da timberwolf
    ...la funzione addslashes fa anche il lavoro inverso?
    Google ed il manuale...questi sconosciuti. stripslashes()
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    grazie a buon rendere

  9. #9
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Ciao timber per quesi consiglio sempre il controllo delle magic quotes del server.

    Se i dati arrivano da post devi sapere se il server aggiunge in automatico o meno i caratteri di escaping alle stringhe in ingresso dalle requests(post o get che siano)

    quindi

    Codice PHP:

    // ESEGUI CONNESSIONE  !! serve per la funzione mysql_real_escape...
    // poi 

    if( get_magic_quotes_gpc() )
    {
        
    $val stripslashes($val) ;
        
    $val mysq_real_escape_string($val);

    La funzione mysql e' piu' indicata per evitare injection

    Ovviamente dopo poi ncapsulare questo esempio in funzione e usare la funzione ove sia necessario "sanitanizzare" una o piu' stringhe di testo

  10. #10
    ok grazie ancora per le info e per l'aiuto

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.