Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [PHP] Problemi con gli apostrofi

    ho una funzione che tramite le regExp mi elimina gli apostrofi dalle query prima dell'inserimento nel DB e li ripristina prima dell'output dei dati.
    Il problema che mi sono accorto che se scrivo direttamente nel form di imput non c'è alcun problema, visto che la funzione riconosce l'apostrofo ( ' ) e lo corregge.
    Se però i testi vengono presi da word o da alcuni siti, l'postrofo inserito è differente ( ’ ) e nonostante l'abbia inserito nella regExp me lo ignora.

    la mia regExp è la seguente :

    $patterns[]='/[‘’`´\']/';

    Ho sbaglaito forse qui !?!? Vorrei che mi includesse tutti gli apostrofi esistenti !
    Grazie a presto

    - Kiko -
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

  2. #2
    ma anzichè rimuovere e rimettere gli apostrofi non fai prima a escaparli con mysql_real_escape_string prima della query?

    così ti togli tutti i problemi...
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  3. #3
    Ciao King e grazie per la risposta !
    Ho provato ma niente, continua darmi l'errore se il testo apostrofato viene da word.

    Provo a postare tutta la funzione così magari vi rendete meglio conto di come opera.

    Codice PHP:
    function _escapeData($data,$flash=false) {
            
    $patterns=array();
            
    $replacements=array();
            if (
    $flash) {
                
    $patterns[]='/&/';
                
    $replacements[]='and';
            }
            
    $patterns[]='/[“”]/';
            
    $replacements[]='"';
            
    $patterns[]='/[‘’`´\']/';
            
    $replacements[]='\''// '{singlequote}';
            
    $patterns[]='/ {2,}/';
            
    $replacements[]=' ';
            
    $patterns[]='/( )?((\r)?\n)/';
            
    $replacements[]="\r\n";
            
    $patterns[]='/(\r\n){2,}/';
            
    $replacements[]="\r\n\r\n";
            
    $patterns[]='/\r\n$/';
            
    $replacements[]='';
            
            return 
    preg_replace($patterns,$replacements,$data);
        } 
    Grazie
    - Kiko -
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: [PHP] Problemi con gli apostrofi

    Originariamente inviato da MadBob
    elimina gli apostrofi dalle query prima dell'inserimento nel DB e li ripristina prima dell'output dei dati.
    capisco che il tuo nickname abbia delle esigenze, ma come ti è venuta in mente una roba del genere....

  5. #5

    Re: Re: [PHP] Problemi con gli apostrofi

    Originariamente inviato da luca200
    capisco che il tuo nickname abbia delle esigenze, ma come ti è venuta in mente una roba del genere....
    Ciao luca !
    Semplicemente perchè essendo un sito di annuci in più lingue volevo creare una funzione di filtraggio che a priori elimini tutti i caratteri speciali o comunque sia pericolosi per il buon funzionamento, e che abbia la possibilità se un giorno venissero fuori altri caratteria magari di qualche lingua differente, di essere ampliata in poco tempo aggiungendo carattere e conversione.
    Ma a quanto pare quest'apostrofo copiato da word sembra "eludere" il sistema, e sinceramente non riesco a capirne il motivo

    - Kiko -
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Pericolosi?
    Guarda che la funzione di un db è quella di salvare dati, quindi è lui a doversi adeguare ai dati, non viceversa.... mi sa che hai un approccio un po' troppo originale a questo argomento

    Dai un'occhiata a questa pillola... vedrai che i caratteri "pericolosi" possono essere facilmente neutralizzati

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