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"