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"