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

    sostituzione eregi_replace con preg_replace

    Ciao a tutti,
    ho un semplice form di contatti che utlizza questa funzione PHP per la validazione dell'indirizzo e-mail

    Codice PHP:
    <?php
    function ValidateEmail($email)
    {
    /*
    Name: Letters, Numbers, Dots, Hyphens and Underscores
    @ sign
    Domain (with possible subdomain(s) ). Contains only letters, numbers, dots and hyphens (up to 255 characters)
    . sign
    Extension: Letters only (up to 10 (can be increased in the future) characters)
    */

    $regex "([a-z0-9_\-\.]+)"# name

    "@"# at

    "([a-z0-9\-\.]+){2,255}"# domain & possibly subdomains

    "\."# period

    "([a-z]+){2,10}"# domain extension 

    $eregi eregi_replace($regex''$email);

    return empty(
    $eregi) ? true false;
    }
    ?>
    la funzione eregi_replace è deprecated, perciò ho guardato in rete e sostituito con preg_replace


    Codice PHP:
    $eregi preg_replace($regex''$email); 
    Mi esce questa roba qui
    Warning: preg_replace(): Unknown modifier '@' in /web/htdocs/betanew/functions.php on line 23 OK
    (la linea 23 è proprio quella che ho sostituito in effetti).

    Cosa devo fare?

    Grazie

  2. #2
    nessuno può darmi una mano?
    UP

  3. #3
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    sono queste le modifiche che devi fare per portare quel codice da ereg* a preg*
    Codice PHP:
    $regex "/([a-z0-9_\\-\\.]+)"# name

    "@"# at

    "([a-z0-9\\-\\.]+){2,255}"# domain & possibly subdomains

    "\\."# period

    "([a-z]+){2,10}/i"# domain extension

    $eregi preg_replace($regex''$email); 
    Ma fossi in te, mi cercherei qualcosa di piu' decente, questo codice ad esempio validerebbe anche una email di questo tipo:
    ___-------ciccio@..email....cazzata e invece non validerebbe questa: ciccio+bello@email.it che e' una email perfettamente valida

  4. #4
    grazie 1000 bubi1!!!!
    Funziona perfettamente ho risolto un grattacapo sul quale stavo sbattendo la testa da giorni!


  5. #5
    scus eh ma una cosa che il PHP già prevede? :-o

    Codice PHP:
    filter_var($emailFILTER_VALIDATE_EMAIL); 
    ?

  6. #6
    Se è più lineare e semplicemente gestibile, posso provare.
    Ma dovrei metterlo così?

    Codice PHP:
    $eregi filter_var($emailFILTER_VALIDATE_EMAIL); 
    E quindi tutto l'altro codice diventerebbe inutile?
    Ho utilizzato quello perchè era già costruito e non sono un gran conoscitore di script PHP

  7. #7
    guarda che i FILTRI di quel tipo non sono disponibili per tutte le versioni, verifica sul manuale la compatibilità di versione.....

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.