Bonjour à tous j'ai encore un petit problème lol.. J'aimerais renvoyer vers la page d'accueil l'utilisateur lorsqu'il envoie son formulaire, or je n'y arrive pas l'adresse reste toujours à "http://localhost/onrefait2/controller/ControllerFormulaire.php" Quelqu'un peu m'expliquer l'erreur que je fait, pourquoi mon "header('location : index.php")" ne marche pas ?
Code index.php :et mon controllerformulaire.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 <?php // reconstitue l'url de la page d'accueil define('HOME', dirname($_SERVER['SCRIPT_NAME']) ); /** * Gestion de la page à afficher : * on récupère la query string avec 'page' pour trouver * quelle page on souhaite afficher. Pour celà il faut * faire plusieurs vérifications : **/ if(array_key_exists('page', $_GET)){ // si l'url contient bien la query string avec 'page' $template = 'views/'.$_GET['page'].".phtml"; $currentPage = $_GET['page']; if(!is_file($template)) { // si le fichier n'existe pas on affiche le template 404 $template = 'views/404.phtml'; $currentPage = '404'; } } else { $template = "views/accueil.phtml"; $currentPage = 'accueil'; } $menuItems = [ 'Accueil' => ['title' => "Accueil", 'icon' => 'fa fa-home' ], 'A propos de nous' => ['title' => 'A propos de nous', 'icon' => 'fa fa-arrow-circle-down' ], 'FAQ' => ['title' => 'Questions fréquentes', 'icon' => 'fa fa-question-circle' ], 'Contactez-nous' => ['title' => 'Contactez-nous', 'icon' => 'fa fa-envelope' ], ]; include "views/layout.phtml";
A savoir : j'ai aussi un .htaccess qui me réécri l'url de mes liens en /page/accueil, ou un autre nom de page voilà mais je ne pense pas que ça y joue quelque chose
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 <?php $options = array( 'nom' => FILTER_SANITIZE_STRING, 'mail' => FILTER_VALIDATE_EMAIL, 'number' => FILTER_VALIDATE_INT, 'message' => FILTER_SANITIZE_STRING, ); $resultat = filter_input_array(INPUT_POST, $options); //on vérifie que le formulaire à bien était envoyer if(array_key_exists('submit', $_POST)){ // on récupére les données du formulaire // elles sont automatiquement ranger dans le tableau $_POST $nom = htmlspecialchars(trim($_POST["nom"])); $email = htmlspecialchars(trim($_POST["mail"])); $message = htmlspecialchars(trim($_POST["message"])); $number = htmlspecialchars(trim($_POST["number"])); if($resultat !== false && !empty($nom) && !empty($email) && !empty($message) && !empty($number)){ $nom = htmlentities($_POST['nom']); $email = htmlentities($_POST['mail']); $message = htmlentities($_POST['message']); $number = htmlentities($_POST["number"]); $to = 'sdnpmultiservices@gmail.com'; //mail perso avec le nom de domaine du site internet, testé aussi en localhost $subject = "demande via le formulaire de contact du site internet"; $message = "Mr. ou Mme. $nom \n de la personne : $email \n (email : $email ) a fait une demande via le site internet.\n \n message : \n $message"; $message = wordwrap($message, 70); // Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap() $message = str_replace("\n.", "\n..", $message); //Sous windows, lorsque PHP discute directement avec un serveur SMTP, si un point est trouvé en début de ligne, il sera supprimé. Pour éviter ce comportement, remplacez ces occurrences par un double point. $headers = 'From: '.$email . "\r\n" . 'Reply-To: $email' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); } } header("location : index.php");
Partager