Erreur de code PHP: Comment déclarer la variable $email

Fermé
MEZUI - 5 nov. 2022 à 03:06
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 5 nov. 2022 à 18:55

Bonjour. Je suis en train de créer une interface de souscription à des formations en PHP.

Le code HTML du formulaire:

 <section class="form-element">
            <h1>Contacter nous</h1><br>
            <form method="POST" action="" enctype="multipart/form-data">

            <input type="text" name="sujet" placeholder="sujet" required="" class="form form-control">
            <input type="email" name="email" placeholder="email" required="" class="form form-control">
            <textarea name="message" placeholder="message" required="" class="form form-control"></textarea>
            <input type="file" name="fichier" placeholder="pièce ci-jointe" class="form form-control">
            <input type="submit" name="submit" value="Envoyer" class="btn btn-primary">
            </form>
        </section>

Le code PHP :

<?php
namespace PHPMailer\PHPMailer;

include('phpmailer/Exception.php');
include('phpmailer/PHPMailer.php');
include('phpmailer/SMTP.php');

                error_reporting(E_ALL);
                ini_set('display_errors', TRUE);
                ini_set('display_startup_errors', TRUE);

                require_once 'inclus/connect_db.php';

                if (!empty($_FILES)) {
                    $file_name  = $_FILES['fichier']['name'];
                    $file_extension = strrchr($file_name, ".");


                    $file_tmp_name  = $_FILES['fichier']['tmp_name'];
                    $file_dest = 'fichier/' . $file_name;


                    $file_autorisees = array('.pdf', '.PDF');

                    if (in_array($file_extension, $file_autorisees)) {
                        if (move_uploaded_file($file_tmp_name, $file_dest)) {

                            $req = $db->prepare('INSERT INTO fichiers(Nom, Url_fichier) VALUES(?,?)');

                            $req->execute(array($file_name, $file_dest));

                            echo "Fichier envoyé avec succès";
                        } else {
                            echo "Une erreur est survenue lors de l'envoi du fichier";
                        }
                    } else {
                        echo "<b>Seuls les fichiers PDF sont autorisés</b>";
                    }


                    $phpmail = new PHPMailer(true);
                    $phpmail->addAttachment('fichier/'.$file_name);
                    $phpmail->setFrom($email,'nom indefini');
                    $phpmail->Subject = $sujet;
                    $phpmail->addAddress('***@***');
                    $phpmail->Body=$message;
                    $phpmail->isHTML(true);
                    $phpmail->send();


                }

?>

J'ai  aussi utilisé PHPMailer.

Mais voici ce qui s'affiche dans mon navigateur, alors que mon code source semble correct:

Notice: Undefined variable: email in C:\wamp64\www\CRUD AJAX\traitement.php on line 43.

Fatal error: Uncaught PHPMailer\PHPMailer\Exception: Invalid address: (From): in C:\wamp64\www\CRUD AJAX\phpmailer\PHPMailer.php on line 1308

PHPMailer\PHPMailer\Exception: Invalid address: (From): in C:\wamp64\www\CRUD AJAX\phpmailer\PHPMailer.php on line 1308

Veuillez m'expliquer ce qui ne va pas svp.

A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
5 nov. 2022 à 10:07

Bonjour

De la même façon que tu as traité le champ file avec la variable $_FILES, tu dois traiter les autres champs de ton formulaire via la super globale $_POST


0

Et Comment dois-je procéder s'il te plait ? La méthode?

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
5 nov. 2022 à 18:55
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
0