• User Attivo

    Php invio mail

    Salve!Sono qui perchè ieri, per passare un po il tempo, stavo scrivendo uno script php che consente di inviare mail al webmaster direttamente dal sito.Solo che, anche se riempio tutti i dati necessari per inviare la mail, mi compare ugualmente il messaggio che mi dice che non ho riempito tutti i campi, quindi la mail non me la manda.
    Ecco il codice del file php(invia_mail.php)che processa il form:
    [PHP]<?php
    $dest="[email protected]";
    $oggetto="email inviata dal mio sito";
    if($tuonome <> "" && $tuamail <> "" && $commento <> "") {
    mail("$dest", "$oggetto", "From: $tuamail\nMail: $tuamail\nMessage:\n\n$commento");
    $risposta="Email inviata con successo.Torna al <a href=miosito.it>sito</a>";
    } else {
    $risposta="Errore!Non hai inserito correttamente i tuoi dati.Torna<a href=miosito.it>indietro</a>";
    }
    ?>
    <?php
    print("$risposta");
    ?>[/PHP]

    Il form si trova nel file mail.php:

    <html>
    <head>
    <title>Invia la mail</title>
    </head>
    <body>
    <div align="center"><center><h1>Modulo invia mail</h1>
    <form action="invia_mail.php" method="post">
    Il tuo nome<input type="text" name="tuonome"><br>
    La tua mail<input type="text" name="tuamail"><br>
    <textarea name="commento"></textarea>
    <input type="submit" value="invia">
    </form>
    </center>
    </div>
    </body>
    </html>
    
    

    Spero che possiate darmi una mano.Grazie


  • User Attivo

    Dal codice che hai postato, sembra che ti sei dimenticato di inizializzare le variabili $tuonome, $tuamail e $commento, che restano sempre nulle e ti impediscono di oltrepassare la prima condizione dell'IF.

    Prova così:

    [php]
    $tuonome = @$_POST["tuonome"];
    $tuamail = @$_POST["tuamail"];
    $commento = @$_POST["commento"];
    [/php]Ciao!


  • User Attivo

    Grazie mille, funziona!Io avevo provato ad inserire(prima di postare su questo forum), invece di @$_POST , $_GET, ma non funzionava!
    Grazie e arrivederci!:smile5:


  • User Attivo

    Il metodo $_GET, funziona solo se nel form è impostato il metodo get.

    Es. <form action="invia_mail.php" method="get">

    In questo caso il contenuto delle variabili viene passato alla pagina succesiva attraverso la modifica dell'indirizzo della pagina di destinazione.

    Es. .../pagina.php?tuonome=nome_a_caso

    Ciao!