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

    preg_match e magic_quotes_gpc impostato su ON

    Salve a tutti cari amici del Forum, posto per chiedervi lumi su un problema per il quale non ho ancora trovato una soluzione funzionante come voglio io.
    Allora ho questo problema. Ho un form dove devo inserire un nome e un cognome
    la variabile è impostata a magic_quotes_gpc ON e non la posso modificare, per il momento.
    Vorrei testare la stringa in modo tale che se passo un cognome dipo D'Alberto e esaminandone il post mi troverei una cosa tipo D\'Alberto, come faccio a impostare un controllo tramite preg_match che se ottiene risultato positivo mi fa andare avanti con il controllo altrimenti mi da un output negativo ?


    Io nella mia ignoranza ero arrivato fino a una cosa simile
    if (preg_match("#([^a-zA-Zàáèéìíòóùú \\\']+)#i",$s)){
    echo "FALLITO !".$s;
    return "";
    }
    return $s;

    Che se non sbaglio accetta caratteri maiuscoli minuscoli spazi accenti e mi rileva anche la presenza di ' e di \ ma il problema è che io vorrei restringere questo in modo tale che ovviamente non ci siano spazi all'inizio del Cognome, e che mi rilevi solo le occorrenze singole tipo di un apice come \' e non due apici che mi si trasformano in \'\' consecutivi.
    Chi mi da una mano ????
    Grazie son disperato

    PS: Se invece il magic_quotes forsse impostato su OFF come rileverei solo l'apice ???????

  2. #2
    Leggendo qua e la e eseguendo circa un miliardo di tentativi sono arrivato a questo che è un buon risultato:

    if (!preg_match("/^([a-zA-Z])+([a-zA-Zàáèéìíòóùú ]|\\\')+([a-zA-Z])$/",$s)){

    che in caso di true faccio uscire un messaggio di echo di errore se la stringa inizia per ' e finisce per ' però ho il problema che se a metà della stringa ad esempio scrivo d'''''antonio mi da che è valida lo stesso, come faccio a mettere un limite di 1 ' solo ?????
    Grazie.

  3. #3
    Son finito ieri sera a mezzanotte a scrivere questo codice che non è sicuramente elegante ma fa quello che mi ero preposto di fare, qualcuno ha qualche suggerimento a riguardo ?
    In pratica se nella frase trovo più di 2 apici assieme do direttamente errore.

    Codice PHP:
     if (preg_match("/\\\'\\\'/",$s)){  // due apici consecutivi
               
    echo "Errore troppi apici consecutivi !!!!!";
               exit;
               return 
    "";
              }else{    
                if (!
    preg_match("/^([a-zA-Z])+([a-zA-Zàáèéìíòóùú ]|\\\')+([a-zA-Z])$/",$s)){  // analisi
                  
    echo "Apici a inizio o fine frase o caratteri non ammessi !".$s;
                  exit;
                  return 
    "";    
                }else{

              echo 
    "Stringa accettata !!!!".$s;
              exit;
              return 
    $s;
              }
              } 

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.