Verifica form misto php e JS

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ho fatto un form molto semplice con alcuni controlli, sia php sia js. Il problema è che non vedo nessun errore al momento dell'inserimento della voce nel form. Ho utilizzato il plugin livevalidation ma non capisco dove sbaglio. Qualcuno saprebbe darmi una mano?
Qui il codice completo.
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--#include virtual="/riservato/_private/logon.inc"-->
<title>Biblionet - Registrazione</title>
<link href="css/reset.css" type="text/css" rel="stylesheet" />
<link href="css/Master.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="js/validation.js"></script>
<link href="css/validation.css" rel="stylesheet" type="text/css" />
<link href="css/formregistrazione.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/formregistrazione.js"></script>
</head>
<body>
<div id="contenitore">
  <div id="logo">    <img src="Images/logo nuovo biblio2tondo.jpg" width="974" height="200" alt="" /></div>
<?php
    include 'header3.php';
?>
        <div class="facebook">
   <a href='http://www.facebook.com/MrChip63' target=_blank><img src="Images/facebook.png" width="30" height="30" alt="Facebook" /></a></div>
        </div>
        <div id="contenuto" class="clearfix">
          <p style="margin-top: 2px;">&nbsp;</p>
          <img id="top" src="http://forum.mrwebmaster.it/images/top.png" alt="" />
    <div id="form_container">
        <h1><a>Modulo Registrazione Nuovo Utente</a></h1>
    <?php
        if(!isset($_GET['passkey'])){
            if(!isset($_POST['invia'])){ ?>
        <form id="form" class="appnitro"  method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
                    <div class="form_description">
            <h2>Modulo Registrazione Nuovo Utente</h2>
        </div>
            <ul >
                    <li id="li_1" >
        <label class="description" for="nome">Nome </label>
        <span>
            <input id="nome" name="nome" class="element text" maxlength="255" size="8" value=""/>
            <label>Nome</label>
            <script type="text/javascript">
            var campo = new LiveValidation(‘nome’, {validMessage:"OK!"});
            campo.add(Validate.Presence, {failureMessage:"Il campo deve essere compilato."});
            </script>
        </span>
        <span>
            <input id="cognome" name="cognome" class="element text" maxlength="255" size="14" value=""/>
            <label>Cognome</label>
            <script type="text/javascript">
            var campo = new LiveValidation(‘cognome’,{onlyOnBlur: true, validaMessage:"OK!"});
            campo.add(Validate.Presence, {failureMessage:"Il campo deve essere compilato."});
            </script>
        </span><p class="guidelines" id="guide_1"><small>Metti il tuo Nome e Cognome</small></p>
        </li>
        <li id="li_2" >
        <label class="description" for="età">Età </label>
        <div>
            <input id="età" name="età" class="element text medium" type="text" maxlength="255" value=""/>
        </div><p class="guidelines" id="guide_2"><small>Inserisci la tua età</small></p>
        <script type="text/javascript">
            var campo = new LiveValidation(‘età’, {onlyOnBlur: true, validaMessage:"OK!"});
            campo.add(Validate.Presence, {onlyOnBlur: true, failureMessage:"Il campo deve essere compilato."});
            campo.add(Validate.Numericality, {onlyOnBlur: true, notANumberMessage:"Puoi inserire solo numeri."});
            </script>
        </li>
        <li id="li_3" >
        <label class="description" for="interessi">Interessi e passioni </label>
        <div>
            <textarea id="interessi" name="interessi" class="element textarea medium" cols="" rows=""></textarea>
        </div><p class="guidelines" id="guide_3"><small>Aggiungi tutto quello che ti piace</small></p>
        </li>
        <li id="li_4" >
        <label class="description" for="username">Username </label>
        <div>
            <input id="username" name="username" class="element text medium" type="text" maxlength="255" value=""/>
            <script type="text/javascript">
            var Username = new LiveValidation(‘Username’, {onlyOnBlur: true, validaMessage:"OK!"});
            Username.add(Validate.Presence, {onlyOnBlur: true, failureMessage:"Il campo deve essere compilato."});
            Username.add(Validate.Lenght, {onlyOnBlur: true,  maximum: 12, tooLongMessage:"Puoi mettere un massimo di 12 caratteri"});
            Username.add(Validate.Lenght, {onlyOnBlur: true,  minimum: 4, tooShortMessage:"Puoi mettere un minimo di 4 caratteri"});
            </script>
        </div><p class="guidelines" id="guide_4"><small>Inserisci un nome di fantasia</small></p>
        </li>
        <li id="li_5" >
        <label class="description" for="password">Password </label>
        <div>
            <input id="password" name="password" class="element text medium" type="text" maxlength="255" value=""/>
        </div>
        </li>
        <li id="li_6" >
        <label class="description" for="password2">Reinserisci la Password </label>
        <div>
            <input id="password2" name="password2" class="element text medium" type="text" maxlength="255" value=""/>
        </div>
        </li>
        <li id="li_7" >
        <label class="description" for="email">Email </label>
        <div>
            <input id="email" name="email" class="element text medium" type="text" maxlength="255" value=""/>
            <script type="text/javascript">
            var campo = new LiveValidation(‘Email’, {onlyOnBlur: true, validaMessage:"OK!"});
            campo.add(Validate.Presence, {onlyOnBlur: true, failureMessage:"Il campo deve essere compilato."});
            campo.add(Validate.Email, {onlyOnBlur: true, failureMessage:"Devi inserire un indirizzo mail valido!"});
            campo.add(Validate.Lenght, {onlyOnBlur: true, minimum: 4, tooShortMessage:"Puoi mettere un minimo di 4 caratteri"});
            </script>
        </div>
        </li>

                    <li class="buttons">
                      <input id="rest" class="button_text" type="reset" name="reset" value="Reset" />
                <input id="registrazione" class="button_text" type="submit" name="submit" value="Registrazione" />
        </li>
            </ul>

        </form>

<?php    } else {
    //funzione per verificare che non sia alterato il testo md5 della password
    function ver_testo($testo,$min,$max){
        $pattern="/^[a-zA-Z0-9]{".$min.",".$max."}$/";//non prende direttamente il min e il max
        if(preg_match($pattern, $testo)){
            //testo ok
            return TRUE;
        }else{
            return FALSE;
        }
    }
    if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $nome = trim($_POST['nome']);
    $username = trim($_POST['username']);
    $cognome = trim($_POST['cognome']);
    $età = trim($_POST['età']);
    $password = trim($_POST['password']);
    $password2 = trim($_POST['password2']);
    $email = trim($_POST['email']);
    //preparo un messaggio a vuoto per gli errori
    $ok_ko="";
    if(!ver_testo($username,4,10))($ok_ko.="Username non corretto, deve essere compreso tra 4 e 10 caratteri<br />");
    if(!ver_testo($password,6,12))($ok_ko.="La password deve essere composta da 6 a 12 caratteri <br />");
    if(!ver_testo($password2,6,12)){$ok_ko.="La password di conferma non coincide con la prima <br />";}
    if($password != $password2){$ok_ko.="Le password non coincidono <br />";}
    if(!filter_var($email, FILTER_VALIDATE_EMAIL)){$ok_ko.="L'indirizzo email non è valido <br />";}
    if($età==""){$ok_ko.="Devi inserire la tua età <br />";};
    if($ok_ko==""){
        //se è rimasto vuoto non ci sono errori

        // creazione di un codice di conferma in MD5
        $codiceconferma = md5(uniqid(rand()));
        $username = mysql_real_escape_string((strtolower($username))); //salvo il nickname tutto in minuscolo onde evitare problemi.
        $email = mysql_real_escape_string(strtolower($email)); //metto in minuscolo la mail

        //Verifico che non ci sia un username uguale a quello inserito nel form
        $verificauseremail = mysql_query("SELECT id FROM biblionet nuova ok WHERE username='$username' OR email='$email'");

        if(mysql_num_rows($verificauseremail)>0){
            //avvisi e torni al form pulito
            echo "ATTENZIONE: Username o Email già esistenti, scegline un altro. <br />";
            echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
        }else{
            $nome = mysql_real_escape_string($nome);
            $cognome = mysql_real_escape_string($cognome);
            $età = mysql_real_escape_string($età);
            $username = mysql_real_escape_string($username);
            $email = mysql_real_escape_string($email);
            $password = mysql_real_escape_string($password);
            $inviautentitemp = "INSERT INTO biblionet_nuova_temp (codiceconferma, username, età, cognome, nome, password, email) VALUES ('$nome', '$cognome', '$età', '$codiceconferma', '$username', '$password', '$email')";
            if(mysql_query($inviautentitemp)){
                //se tutto è OK da qua preparo l'invio della mail di conferma per l'avvenuta registrazione.
                include_once('class.phpmailer.php');
                $mail = new PHPmailer();
                $mail->IsSMTP();
                $mail->isHTML(true);
                $mail->SMTPDebug = true;
                $mail->Host = "smtp.fastwebnet.it";
                $mail->Port = "25";
                $mail->SMTPAuth = true;
                $mail->Username = "[email protected]";
                $mail->Password = "*******";
                // Impostazioni invio mail al cliente
                $mail->Setfrom ("[email protected]","Biblionet");   //Inserire la mail dell'amministratore ed il nome del sito
                $mail->AddReplyTo("[email protected]","Amministratore");
                $mail->AddAddress ($email); //Mail che riceverà chi si iscrive
                $mail->AltBody = "Il tuo client di posta non è settato per la ricezione in HTML";
                $mail->Subject = "Conferma di registrazione al sito www.biblionetsanmaurizio.com";
                //poi prova a modificare il testo da inviare
                $testo="<p>Ecco il tuo codice di attivazione</p><br />";
                $testo.="<p>Clicca sul link per confermare la registrazione</p><br />";
                $testo.="<a href=\"http://siti/Biblionet%20Nuova%20OK/registrazione.php?passkey=$codiceconferma\">Clicca qui</a>";
                $mail->Body =$testo;

                if ($mail->Send()){
                    echo "Tra poco riceverai una mail con il codice di attivazione per confermare l'iscrizione";
                }else{
                    echo "Si è verificato un errore di trasmissione riprova più tardi";
                    // e dopo 3 secondi torno automaticamente al form ripulito
                    //echo "<meta http-equiv='Refresh' content='3; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
                    //i secondi di attesa possono essere aumentati o diminuiti
                }//chiudo if/else invio

            } else {
                echo "ERRORE di comnnesione, ti preghiamo di riprovare più tardi<br />";
                echo "<meta http-equiv='Refresh' content='300; URL=index2.php'>";
            }//chiudo if/else errore sul db
        }//chiudo if/else username-email duplicato
    }else{
        echo $ok_ko;
        echo "<meta http-equiv='Refresh' content='300; URL=index2.php'>";
    }
    }
    //chiudo if/else $ok_ko
    //poi tutti i echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
    //potresti eliminarli e metterne un unico qui
}
        } else {

            $passkey = htmlspecialchars($_GET['passkey']);
            $sqlrecuperauser = "SELECT * FROM biblionet_nuova_temp WHERE codiceconferma = '$passkey'";
            $risultatouser = mysql_query($sqlrecuperauser);
            if($risultatouser) {
                $contauser = mysql_num_rows($risultatouser);
                if($contauser == 1){
                    $rows = mysql_fetch_array($risultatouser);
                    $username = $rows['username'];
                    $email = $rows['email'];
                    $password = $rows ['password'];
                    $passwordcript = md5($password);
                    $sqlconfermauser = mysql_query("INSERT INTO biblionet nuova ok (nome, cognome, età, username, password, email) VALUES ('$nome', '$cognome', '$età', '$username', '$passwordcript', '$email')");
                    if ($sqlconfermauser) {
                        echo "Il tuo account è stato attivato con successo, da adesso potrai accedere alle pagine del sito inserendo i tuoi dati.";
                        $sqleliminadati = mysql_query("DELETE FROM biblionet_nuova_temp WHERE codiceconferma = '$passkey'");
                    } else {
                        echo "C'è stato un errore, se hai sbagliato qualcosa riprova, altrimenti segnalacelo. Lo correggeremo il prima possibile!";
                    }
                }
            }
        }
    ?>
    </div>
    <img id="bottom" src="http://forum.mrwebmaster.it/images/bottom.png" alt="" />
        </div>
        <div class="vuoto"></div>
          <div id="footer"><p>Copyright - Tutti i diritti sono riservati - E' vietata la riproduzione anche parziale</p></div>
</body>
</html>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
lungetto il codice
non riesci ad individuare la parte che credi possa invalidare il javascript?
potresti in alternativa abilitare il debug di explorer (utile a volte)
 

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Scusate l'assenza ma casa e lavoro sono incasinato. Vengo al dunque, il problema è che il form ha una valdiazione diretta, che teoricamente utilizzando questa sintassi
PHP:
<script type="text/javascript">
            var campo = new LiveValidation(‘Email’, {onlyOnBlur: true, validaMessage:"OK!"});
            campo.add(Validate.Presence, {onlyOnBlur: true, failureMessage:"Il campo deve essere compilato."});
            campo.add(Validate.Email, {onlyOnBlur: true, failureMessage:"Devi inserire un indirizzo mail valido!"});
            campo.add(Validate.Lenght, {onlyOnBlur: true, minimum: 4, tooShortMessage:"Puoi mettere un minimo di 4 caratteri"});
            </script>
mi permette di verificare immediatamente se i dati inseriti corrispondono alle mie condizioni, poi i dati vengono inviati al server che con php ricontrolla e risponde.
Purtroppo non ottengo alcun avviso in tempo reale. e naturalemnte non ottengo nulla nemmeno in php.
 
Discussioni simili
Autore Titolo Forum Risposte Data
MarcoGrazia Verifica di una stringa o di un nome proveniente da form Snippet PHP 0
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
MarcoGrazia Verifica della data inserita in un form ( utilizzando bootstrap ) Javascript 7
P Verifica form solo con php senza javascript PHP 15
D Verifica inserimento dati form PHP 12
V verifica form jQuery 5
Virginia86 [risolto] Problema select e verifica form PHP 38
P Verifica correttezza form PHP 8
Eugene Verifica campi form (select) tramite js Javascript 1
E Verifica dell'Età Javascript 0
G Problema verifica palindromo e verifica pari e dispari javascript Javascript 0
D verifica codice fiscale persona fisica /aziendale stesso campo HTML e CSS 1
F [PHP] Verifica utente presente nel DB PHP 13
gandalf1959 [PHP] Verifica password per accesso ad area riservata PHP 3
M [Javascript] Verifica calcolo prima di fare insert Javascript 13
Samuele Ronzani [PHP] Verifica se un dato esiste già PHP 1
S [Javascript] Verifica separatore decimale sistema operativo Javascript 2
felino EXCEL: verifica dati mancanti tra due sheet Windows e Software 2
A Verifica validità data in Java Java 2
kikki882 verifica account - dati personali Social Media Marketing 0
L Wordpress: consiglio plugin per "verifica disponibilità" WordPress 0
MarcoGrazia Verifica di un indirizzo email Snippet PHP 0
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
francesco87 [Vendo] Verifica pagina (bollino grigio) Annunci servizi di Social Media Marketing 0
M [PHP] Verifica formato data in tempo reale PHP 2
WebDr [Javascript] verifica input Javascript 8
R [WordPress] Accesso al db e verifica credenziali (password criptata) WordPress 1
A VENDO ACCOUNT DI DIVERSE PIATTAFORME E VERIFICA FACEBOOK ACCOUNT(PHOTO TAG VERIFICATION,VERIFICA TEL Annunci servizi di Social Media Marketing 2
P verifica caratteri per email e password PHP 17
S Verifica Esistenza Codice Fiscale PHP 5
C verifica e invio ordine php PHP 19
G verifica caricamento foto originali su social network o sito di hosting immagini Discussioni Varie 3
A Strumenti "ufficiali" per la verifica dei Cookie HTML e CSS 2
A verifica di proprietà bing webmaster tool Google Search Console 0
P verifica utente in db PHP 6
L [MySQL] Verifica disponibilità camera MySQL 32
L vendo account facebook femmina 5.000 amici con verifica cell e tag superati Annunci servizi di Social Media Marketing 0
filippino Verifica email per attribuzione dei contenuti SEO e Posizionamento 0
N Verifica email di registrazione PHP 0
D Verifica plug-in aggiornati di Firefox non vede gli aggiornamenti effettivi Windows e Software 0
il_bauscia Verifica segnale operatore 5ghz Reti LAN e Wireless 2
G php asincrono con ajax 2 campi di verifica PHP 1
P Problema ocon verifica campo in javascript Javascript 7
M Cosa ne pensate del mio primo file PHP (verifica disponibilità stanze)? PHP 0
M adsmanager e messaggio di verifica email Joomla 0
L verifica mail in db con jquery e ajax. Aiuto jQuery 9
asevenx modulo registrazione utenti, cicli if di verifica PHP 9
A Espressione Regolare per verifica stringa PHP 14
A verifica codice PHP 7
M Verifica HTTP o HTTPS PHP 1

Discussioni simili