salve a tutti..!
devo realizzare un programmino che faccia inserire all'utente, nella pagina index.php, i dati NOME, COGNOME, ETA ed EMAIL.
Successivamente al click di un bottone di tipo submit questi dati devono essere inviati alla pagina conferma.php che deve validarli (NOME e COGNOME stringhe di solo testo, ETA numerico e MAIL con formato standard).
Ho due problemi:
- Per la validazione ho provato a usare preg_match(), poichè ereg()/eregi() sono deprecate.
Il problema è che mi restituisce sempre errore anche quando la stringa rispetta il formato
corretto.
- Se c'è qualche errore in inserimento devo reindirizzare l'utente alla pagina di inserimento dati
(index.php). Mi è stato consigliato di usare una piccola istruzione javascript preceduta da uno
sleep(5). Anche quella però funziona male, nel senso che mi rimbalza a index.php senza
visualizzare conferma.php. Può essere che la risposta tardiva del server nel controllare i campi
faccia scadere i 5 secondi prima che la pagina venga visualizzata..?
Posto il codice di conferma.php per darvi modo di vedere se ho sbagliato qualcosa.
<?php
/*
variabile di controllo per gli errori
VALORI:
- 0, nessun errore
- 1, errore
*/
$risultato_controllo = 0;
//se il nome è vuoto o è composto da soli numeri
if( empty($_GET['nome']) || !preg_match('/^([a-z])$/i',$_GET['nome']) )
{
echo "errore sul nome! </br>";
$risultato_controllo = 1;
}
//se il cognome è vuoto o è composto da soli numeri
if( empty($_GET['cognome']) || is_numeric($_GET['cognome']) )
{
echo "errore sul cognome! </br>";
$risultato_controllo = 1;
}
//se l'eta è vuota o non è numerica
if( empty($_GET['eta']) || !is_numeric($_GET['eta']) )
{
echo "errore sull'età! </br>";
$risultato_controllo = 1;
}
//se la mail è vuota o non rispetta il formato standard
if( empty($_GET['mail']) || preg_match("/^([a-z0-9\.\-\_])+@([a-z0-9\.\-\_])+\.[a-z]{2-4}$/i",trim($_GET['mail'])) )
{
echo "errore sulla mail! </br>";
$risultato_controllo = 1;
}
//se i campi erano corretti
if($risultato_controllo == 0)
{
echo "<table align=\"center\">";
echo "<tr>";
echo "<td width=\"200\">";
echo "Nome";
echo "</td>";
echo "<td>";
echo $_GET['nome'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\">";
echo "Cognome";
echo "</td>";
echo "<td>";
echo $_GET['cognome'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\">";
echo "Età";
echo "</td>";
echo "<td>";
echo $_GET['eta'];
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=\"200\">";
echo "e-mail";
echo "</td>";
echo "<td>";
echo $_GET['mail'];
echo "</td>";
echo "</tr>";
echo "</table>";
}
else
{
echo "reindirizzamento alla pagina di inserimento dati in 5 secondi";
sleep(5);
echo "<script language=\"javascript\"> location.href=\"index.php\"; </script>";
}
GRAZIE DI CUORE IN ANTICIPO A CHIUNQUE MI RISPONDERA'