Innanzittutto un saluto a tutti da un nuovo arrivato. :P
Mi sono da poco affacciato al mondo del php e mi sto invero appassionando. Sto studiando da un testo di Kevin Yank e dopo aver visto qualcosina riguardo le funzioni di query su SQL mi sono imbattutto nelle "Espressioni Regolari". Il mio problema sta nel fatto che ho provato a costruire un semplice script php che effettuasse un controllo di validità "grammaticale" di un ipotetico indirizzo email sfruttando per l'appunto la funzione ereg e un'espressione regolare. Fatto sta che dopo innumerevoli test il " - " (tek) sebbene sia presente nell'espressione non viene riconosciuto come valido all'interno della funzione e non capisco il perché... So che quel segno ha un valore speciale all'interno delle espressioni e so anche che bisogna utilizzare un backslash per portarlo al significato "letterale", e così ho fatto ma non funziona lo stesso...
In tutti gli altri casi (es xxx_yy.y[AT]server.it oppure xxx.y_y_y[AT]server.it) sembra funzionare.
Posto di seguito il codice: sia chiaro che è un qualcosa che ho scritto per puro spirito auto-didattico (quindi sorvolate sull'effettiva utilità o funzionalità del codice :P).
codice:<?php /** * @author ggxphp * @copyright 2009 */ if (!isset($_POST['c'])): ?> Questo script php serve per verificare la validità di un indirizzo email tramite l'uso delle Espressioni Regolari</p> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> Inserisci l'indirizzo email da verificare: <input type="text" name="c" size="30"><input type="submit" value="Verifica"></form></p> <?php else: $email=$_POST['c']; $selfpage=$_SERVER['PHP_SELF']; if (ereg('^([a-zA-Z0-9]+[a-zA-Z0-9\-_\.]*)[@]{1}([a-zA-Z0-9\-_]+)[\.]{1}([a-zA-Z]{2,4})$', $email, $req)) { echo " L'indirizzo email $email inserito E' VALIDO ed è così composto:</p>". " <ul>[*]Nome utente: $req[1]". "[*]Server: $req[2]". "[*]Dominio: $req[3][/list]</p>". "Invia email ". "Torna alla pagina di controllo"; } else { echo " L'indirizzo email $email inserito <u>NON</u> E' VALIDO</p>". "Torna alla pagina di controllo"; } endif; ?>



Rispondi quotando
