+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 3 su 3

Discussione: !@mail() function non ritorna falso anche con tutti i campi compilati

  1. #1
    lisarko8077 non è in linea Novello
    Luogo
    Katerini, Greece
    Post
    10

    !@mail() function non ritorna falso anche con tutti i campi compilati

    Ciao

    sto testando un form che restituisce un messaggio nella stessa pagina, ma pur compilando tutti i campi mi restituisce sempre la funzione !@mail a cero quindi con il messaggio "Email error".

    Ecco il codice:

    Codice PHP:
    <?php
            
    if(isset($_POST['submit']))
            {
                if(empty(
    $_POST['nome'])      ||
                   empty(
    $_POST['email'])     ||
                   empty(
    $_POST['motivo'])     ||
                   empty(
    $_POST['messaggio'])   ||
                   !
    filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
                   {
                   echo 
    "No arguments Provided!";
                   
    // return false;
                   
    }
                else
                    {

                        
    $nome strip_tags(htmlspecialchars($_POST['nome']));
                        
    $email_address strip_tags(htmlspecialchars($_POST['email']));
                        
    $motivo strip_tags(htmlspecialchars($_POST['motivo']));
                        
    $messaggio strip_tags(htmlspecialchars($_POST['messaggio']));

                        
    // Create the email and send the message
                        
    $to 'mirkocoppola80@gmail.com'// Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
                        
    $email_subject "Website Contact Form:  $nome";
                        
    $email_body "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $nome\n\nEmail: $email_address\n\nOggetto: $motivo\n\nMessaggio:\n$messaggio";
                        
    $headers "From: mirkocoppola80@gmail.com\n"// This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
                        
    $headers .= "Reply-To: $email_address";
                        if (!@
    mail($to,$email_subject,$email_body,$headers))
                            {
                            
    // return true;
                                
    echo "<p>Email error</p>";
                            }
                            else
                            {
                                echo 
    "<p>Email sent successfully!</p>";
                            }
                    }
            }
            
    ?>
    codice HTML:
    <form class="form-horizontal col-sm-6 col-sm-offset-3" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
              <div class="form-group">
                <div class="row">
                  <label for="email" class="col-sm-12">Email</label>
                </div>
                <div class="row">
                  <div class="col-sm-12">
                    <input type="email" name="email" class="form-control" id="email" placeholder="Email">
                  </div>
                </div>
              </div>
              <div class="form-group">
                <div class="row">
                  <label for="nome" class="col-sm-12">Nome</label>
                </div>
                <div class="row">
                  <div class="col-sm-12">
                    <input type="text" name="nome" class="form-control" id="nome" placeholder="Nome">
                  </div>
                </div>
              </div>
              <div class="form-group">
                <div class="row">
                  <label for="motivo" class="col-sm-12">Motivo</label>
                </div>
                <div class="row">
                  <div class="col-sm-12">
                    <input type="text" name="motivo" class="form-control" id="motivo" placeholder="Motivo">
                  </div>
                </div>
              </div>
              <div class="form-group">
                <div class="row">
                  <label for="messaggio" class="col-sm-12">Messaggio</label>
                </div>
                <div class="row">
                  <div class="col-sm-12">
                    <textarea class="form-control" name="messaggio" rows="5" id="messaggio" placeholder="Motivo">Inserisci il tuo messaggio...</textarea>
                  </div>
                </div>
              </div>
              <div class="form-group">
                <div class="">
                  <button type="submit" name="submit" class="btn btn-default">Invia</button>
                </div>
              </div>
            </form>
    qualcuno può aiutarmi?

  2. #2
    ariston non è in linea Novello
    Post
    3
    Ciao,

    rimuovendo l'operatore @ davanti la funzione mail() la situazione rimane invariata?

    Maggiori info su @
    Maggiori info su mail()

  3. #3
    lisarko8077 non è in linea Novello
    Luogo
    Katerini, Greece
    Post
    10
    Si, rimane invariata. Comunque credo di aver risolto, parlando con un amico: sembra che la funzione mail() renda sempre falso in caso di invio da server locale. Nel caso devo installare un server di posta come free smtp o qualcosa del genere.
    Comunque grazie per la dritta.

+ Rispondi al Thread

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi