Visualizzazione risultati 1 fino 21 di 21

Discussione: problema form e-mail

  1. #1
    Guest

    Predefinito problema form e-mail

    ho creato un form email per il mio sito ma non capisco perchè non funziona il codice è:
    parte php:
    Codice:
    <?php
    //raccogliamo le variabili inviate
    $nome=$_POST['nome'];
    $email=$_POST['email'];
    $oggetto=$_POST['oggetto'];
    $messaggio=$_POST['messaggio'];
    $Submit=$_POST['Submit'];
    //controlliamo che sia stato inviato il form
    if($Submit=='Invia!'){
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto)){
    //inviamo l'email
    $mail=mail("matteopagliazzi@gmail.com", $oggetto, $messaggio);
    //controlliamo che la mail sia stata inviata correttamente
    if($mail){
    //messaggio in caso di successo
    $ok="Email inviata!";
    }
    else{
    //messaggio in caso di errore
    $errore="Non è stato possibile inviare l'email, riprova.";
    }
    }
    else{
    //messaggio in caso di campi mancanti
    $errore="Tutti i campi sono obbligatori!";
    }
    }
    ?>
    parte html:
    Codice HTML:
    <?php if(isset($errore)){ echo $errore; }else{ if(isset($ok)){ echo $ok; } } ?>
    <form name="mailform" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
    Nome<br />
    <input type="text" name="nome" /><br />
    Email<br />
    <input type="text" name="email" />
    <br />
    Oggetto<br />
    <input type="text" name="oggetto" />
    <br />
    <br />
    <textarea name="messaggio" cols="40" rows="5">Inserisci il tuo messaggio qui..</textarea>
    <br />
    <input type="submit" name="Submit" value="Invia!" />
    <input type="reset" name="Submit2" value="Cancella" />
    </form>
    grazie

  2. #2
    Guest

    Predefinito

    Sostituisci questa riga
    Codice HTML:
    <form name="mailform" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
    con
    Codice HTML:
    <form name="mailform" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">

  3. #3
    Guest

    Predefinito

    oppure usi la sintassi apposita:
    Codice HTML:
    <form name="mailform" method="post" action="<?=$_SERVER['PHP_SELF'];?>">

  4. #4
    Guest

    Predefinito

    ...oppure non lo metti come faccio io!

  5. #5
    Guest

    Predefinito

    ho provato in tutti e 2 i modi ma niente...
    possibile che non faccia perchè sono in locale?
    edit anche con il metodo di sim non va
    Ultima modifica di mytecnology : 11-03-2009 alle ore 22.38.29

  6. #6
    Guest

    Predefinito

    ma ottieni qualche messaggio di errore, oppure lo script sembra non fare nulla?

  7. #7
    Guest

    Predefinito

    Metti all'inizio dello script: error_reporting(E_ALL);

  8. #8
    Guest

    Predefinito

    Perchè nel php non controlli il name="" ma il value="" del bottone

    Dovrebbe andare così:
    Codice PHP:
    <?php
    //raccogliamo le variabili inviate
    $nome = htmlspecialchars(trim($_POST['nome']));
    $email = htmlspecialchars(trim($_POST['email']));
    $oggetto = htmlspecialchars(trim($_POST['oggetto']));
    $messaggio = htmlspecialchars(trim($_POST['messaggio']));
    $Submit = $_POST['Submit'];
    //controlliamo che sia stato inviato il form
    if($Submit)
    {
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto))
    {
    //inviamo l'email
    mail("matteopagliazzi@gmail.com", $oggetto, $messaggio);
    //controlliamo che la mail sia stata inviata correttamente
    }
    else
    {
    //messaggio in caso di campi mancanti
    print 'Tutti i campi sono obbligatori!';
    }
    }
    ?>

  9. #9
    Guest

    Predefinito

    con il codice di biccheddu non mi dice più se è stata inviata oppure no

  10. #10
    Guest

    Predefinito

    Niente di più semplice...
    Codice PHP:
    <?php
    //raccogliamo le variabili inviate
    $nome = htmlspecialchars(trim($_POST['nome']));
    $email = htmlspecialchars(trim($_POST['email']));
    $oggetto = htmlspecialchars(trim($_POST['oggetto']));
    $messaggio = htmlspecialchars(trim($_POST['messaggio']));
    $Submit = $_POST['Submit'];
    //controlliamo che sia stato inviato il form
    if($Submit)
    {
    //controlliamo che siano stati inseriti tutti i dati
    if(!empty($nome) and !empty($email) and !empty($messaggio) and !empty($oggetto))
    {
    //inviamo l'email
    mail("matteopagliazzi[at]gmail.com", $oggetto, $messaggio);
    echo
    "Email inviata correttamente!";
    //controlliamo che la mail sia stata inviata correttamente
    }
    else
    {
    //messaggio in caso di campi mancanti
    print 'Tutti i campi sono obbligatori!'; //quindi l'email non verrà inviata...
    }
    }
    ?>
    Saluti!

  11. #11
    Guest

    Predefinito

    grazie ora va!
    per non fare più lo stesso errore mi potresti dire cosa c'è di diverso tra il tuo e il codice di biccheddu?
    edit: quanto sarebbe in media il tempo di arrivo della mail?
    Ultima modifica di mytecnology : 12-03-2009 alle ore 17.02.13

  12. #12
    Guest

    Predefinito

    scusate se ho cambiato account comunque il problema dopo varie prove è (non so perchè dell'oggetto) anche il mio codice iniziale andava senza l'oggetto

  13. #13
    Guest

    Predefinito

    Perchè usi l'operatore AND ( && ) e non OR ( || ) nella condizione

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da biccheddu Visualizza messaggio
    Perchè usi l'operatore AND ( && ) e non OR ( || ) nella condizione
    ma così cambia qualcosa?

  15. #15
    Guest

    Predefinito

    Errore, ho capito male.

    La condizione che usi è corretta.

    Se nessuno di quei campi è vuoto invia la mail, altrimenti non la invia
    Ultima modifica di biccheddu : 14-03-2009 alle ore 23.17.48

  16. #16
    Guest

    Predefinito

    ok però perchè ne con l tuo ne con il mio codice non la invia?

  17. #17
    Guest

    Predefinito

    Ma ti restituisce qualche errore o cosa?!

  18. #18
    Guest

    Predefinito

    no nessun errore solo mi dice che l'invio è fallito poi se elimin $oggetto invece funziona

  19. #19
    Guest

    Predefinito

    Prova a scrivere così:
    Codice PHP:
    mail('matteopagliazzi@gmail.com', $oggetto, $messaggio, 'From: ' . $nome . ' <' . $email . '>');

  20. #20
    Guest

    Predefinito

    il pezzo da sostituire quindi sarebbe questo:
    Codice PHP:
    mail("matteopagliazzi[at]gmail.com", $oggetto, $messaggio);
    ?

  21. #21
    Guest

    Predefinito

    si è quello

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •