• User Newbie

    mi arrivano pagine vuote del form mail

    ciao a tutti!!! mi chiamo Monica spero possiate aiutarmi, sto imparando la scrittura php e ho fatto un form per il mio b&b in modo che mi arrivi la mail, ho fatto delle prove inserendo i vari campi o non inserendoli e rispettivamente mi arriva la mail con i dati inseriti oppure mi da errore se ad esempio non ho inserito la mail valida! com'è possibile che invece mi arrivano delle mail vuote??? ovvero con solo i campi NOme, periodo, richiesta etc... ma a fianco non c'è scritto niente!!! al mittente non gli da errore se lascia vuoto? me lo da solo a me nel momento della prova?? ora vi posto il form e successivamente lo script php:
    pagina contatti.php

    <form action="inviato.php" align="center" method="post" name="Prenotazioni" id="Prenotazioni" onsubmit="MM_validateForm('email','','RisEmail');MM_validateForm('nome','','R');return document.MM_returnValue">
    <fieldset>
    <div align="center">
    <legend>Informazioni personali </legend>
    </div>
    <p align="center">
    <label for="nome">Nome * </label>
    <input name="nome" type="text" id="nome" tabindex="10" />
    </p>
    <p align="center">
    <label for="email">E-mail</label>
    *
    <span id="spryemail">
    <input type="text" name="email" id="email" tabindex="20" />
    </span></p>
    <p align="center">*campi obbligatori</p>
    </fieldset>
    <div align="center">
    <fieldset>
    <p>
    <legend></legend>
    <p>Richiedi</p>
    <legend>Prenotazione o Informazioni</legend>
    </p>
    </fieldset>
    </div>
    <fieldset>
    <p align="center">
    <label for="adulti">Numero adulti</label>
    <span id="spryselect1">
    <select name="adulti" size="1" id="adulti" tabindex="30">
    <option>1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    </select>
    </span></p>
    <p align="center">
    <label for="bambini">Numero bambini</label>
    <select name="bambini" size="1" id="bambini" tabindex="40">
    <option>0</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
    </select>
    </p>
    <p align="center">
    <label for="notti">Numero notti</label>
    <select name="notti" size="1" id="notti" tabindex="50">
    <option selected="selected">1</option>
    <option>2</option>
    <option>3</option>
    <option>4</option>
    <option>5</option>
    <option>6</option>
    <option>7</option>
    <option>8</option>
    <option>9</option>
    <option>10</option>
    <option>11</option>
    <option>12</option>
    <option>13</option>
    <option>14</option>
    <option>15</option>
    <option>16</option>
    <option>17</option>
    <option>18</option>
    <option>19</option>
    <option>20</option>
    <option>21</option>
    </select>
    </p>
    <p align="center">
    <label for="arrivo">Data di arrivo</label>
    <span id="sprytextfield2">
    <input name="arrivo" type="text" id="arrivo" value="gg/mm/aaaa" maxlength="15" />
    </span></p>
    <p align="center">
    <label for="partenza">Data di partenza</label>
    <span id="sprytextfield3">
    <input name="partenza" type="text" id="partenza" value="gg/mm/aaaa" maxlength="15" />
    </span></p>
    <p align="center">
    <label for="richiesta">Richiedi informazioni</label>
    <textarea name="richiesta" id="richiesta" cols="45" rows="5"></textarea>
    </p>
    <p> </p>
    <p align="center">
    <a href="inviato.php"> <input name="Invio" type="submit" onclick="MM_validateForm('nome','','R');MM_validateForm('email','','RisEmail');return document.MM_returnValue" value="Invio" />
    </a>
    <input type="reset" name="cancella" id="cancella" value="Cancella tutto" />
    </p>
    </fieldset>
    </form>

    pagina inviato.php

    <?php
    /* INVIO SEMPLICE */
    $destinatario = "miamail";
    $oggetto = "Email inviata dal sito Luci sul Golfo";
    $messaggio = "Nome $nome\n";
    $messaggio .= "Adulti $adulti\n";
    $messaggio .= "Bambini $bambini\n";
    $messaggio .= "Notti $notti\n";
    $messaggio .= "Arrivo $arrivo\n";
    $messaggio .= "Partenza $partenza\n";
    $messaggio .= "Richiesta $richiesta\n";

    $da = $email;
    $intestazioni = "From: $da";
    mail($destinatario,$oggetto,$messaggio,$intestazioni);
    ?>
    N.B. uso dreamweaver e il controllo campi obbligatori e validazione mail l'ho fatta mettere dal programma perchè io non avrei saputo da dove iniziare. non so se è utile per trovare l'errore ma nell'HEAD della pagina contatti.php dreamweaver mi ha messo anche il seguente script:
    <script type="text/javascript">
    <!--
    function MM_validateForm() { //v4.0
    if (document.getElementById){
    var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
    for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args*);
    if (val) { nm=val.name; if ((val=val.value)!="") {
    if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
    if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
    } else if (test!='R') { num = parseFloat(val);
    if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
    if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
    min=test.substring(8,p); max=test.substring(p+1);
    if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
    } if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
    } }
    //-->
    </script>

    ma è davvero utile tutta sta roba? non è che dipende dal fatto che lui usa java in questo script e dopo invece c'è php?? boh... scusate l'ignoranza


  • User Newbie

    intestazioni è scritto tutto attaccato in realtà!! :1: :bho:


  • User Attivo

    Mha, diciamo che c'è un pò di casino in questo codice.

    Da una prima svista al codice, nel submit del form tu hai questo

    [PHP]MM_validateForm('nome','','R');MM_validat eForm('email','','RisEmail'); [/PHP]

    Quindi controlla solo quei due campi.

    Il php non effettua nessun controllo sui dati inseriti!


  • User Newbie

    grazie della risposta!!
    dunque..uhm..non so se ho capito.. il codice che tu hai copiato è giusto??? MM_validateForm('nome','','R');MM_validat eForm('email','','RisEmail'); ovvero, a me interessa che mettano almeno il nome e la mail, quindi quel codice va bene??
    il fatto è che nonostante Quel codice mi arrivano lo stesso mail vuote in tutti i campi compreso nome e MAiL!! però se ci provo da sola a inviarmi mail dal Form mi da errore se lascio uno dei due campi vuoti!