Buona giornata a tutti carissimi,
ho un quesito. Ho un input/text dove inserire un URL completo. Questo URL deve rispettare una precisa sintassi.
Deve rispettare una sola delle seguenti sintassi che è possibile digitare:
1) http://www.sitoweb.it
2) http://www.sitoweb.blog.it
E questo il form per testare il tutto.
(Nome file: prova.php)
codice:<html> <head> <title></title> </head> <body> <div> Prova: <form method="post"> <input name="testo" type="text"> <button name="invia" type="submit">Vai</button> </form> <?php if (isset($_POST['invia'])) { $prova = $_POST['testo']; if (!preg_match('/^(http:\/\/)(www.)([a-z0-9-]+)(\.{1})([a-z]{2,4})$/i', $prova) Xor !preg_match('/^(http:\/\/)(www.)([a-z0-9-]+)(\.{1})([a-z0-9-]+)(\.{1})([a-z]{2,4})$/i', $prova)) { echo ("Errore"); } else { echo ("Ok"); } } ?> </div> </body> </html>
Come potrete notare faccio un confronto tra due "preg_match". Ma sono sicuro che sbaglio in qualcosa..perchè in effetti il risultato è sempre "Errore".
Il risultato deve essere: "o mi dai come corretta la prima sintassi...oppure l'altra. Fuori da queste due sintassi, tutto dà come risultato ERRORE"

Rispondi quotando
ho inserito l'espressione da te proposta e funziona alla perfezione!!!

)
