• User

    Problema Validazione FORM

    Ciao a tutti,
    ho un problema che prorpio non capisco...

    ho un form:

    [html]
    <form method="post" name="modulo" action="" onSubmit="Modulo()">
    <tr>
    <td width="106"><div align="left">Nome:</div></td>
    <td width="484"><div align="left">
    <input type="text" name="nome" id="nome">
    </div>
    </td>
    </tr>
    <tr>
    <td><div align="left">E-mail:</div></td>
    <td><div align="left">
    <input type="text" name="email" id="email">
    </div></td>
    </tr>
    <tr>
    <td height="24"><div align="left">Conferma E-mail:</div></td>
    <td><div align="left">
    <input type="text" name="conferma" id="conferma">
    </div></td>
    </tr>
    <tr>
    <td height="33" colspan="2"><div align="center">Inserisci nella textarea sottostante la tua richiesta:</div></td>
    </tr>
    <tr>
    <td colspan="2"><div align="center">
    <textarea name="richiesta" cols="60" rows="8" id="richiesta"></textarea>
    </div></td>
    </tr>
    <tr>
    <td colspan="2"><div align="center">
    <input type="button" onclick="ceck()" value="Invia richiesta"/>
    </tr>
    </form>
    [/html]e un codice javascript tra i tag <head> che mi deve fare un controllo sui campi:

    [html]
    <script language="javascript">
    <!--
    function ceck() {

    var nome = document.modulo.nome.value;
    var email = document.modulo.email.value;
    var conferma = document.modulo.conferma.value;
    var richiesta = document.modulo.richiesta.value;
    
    if ((nome == "") || (nome == "undefined")) {
       alert("Il campo Nome è obbligatorio.");
       document.modulo.nome.focus();
       return false;
    } 
    
    var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; 
    else if (!email_reg_exp.test(email) || (email == "") || (email == "undefined")) {
       alert("Inserire un indirizzo email corretto.");
       document.modulo.email.select();
       return false;
    } 
    
    else if ((conferma == "") || (conferma == "undefined")) {
       alert("Il campo di Conferma email è obbligatorio.");
       document.modulo.conferma.focus();
       return false;
    } 
    
    else if (email != conferma) {
       alert("L' email confermata è diversa da quella inserita precedentemente, controllare.");
       document.modulo.conferma.value = "";
       document.modulo.conferma.focus();
       return false;
    } 
    
    else {
       document.modulo.action = "submit_request.php";
       document.modulo.submit();
    } 
    

    }
    //-->
    </script>
    [/html]

    bene.. quando premo il pulsante di invio del modulo... non succede esattamente NULLA!!! :arrabbiato:

    Vi prego.. auitatemi perchè prorpio non capisco!!! ❌x:x

    Grazie mille
    ciao


  • User Attivo
     <form method="post" name="modulo" action="" onSubmit="Modulo()">
    

    Non è che il campo action="" debba essere riempito con il link al file **submit_request.php?

    **


  • User

    no, non era quello ma ho risolto ^^
    grazie comunque
    era proprio lo script che non andava, lo avevo preso da un sito per fare prima ma come al solito le cose fatte per far prima non vanno mail ^^
    grazie mille lo stesso
    ciao


  • User

    Potresti inviarmi il codice corretto devo inserire anch'io un contact form che mi mandi una mail e non so come fare.

    Grazie.


  • User

    allora, vediamo un po':
    prima di tutto devi fare una pagina che contenga il form..
    il mio form è questo:

    [html]
    <table width="450" border="1" cellspacing="0">
    <tr>
    <td>
    <div align="center">
    <table width="450" border="0">
    <form action="submit_request.php" name="ceck" method="post" onsubmit="return controllo();" >
    <tr>
    <td width="107"><div align="left">Nome:</div></td>
    <td width="333"><div align="left">
    <input type="text" name="name" class="inputbox"><span id="name">* Inserisci nome</span>
    </div>
    </td>
    </tr>
    <tr>
    <td><div align="left">E-mail:</div></td>
    <td><div align="left">
    <input type="text" name="mail" class="inputbox"><span id="mail">* Inserisci indirizzo email</span>
    </div></td>
    </tr>
    <tr>
    <td height="24"><div align="left">Conferma E-mail:</div></td>
    <td><div align="left">
    <input type="text" name="conf" class="inputbox"><span id="conf">* Conferma indirizzo email</span>
    </div></td>
    </tr>
    <tr>
    <td height="33" colspan="2"><div align="center">
    Inserisci nella textarea sottostante la tua richiesta:
    </div></td>
    </tr>
    <tr>
    <td colspan="2"><div align="center">
    <textarea name="message" cols="50" rows="8" class="inputbox"></textarea>
    <br>
    <div style="text-align:center;"><span id="message">* Inserisci messaggio</span></div>
    </div></td>
    </tr>
    <tr>
    <td colspan="2"><div align="center">
    <input type="submit" value="Invia Richiesta" />
    </div>
    </tr>
    </form>
    </table>
    </div></td>
    </tr>
    </table>
    [/html]nella stessa pagina (fra i tags <head>) devi mettere questo semplice script:

    [html]
    <script language="javascript">
    <!--
    function controllo()
    {
    var nome = document.ceck.name;
    var mail = document.ceck.mail;
    var conf = document.ceck.conf;
    var msg = document.ceck.message;
    var spanName = document.getElementById('name');
    var spanMail = document.getElementById('mail');
    var spanConf = document.getElementById('conf');
    var spanMsg = document.getElementById('message');
    spanName.style.display = 'none';
    spanMail.style.display = 'none';
    spanConf.style.display = 'none';
    spanMsg.style.display = 'none';

    if(nome.value == "")
    {
    alert('campo nome vuoto');
    nome.focus();
    spanName.style.display = 'block';
    return false;
    }
    else if(mail.value == "")
    {
    alert('campo mail vuoto');
    mail.focus();
    spanMail.style.display = 'block';
    return false;
    }
    else if(conf.value == "")
    {
    alert('campo conferma mail vuoto');
    conf.focus();
    spanConf.style.display = 'block';
    return false;
    }
    else if(msg.value == "")
    {
    alert('Inserisci un messaggio');
    msg.focus();
    spanMsg.style.display = 'block';
    return false;
    }

    else if(!mail.value.match(/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})$/))
    {
    alert('campo mail non valido');
    mail.focus();
    spanMail.style.display = 'block';
    spanConf.style.display = 'block';
    mail.value = '';
    conf.value = '';
    return false;
    }
    else if(!conf.value.match(/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})$/))
    {
    alert('campo mail non valido');
    conf.focus();
    spanMail.style.display = 'block';
    spanConf.style.display = 'block';
    mail.value = '';
    conf.value = '';
    return false;
    }
    else if(mail.value != conf.value)
    {
    alert('Gli indirizzi e-mail non coincidono');
    mail.focus();
    spanMail.style.display = 'block';
    spanConf.style.display = 'block';
    mail.value = '';
    conf.value = '';
    return false;
    }

    else
    {
    return true;
    }
    }

    //-->
    </script>

    [/html]fatto questo occorre creare una pagina di eleaborazione dati in php, ti posto il codice di interesse:

    [php]
    <?php
    $nome = mysql_escape_string($_POST[name]);
    $mail = mysql_escape_string($_POST[mail]);
    $message3 = preg_replace("/\r\n/","<br/>",$_POST[message]);
    $message2 = mysql_escape_string($message3);
    $message = stripslashes($message2);

    $email = "qui metti il tuo indirizzo di posta elettronica";
    $oggetto = "qui mettil' oggetto che vuoi che appaia - tipo mail dal sito";

    $intestazioni = "MIME-Version: 1.0\r\n";
    $intestazioni .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $intestazioni .= "From: ".$nome."<".$mail.">\r\n";

    $messaggio = "<p>Questa mail ti è stata inviata da: ".$nome."</p>
    <p>Il contenuto della richista di ".$nome." (".$mail.") è:</p>
    <p>".$message."</p>";

    mail($email, $oggetto, $messaggio, $intestazioni);
    ?>
    [/php]e il gioco è fatto..
    spero di esserti stato di aiuto
    ciao ciao!