• User Newbie

    Form php per invio dati ad e-mail

    Salve,
    mi sono iscritto al vostro forum perchè ho un problema nella creazione di un form php per invio dati ad email; ho consultato aìuna delle vostre discussioni al riguardo, ma evidentemento sbaglio qualche passaggio.
    Premetto che non conosco bene la sintassi del php.
    Avrei bisogno di creare un form su altervista con 5 campi:

    1. Nome
    2. Cognome
    3. Email
    4. recapito telefonico mobile
    5. recapito telefonico fisso
      Ovviamente infine il pulsante "Invia" che dovrebbe inviare i dati sia alla mia mail che al database che ho creato su altervista e che contiene una tabella chiamata "Contatti".

    Index.html

    [HTML]
    <form method="post" action="invio.php">
    <h1 align="center">Inserisci i tuoi dati per essere ricontattato</h1>
    <div align="center">
    <address>          NOME<input tabindex="0" maxlength="30" name="Nome"></address>
    <address>COGNOME<input tabindex="0" maxlength="30" name="Cognome"></address>
    <address>        E-Mail<input tabindex="0" maxlength="30" name="E-Mail"></address>
    <address>Recapito telefono Cellulare<input tabindex="0" name="Recapito Cellulare"></address>
    <address>Recapito Fisso<input tabindex="0" maxlength="30" name="Recapito telefono fisso"></address>
    <address> </address>
    <address> </address>
    </div>
    <div align="center">
    <input value="INVIA" type="submit" name="Invia">
    </div>
    </form>
    </body>
    </html>
    [/HTML]

    invio.php

    [PHP]
    <?php
    $dbhost = "localhost"; // Hosta database
    $dbuser = "mio nick"; // Username database
    $dbpass = ""; // facoltativa su altervista
    $dbname = "my_mio nick".$db_user; // Nome database
    $db = mysql_connect($dbhost, $dbuser, $dbpass); // Connessione al database
    $mail = "mia mail";
    $oggetto = "E-Mail";
    $testo = "nome: ".$_GET['Nome']."
    Cognome: ".$_GET['Cognome'];
    mysql_select_db($dbname, $db); // Selezione database
    mysql_query("INSERT INTO Contatti VALUES ("".$_POST['nome']."","".$_POST['cognome']."","".$_POST['e-mail']."","".$_POST['recapito telefono fisso']."","".$_POST['recapito telefono cellulare']."")"); mail($mail,$oggetto,$testo); mail($mail,$oggetto,$testo);
    // Inserimento dati
    mysql_close($db); // Disconnessione dal database
    ?>
    [/PHP]

    Questa è la sintassi che ho utilizzato ma mi da un problema e cioè che mi crea il report nel database e mi invia anche la mail ma non visualizzo alcun dato di quelli inseriti nella compilazione del form.
    Spero che qualcuno possa darmi una mano.
    Grazie:x


  • User Newbie

    Index.html

    [HTML]
    <form method="post" action="invio.php">
    <h1 align="center">Inserisci i tuoi dati per essere ricontattato</h1>
    <div align="center">
    <address>          NOME<input tabindex="0" maxlength="30" name="Nome"></address>
    <address>COGNOME<input tabindex="0" maxlength="30" name="Cognome"></address>
    <address>        E-Mail<input tabindex="0" maxlength="30" name="E-Mail"></address>
    <address>Recapito telefono Cellulare<input tabindex="0" name="Recapito Cellulare"></address>
    <address>Recapito Fisso<input tabindex="0" maxlength="30" name="Recapito telefono fisso"></address>
    <address> </address>
    <address> </address>
    </div>
    <div align="center">
    <input value="INVIA" type="submit" name="Invia">
    </div>
    </form>
    </body>
    </html>
    [/HTML]

    invio.php

    [PHP]
    <?php
    $dbhost = "localhost"; // Hosta database
    $dbuser = "mio nick"; // Username database
    $dbpass = ""; // facoltativa su altervista
    $dbname = "my_mio nick".$db_user; // Nome database
    $db = mysql_connect($dbhost, $dbuser, $dbpass); // Connessione al database
    $mail = "mia mail";
    $oggetto = "E-Mail";
    $testo = "nome: ".$_GET['Nome']."
    Cognome: ".$_GET['Cognome'];
    mysql_select_db($dbname, $db); // Selezione database
    mysql_query("INSERT INTO Contatti VALUES ("".$_POST['nome']."","".$_POST['cognome']."","".$_POST['e-mail']."","".$_POST['recapito telefono fisso']."","".$_POST['recapito telefono cellulare']."")"); mail($mail,$oggetto,$testo); mail($mail,$oggetto,$testo);
    // Inserimento dati
    mysql_close($db); // Disconnessione dal database
    ?>
    [/PHP]


  • ModSenior

    Ciao vema1904,

    le variabili devi prendere in $_POST in quanto hai utilizzato il metodo post per il form.


  • User Newbie

    Quali variabili? potresti aiutarmi sono nuovo con queste cose.
    grazie.


  • User

    Ciao,
    il problema è che richiami le variabili con due metodi diversi!
    nel form scrivi:
    <form method="post" action="invio.php">

    e poi richiami invio.php in questo modo:
    <?php ...*
    $db = mysql_connect($dbhost, $dbuser, $dbpass); // Connessione al database
    $mail = "mia mail";
    $oggetto = "E-Mail";
    $testo = "nome: ".$_GET['Nome']."
    Cognome: ".$_GET['Cognome'];
    ...* ?>

    Non va bene, devi richiamare le variabili con lo stesso metodo che hai utilizzato nel form, cioè il POST.