Visualizzazione risultati 1 fino 19 di 19

Discussione: File .php in file html non viene eseguito

  1. #1
    Guest

    Predefinito File .php in file html non viene eseguito

    Il file php all'interno del form non viene eseguito, se clicco invio invece di venir eseguito il codice php si apre una pagina vuota. Perchè?

    Codice HTML:
    <form method="post" action="contact.php">
    ...
    </form>

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Perché è il normale comportamento. Quale codice c'è all'interno? Cosa vorresti fare? Cosa dovrebbe fare il codice?

    Ciao!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Perché è il normale comportamento. Quale codice c'è all'interno? Cosa vorresti fare? Cosa dovrebbe fare il codice?

    Ciao!
    All'interno del file .php c'è PHPMailer che dovrebbe inviarmi una mail contenente i dati del form.

    Buon Natale!

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Normalmente si fa così:
    Codice PHP:
    <?php
    if(isset($_POST['inviato'])) //se ho inviato il form
    {
    echo
    'Faccio qualcosa con i dati del form, come'.$_POST['dato1'];
    }
    ?>
    <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="dato1">
    <input type="submit" name="inviato">
    </form>
    Se la pagina con il form non è "contact.php", dovrai inserire il codice php in quest'ultima.

    Se vuoi inviare una email, potrebbe interessarti l'utilizzo di SendGrid.

    Ciao!

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Normalmente si fa così:
    Codice PHP:
    <?php
    if(isset($_POST['inviato'])) //se ho inviato il form
    {
    echo
    'Faccio qualcosa con i dati del form, come'.$_POST['dato1'];
    }
    ?>
    <form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="dato1">
    <input type="submit" name="inviato">
    </form>
    Se la pagina con il form non è "contact.php", dovrai inserire il codice php in quest'ultima.

    Se vuoi inviare una email, potrebbe interessarti l'utilizzo di SendGrid.

    Ciao!
    Ah ok, quindi il form devo inserirlo per fora nel file .php?

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    No, puoi inserirlo anche in una pagina html con l'action che punta ad una pagina .php contenente lo script php.

    L'unica accortezza è che lo script PHP viene interpretato solamente in pagine con estensione .php, salvo modifiche via .htaccess.

    Ciao!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    No, puoi inserirlo anche in una pagina html con l'action che punta ad una pagina .php contenente lo script php.

    L'unica accortezza è che lo script PHP viene interpretato solamente in pagine con estensione .php, salvo modifiche via .htaccess.

    Ciao!
    Scusa non ho capito, l'action del form punta ad una pagina .php contenente PHPMailer però non viene eseguito, si apre solo una paginaa vuota...

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da italiaedintorni Visualizza messaggio
    Scusa non ho capito, l'action del form punta ad una pagina .php contenente PHPMailer però non viene eseguito, si apre solo una paginaa vuota...
    Ok, allora il discorso è diverso, avevo capito che avessi inserito il php dentro il form:
    Citazione Originalmente inviato da italiaedintorni Visualizza messaggio
    Il file php all'interno del form non viene eseguito
    In tal caso, controlla se arrivano tutti i parametri allo script php (ad esempio puoi farlo facendo var_dump() delle varie variabili provenienti dal form). Ricontrolla anche il restante codice dell'invio email.

    Potresti testare la funzionalità di mail() nel tuo account tramite questo semplice script.

    Ciao!

  9. #9
    Guest

    Predefinito

    Inserisco tutto il codice, magari puoi darmi una mano...

    Codice HTML:
    <div class="card-body">
    						<?php if ($msg != "") echo "$msg<br><br>"; ?>
                            <form method="post" action="contact.php" enctype="multipart/form-data">
                                <div class="form-row mb-3">
                                    <div class="form-group col-12">
                                        <label for="name">Nome:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-user"></i></span>
                                            </div>
                                            <input type="text" name="name" class="form-control" id="name" autocomplete="off" required>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="email">Indirizzo e-mail*:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-at"></i></span>
                                            </div>
                                            <input type="email" name="email" class="form-control" id="email" autocomplete="off" required>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="subject">Oggetto:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-envelope"></i></span>
                                            </div>
                                            <input type="text" name="subject" class="form-control" id="subject">
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="content">Messaggio:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-comment-alt"></i></span>
                                            </div>
                                            <textarea name="content" class="form-control" id="content" rows="5"></textarea>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
                                    
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" id="checkbox" required>
                                        <label class="form-check-label" for="checkbox">
                                            Acconsento al trattamento dei mie dati personali. <a class="privacy" href="https://www.privacy.it/normativa/codice-privacy-dlgs-1962003/" target="_blank">Maggiori informazioni</a>
                                        </label>
                                        <div class="valid-feedback"></div>
                                        <div class="invalid-feedback">
                                            Acconsentire al trattamento dei dati personali.
                                        </div>
                                    </div>
                                </div> 
                                
                                <button type="reset" name="reset" class="btn btn-danger">Pulisci campi</button>
                                <button type="submit" name="send" class="btn btn-primary">Invia</button>
                            </form>
                        </div>

    Codice PHP:
    <?php
    $msg
    = "";
    use
    PHPMailer\PHPMailer\PHPMailer;
    use
    PHPMailer\PHPMailer\Exception;

    include_once
    "phpmailer/PHPMailer.php";
    include_once
    "phpmailer/Exception.php";
    include_once
    "phpmailer/SMTP.php";

    if (isset(
    $_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $name = $_POST['name'];

    $mail = new PHPMailer();

    //if we want to send via SMTP
    $mail->Host = "smtp.tiscali.it";
    $mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->Username = "xxxx@tiscali.it";
    $mail->Password = "xxxxx";
    $mail->SMTPSecure = "ssl"; //TLS
    $mail->Port = 465; //587

    $mail->addAddress('xxxx@tiscali.it');
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;

    if (
    $mail->send())
    $msg = "Email inviata con successo!";
    else
    $msg = "Si è verificato un errore. Riprova più tardi.";

    }
    ?>
    Ultima modifica di italiaedintorni : 25-12-2018 alle ore 14.29.18

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Non è possibile utilizzare smtp su AlterVista perché non è possibile contattare server esterni da porte differenti dalla 80 e 443.

    Dovresti utilizzare la funzione mail(), oppure sendGrid.

    Ciao!

  11. #11
    Guest

    Predefinito

    Scusami ancora ma perchè se inserisco il tutto, compreso il form, in una pagina php funziona e con l'altro modo no?

    Codice PHP:
    <?php
    $msg
    = "";
    use
    PHPMailer\PHPMailer\PHPMailer;
    use
    PHPMailer\PHPMailer\Exception;
    include_once
    "phpmailer/PHPMailer.php";
    include_once
    "phpmailer/Exception.php";
    include_once
    "phpmailer/SMTP.php";

    if (isset(
    $_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    $mail = new PHPMailer();

    //$mail->Host = "";
    //$mail->isSMTP();
    //$mail->SMTPAuth = true;
    //$mail->Username = "";
    //$mail->Password = "";
    //$mail->SMTPSecure = "ssl";
    //$mail->Port = 465;

    $mail->addAddress('xxxx@tiscali.it');
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;


    if (
    $mail->send())
    $msg = "Your email has been sent, thank you!";
    else
    $msg = "Please try again!";

    }
    ?>
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport"
    content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Contact Form</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous">
    </head>
    <body>
    <div class="container" style="margin-top: 100px">
    <div class="row justify-content-center">
    <div class="col-md-6 col-md-offset-3" align="center">
    <br><br>

    <?php if ($msg != "") echo "$msg<br><br>"; ?>

    <form method="post" action="sendemail.php">
    <input class="form-control" name="subject" placeholder="Subject..."><br>
    <input class="form-control" name="email" type="email" placeholder="Email..."><br>
    <textarea placeholder="Message..." class="form-control" name="message"></textarea><br>
    <input class="btn btn-primary" name="submit" type="submit" value="Send Email">
    </form>
    </div>
    </div>
    </div>
    </body>
    </html>
    Ho provato senza l'SMTP anche con la pagina html ma non funziona.

  12. #12
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da italiaedintorni Visualizza messaggio
    Ho provato senza l'SMTP anche con la pagina html ma non funziona.
    Puoi mostrare il codice completo?

    Ciao!

  13. #13
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Puoi mostrare il codice completo?

    Ciao!
    Codice PHP:
    <?php
    $msg
    = "";
    use
    PHPMailer\PHPMailer\PHPMailer;
    use
    PHPMailer\PHPMailer\Exception;

    include_once
    "phpmailer/PHPMailer.php";
    include_once
    "phpmailer/Exception.php";
    include_once
    "phpmailer/SMTP.php";

    if (isset(
    $_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $name = $_POST['name'];

    $mail = new PHPMailer();

    $mail->Host = "smtp.tiscali.it";
    //$mail->isSMTP();
    $mail->SMTPAuth = true;
    $mail->Username = "xxxx@tiscali.it";
    $mail->Password = "xxxxx";
    $mail->SMTPSecure = "ssl";
    $mail->Port = 465;

    $mail->addAddress('xxxx@tiscali.it');
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;

    if (
    $mail->send())
    $msg = "Email inviata con successo!";
    else
    $msg = "Si è verificato un errore. Riprova più tardi.";

    }
    ?>

  14. #14
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Non mi sembra ci siano i commenti in smtp. Utilizza lo stesso codice che funziona assieme al form. Fai anche un po' di debug come ti avevo detto, con var_dump o echo o simili.

    Ciao!

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Non mi sembra ci siano i commenti in smtp. Utilizza lo stesso codice che funziona assieme al form. Fai anche un po' di debug come ti avevo detto, con var_dump o echo o simili.

    Ciao!
    Allora ho seguito il tuo consiglio e pare abbia funzionato, l'unico problema è che all'esecuzione della pagina php si apre una pagina vuota contenente l'indirizzo della pagina php eseguita. Come faccio ad evitare ciò? Grazie.

    Codice HTML:
    <div class="card-body">
    						<h6 class="card-title text-center">
    							<?php if ($msg != "") echo "$msg"; ?>
    						</h6>
                            <form method="post" action="contact.php">
                                <div class="form-row mb-3">
                                    <div class="form-group col-12">
                                        <label for="name">Nome:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-user"></i></span>
                                            </div>
                                            <input type="text" name="name" class="form-control" id="name" autocomplete="off" required>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="email">Indirizzo E-mail:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-at"></i></span>
                                            </div>
                                            <input type="email" name="email" class="form-control" id="email" autocomplete="off" required>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="subject">Oggetto:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-envelope"></i></span>
                                            </div>
                                            <input type="text" name="subject" class="form-control" id="subject">
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
    
                                    <div class="form-group col-12">
                                        <label for="message">Messaggio:</label>
                                        <div class="input-group">
                                            <div class="input-group-prepend">
                                                <span class="input-group-text"><i class="fas fa-comment-alt"></i></span>
                                            </div>
                                            <textarea name="message" class="form-control" id="message" rows="5"></textarea>
                                            <div class="valid-feedback"></div>
                                            <div class="invalid-feedback">
                                                Campo richiesto
                                            </div>
                                        </div>
                                    </div>
                                    
                                    <div class="form-check">
                                        <input class="form-check-input" type="checkbox" id="checkbox" required>
                                        <label class="form-check-label" for="checkbox">
                                            Acconsento al trattamento dei mie dati personali. <a class="privacy" href="https://www.privacy.it/normativa/codice-privacy-dlgs-1962003/" target="_blank">Maggiori informazioni</a>
                                        </label>
                                        <div class="valid-feedback"></div>
                                        <div class="invalid-feedback">
                                            Acconsentire al trattamento dei dati personali.
                                        </div>
                                    </div>
                                </div> 
                                
                                <button type="reset" name="reset" class="btn btn-danger">Pulisci campi</button>
                                <button type="submit" name="submit" class="btn btn-primary">Invia</button>
                            </form>
                        </div>
    Codice PHP:
    <?php
    $msg
    = "";
    use
    PHPMailer\PHPMailer\PHPMailer;
    use
    PHPMailer\PHPMailer\Exception;

    include_once
    "phpmailer/PHPMailer.php";
    include_once
    "phpmailer/Exception.php";
    include_once
    "phpmailer/SMTP.php";

    if (isset(
    $_POST['submit'])) {
    $subject = $_POST['subject'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $name = $_POST['name'];

    $mail = new PHPMailer();

    $mail->addAddress('davidemarca@tiscali.it');
    $mail->setFrom($email);
    $mail->Subject = $subject;
    $mail->isHTML(true);
    $mail->Body = $message;

    if (
    $mail->send())
    $msg = "<p style='color: green; font-style: italic; font-weight: bold;'>Email inviata con successo!</p>";
    else
    $msg = "<p style='color: red; font-style: italic; font-weight: bold;'>Si è verificato un errore. Riprova più tardi.</p>";

    }
    ?>

  16. #16
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da italiaedintorni Visualizza messaggio
    l'unico problema è che all'esecuzione della pagina php si apre una pagina vuota contenente l'indirizzo della pagina php eseguita. Come faccio ad evitare ciò?
    Cosa vorresti venisse visualizzato? È normale che si visualizza una nuova pagina perché l'action del form è impostato in quel modo. Qualsiasi cosa vorresti far visualizzare, deve essere o nella pagina php oppure puoi fare un redirect php ad un'altra pagina.

    Ciao!

  17. #17
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Cosa vorresti venisse visualizzato? È normale che si visualizza una nuova pagina perché l'action del form è impostato in quel modo. Qualsiasi cosa vorresti far visualizzare, deve essere o nella pagina php oppure puoi fare un redirect php ad un'altra pagina.

    Ciao!
    Vorrei che non venisse visualizzato nulla, che al click su "Invia" parta l'email e basta, senza l'apertura di una pagina vuota.

  18. #18
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,148

    Predefinito

    Citazione Originalmente inviato da italiaedintorni Visualizza messaggio
    Vorrei che non venisse visualizzato nulla, che al click su "Invia" parta l'email e basta, senza l'apertura di una pagina vuota.
    Per fare questa cosa "alla lettera" dovresti inviare una richiesta tramite javascript. Non è una cosa banale ma se conosci un po' javascript puoi cavartela, con fetch.

    Altrimenti, la cosa più semplice è fare come ti avevo indicato nella quarta risposta: la pagina verrà ricaricata ma non apparirà una nuova pagina vuota.
    Inoltre tramite PHP potrai scrivere un messaggio di corretto invio dell'email.

    Ciao!
    Ultima modifica di alemoppo : 26-12-2018 alle ore 12.10.53

  19. #19
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Altrimenti, la cosa più semplice è fare come ti avevo indicato nella quarta risposta
    Infatti farò così, inserirò il tutto in una pagina php.

    Grazie!

Regole di scrittura

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