Page 1 sur 1

ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 10 oct. 2022, 22:17
par Gaston39
Bonjour, j'espère que vous allez tous bien ?

Je sollicite votre aide, car là, je bloque complètement depuis 2 jours.
Je rencontre un problème avec l'affichage d'une alerte après l'envoie d'un formulaire d'inscription à la newsletter.
Je ne suis pas un foudre de guerre en PHP, mais je m'y mets de plus en plus, à la base je suis plus front que back...
J'aimerais faire apparaître une alerte pour chaque personne qui s'abonne.
J'ai codé un truc mais le message n'apparaît pas sur la page d'accueil.

L'enregistrement de l'email dans la BDD s'effectue bien, mais le message de confirmation ne s'affiche pas...

J'ai surement oublié quelque chose, mais je n'arrive pas à trouver quoi !

Merci d'avance à ceux qui voudrons bien m'apporter de l'aide.

Et un petit plus si je peux abusé :D comment fait-on pour vérifier que l'adresse mail existe déjà dans la base de données pour éviter les doublons ? :wink:

Voici la structure de mon code.
includes/config.php
includes/header.php (Pas important, ne contient qu'une barre de navigation)
includes/footer.php
index.php
newsletter.php
newsletter.sql (Pour ceux qui veulent faire les tests en local)

config.php
<?php 
// DB credentials.
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','root');
define('DB_NAME','site');
// Establish database connection.
try
{
$dbco = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
exit("Error: " . $e->getMessage());
}
?>
footer.php (Formulaire HTML)
<form action="newsletter.php" method="post">
<input type="email" class="form-control" name="email" id="email" placeholder="Votre adresse électronique" value="<?php echo htmlentities($result->emailid);?>" required/>
<button type="submit" class="btn btn-success my-3">S'abonner</button>
newsletter.php
<?php
session_start();
error_reporting(0);
include ('includes/config.php');
$email = $_POST["email"];
if(!empty($email)){
$sth = $dbco->prepare("
INSERT INTO newsletter(email)
VALUES(:email)");
$sth->bindParam(':email',$email);
$sth->execute();
header("Location:index.php");
}
?>
index.php
<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit']))
{
$email=$_POST['email'];	
$sql="INSERT INTO newsletter(emailid) VALUES(:email)";
$query = $dbh->prepare($sql);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
{
$msg="Vous êtes bien inscrit à notre lettre d'information... Merci et à bientôt.";
}
else 
{
$error="Quelque chose s'est mal passé. Veuillez réessayer";
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Mon site</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<!-- Appelle du header -->
<header>
<?php require_once "includes/header.php"?>
</header>
<!-- La partie qui affiche les messages -->
<main>
<?php if($error){?>
<div class="container-fluid shadow border-bottom alert alert-danger rounded-0">
<strong>ERREUR : </strong>
<?php echo htmlentities($error); ?>
</div>
<?php } 
else if($msg){?>
<div class="container-fluid shadow border-bottom alert alert-success rounded-0">
<strong>BRAVO : </strong>
<?php echo htmlentities($msg); ?>
</div>
<?php }?>
</main>
<!-- Appelle du footer -->
<footer class="container-fluid mt-3 shadow">
<?php require_once "includes/footer.php"?>
</footer>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
</body>
</html>
Table SQL tout fonctionne bien, l'email s'enregistre bien dans la base de données
CREATE TABLE `newsletter` (
`id` int(100) NOT NULL,
`email` varchar(150) NOT NULL DEFAULT '',
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 10 oct. 2022, 23:38
par or 1
<form action="newsletter.php" method="post">
cela renvoie vers newsletter.php

header("Location:index.php");
cela fait une redirection en methode get vers index.php

if(isset($_POST['submit']))
en methode get, $_POST['submit'] n'existe pas donc la suite du code n'est pas éxécuté.

vu qu'il y a du code en doublon, il suffit de renvoyer le formulaire vers index.php

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 11 oct. 2022, 09:25
par Gaston39
Bonjour Or 1,

Merci pour votre retour rapide, je suis désolé, mais je ne comprends pas ce qui bloque le fait que mon alerte ne s'affiche pas.
Comme je le précise dans ma signature, cela fait seulement 1 mois que j'apprends par moi-même PHP et donc je n'ai pas beaucoup de connaissances pour le moment, mais j'espère que ça viendra.
J'ai bien compris que ce petit bout de code bloque mon script if(isset($_POST['submit'])) mais je ne sais pas par quoi le remplacer...

Pouvez-vous me guider sur ce point ?

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 11 oct. 2022, 09:43
par Gaston39
Si je retire la partie qui fait doublons dans le fichier index.php
{
$email=$_POST['email'];	
$sql="INSERT INTO newsletter(emailid) VALUES(:email)";
$query = $dbh->prepare($sql);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbh->lastInsertId();
if($lastInsertId)
}
Cette fois-ci le message d'erreur s'affiche en permanence dès le chargement de la page :

Image

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 14:50
par Gaston39
UPDATE ET SOLUTION :

Bonjour à tous,

Pour ceux que ça intéresse au cas où ! Script entièrement fonctionnel avec mise en forme Bootstrap...

Nouvelle arborescence et suppression des fichiers inutiles, donc optimisation du code :

includes/config.php
includes/footer.php
includes/header.php (Pas important, ne contient qu'une barre de navigation)
index.php
check_mail.php (ajout d'une fonctionnalité de vérification de l’existence d’e-mail dans la base de données) jquery
newsletter.php (supprimé)
newsletter.sql (Pour ceux qui veulent faire les tests en local)

config.php (Le code)
<?php 
// DB credentials.
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS','root');
define('DB_NAME','site');
// Establish database connection.
try
{
$dbco = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));
$dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e)
{
exit("Error: " . $e->getMessage());
}
?>

footer.php (Le code)
<script>
function checkMail() {
$("#loaderIcon").show();
jQuery.ajax({
url: "check_mail.php",
data:'email='+$("#email").val(),
type: "POST",
success:function(data){
$("#email-status").html(data);
$("#loaderIcon").hide();
},
error:function (){}
});
}
</script>
<div class="col-xl-3 col-md-6 col-sm-6"><h6 class="mb-3">Inscription à la Newsletter</h6>
  <form action="" method="post">
    <span id="email-status" style="font-size:12px;"></span> 
    <input type="email" class="form-control mb-4 shadow" name="email" id="email" onBlur="checkMail()" placeholder="Votre adresse électronique" required/>
    <button type="submit" name="submit1" class="btn btn-success mb-2 shadow">
      S'abonner
    </button>
    <div class="text-small mt-2 pb-3">
      Accepter notre <a class="link text-muted" href="#"> Politique de confidentialité</a><input class="form-check-input ms-2 mt-1" type="checkbox" value="Accepter" aria-label="Checkbox for following text input" required>
    </div>
  </form>
</div>

header.php (Le code)
<nav class="navbar navbar-expand-lg bg-light shadow">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="#">Home</a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Link</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            Dropdown
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">Action</a></li>
            <li><a class="dropdown-item" href="#">Another action</a></li>
            <li><hr class="dropdown-divider"></li>
            <li><a class="dropdown-item" href="#">Something else here</a></li>
          </ul>
        </li>
        <li class="nav-item">
          <a class="nav-link disabled">Disabled</a>
        </li>
      </ul>
      <form class="d-flex" role="search">
        <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">
        <button class="btn btn-outline-success" type="submit">Search</button>
      </form>
    </div>
  </div>
</nav>

index.php (Le code)
<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit1']))
{
$email=$_POST['email'];	
$sql="INSERT INTO  newsletter(email) VALUES(:email)";
$query = $dbco->prepare($sql);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbco->lastInsertId();
if($lastInsertId)
{
$msg="Votre abonnement à notre lettre d'information a bien été enregistré ! Merci et à bientôt...";
}
else 
{
$error="Quelque chose s'est mal passé. Veuillez réessayer";
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Lettre d'information</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<!-- Appelle du header -->
<header>
<?php require_once "includes/header.php"?>
</header>
<main class="mt-4">
<!-- Message d'échec -->
<?php if($error){?>
<div class="container-fluid shadow border-bottom alert rounded-0 alert-danger alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>ERREUR : </strong>
<?php echo htmlentities($error); ?>
</div>
<?php } // Message de réussite
else if($msg){?>
<div class="container-fluid shadow border-bottom alert rounded-0 alert-success alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>BRAVO : </strong>
<?php echo htmlentities($msg); ?>
</div>
<?php }?>
</main>
<!-- Appelle du footer -->
<footer class="container-fluid bg-light fixed-bottom border-top shadow-lg pt-3">
<div class="row justify-content-end card-header me-5">
<?php require_once "includes/footer.php"; ?>
</footer>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
</body>
</html>

check_mail.php (Le code)
<?php 
require_once("includes/config.php");
// Vérification email
if(!empty($_POST["email"])) {
$email= $_POST["email"];
if (filter_var($email, FILTER_VALIDATE_EMAIL)===false) {
echo "<span style='color:orange'>Votre courriel n'est pas valide</span>";
}
else {
$sql ="SELECT email FROM newsletter WHERE email=:email";
$query= $dbco -> prepare($sql);
$query-> bindParam(':email', $email, PDO::PARAM_STR);
$query-> execute();
$results = $query -> fetchAll(PDO::FETCH_OBJ);
$cnt=1;
if($query -> rowCount() > 0)
{
echo "<span style='color:red'>Cette adresse email existe déjà.</span>";
echo "<script>$('#submit').prop('disabled',true);</script>";
} else{
echo "<span style='color:green'>Votre email est valide. Vous pouvez vous abonner !</span>";
echo "<script>$('#submit').prop('disabled',false);</script>";
}
}
}
?>

newsletter.sql (Éventuellement pour tester le tout)
CREATE TABLE `newsletter` (
  `id` int(100) NOT NULL,
  `email` varchar(150) NOT NULL DEFAULT '',
  `rgpd` tinyint(4) NOT NULL DEFAULT '1',
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Voili voilou, après plusieurs jours de réflexion, un paquet de clopes et une tonne de café, j'ai réussi à régler tous mes problèmes grâce à la piste que m'a donné or 1

Bonne journée à tous

Re: [RESOLU] ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 14:59
par or 1
<form action="" method="post">
ça marche si l'on s'inscrit à la newsletter depuis une autre page qu'index.php ?

Re: [RESOLU] ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 15:06
par Gaston39
Ah ben non, vous avez raison, je n'y ai pas pensé, vu que je suis en phase de tests et que pour l'instant, je n'ai qu'une page index.php...
Merci or 1, que dois-je faire pour que cela fonctionne sur toutes les pages de mon futur site ?
Je pense que c'est la même chose pour ma vérification jquery ?

Merci d'avance pour votre réponse.

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 15:37
par Gaston39
UPDATE

Bon grâce aux bonnes remarques de or 1, j'ai créé de nouveau un fichier newsletter.php où j'ai collé le code PHP du début du fichier index.php c'est à dire ça :

newsletter.php (Le code)
<?php
session_start();
error_reporting(0);
include('includes/config.php');
if(isset($_POST['submit1']))
{
$email=$_POST['email'];	
$sql="INSERT INTO  newsletter(email) VALUES(:email)";
$query = $dbco->prepare($sql);
$query->bindParam(':email',$email,PDO::PARAM_STR);
$query->execute();
$lastInsertId = $dbco->lastInsertId();
if($lastInsertId)
{
$msg="Votre abonnement à notre lettre d'information a bien été enregistré ! Merci et à bientôt...";
}
else 
{
$error="Quelque chose s'est mal passé. Veuillez réessayer";
}
header('location:index.php');
}
?>

index.php (Le nouveau code)
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Lettre d'information</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
</head>
<body>
<!-- Appelle du header -->
<header>
<?php require_once "includes/header.php"?>
</header>
<main class="mt-4">
<!-- Message d'échec -->
<?php if($error){?>
<div class="container-fluid shadow border-bottom alert rounded-0 alert-danger alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>ERREUR : </strong><?php echo htmlentities($error); ?>
</div>
<?php } // Message de réussite
else if($msg){?>
<div class="container-fluid shadow border-bottom alert rounded-0 alert-success alert-dismissible fade show" role="alert">
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
<strong>BRAVO : </strong><?php echo htmlentities($msg); ?>
</div>
<?php }?>
</main>
<!-- Appelle du footer -->
<footer class="container-fluid bg-light fixed-bottom border-top shadow-lg pt-3">
<div class="row justify-content-end card-header me-5">
<?php require_once "includes/footer.php"; ?>
</footer>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.1.min.js" integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ=" crossorigin="anonymous"></script>
</body>
</html>

footer.php (Le nouveau code avec form action="newsletter.php" method="post")
<script>
function checkMail() {
$("#loaderIcon").show();
jQuery.ajax({
url: "check_mail.php",
data:'email='+$("#email").val(),
type: "POST",
success:function(data){
$("#email-status").html(data);
$("#loaderIcon").hide();
},
error:function (){}
});
}
</script>
<div class="col-xl-3 col-md-6 col-sm-6"><h6 class="mb-3">Inscription à la Newsletter</h6>
  <form action="newsletter.php" method="post">
    <span id="email-status" style="font-size:12px;"></span> 
    <input type="email" class="form-control mb-4 shadow" name="email" id="email" onBlur="checkMail()" placeholder="Votre adresse électronique" required/>
    <button type="submit" name="submit1" class="btn btn-success mb-2 shadow">
      S'abonner
    </button>
    <div class="text-small mt-2 pb-3">
      Accepter notre <a class="link text-muted" href="#"> Politique de confidentialité</a><input class="form-check-input ms-2 mt-1" type="checkbox" value="Accepter" aria-label="Checkbox for following text input" required>
    </div>
  </form>
</div>

L'inscription des données dans la base fonctionne bien, la vérification de l'email dans le input aussi depuis une autre page, mais j'ai de nouveau plus mon message d'alerte ! RETOUR À LA CASE DÉPART :(

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 16:05
par ynx
Bonjour,

Les variables php n'existent que pendant l'exécution du script, à la fin de l'exécution, les variables php n'existent plus.

Puisque tu fais une redirection vers index.php à la fin du script newsletter.php, ceci va créer une nouvelle exécution pour le script index.php après l'exécution du script newsletter.php mais les deux scripts sont indépendants.
Les variables $msg ou $error définies dans ton script newsletter.php n'existent donc pas lors de l'exécution du script index.php

Une solution classique pour conserver une variable entre plusieurs scripts est d'utiliser une variable de session.
Ton script newsletter.php devrait enregistrer le message dans une variable de session et ton script index.php devrait vérifier si cette variable existe et l'afficher si c'est le cas. Il faudra penser à supprimer cette variable après l'affichage pour que le message ne s'affiche qu'une seule fois.

Au passage, je te recommande de ne pas désactiver le rapport d'erreur avec error_reporting(0), il est utile de voir les messages en développement afin de corriger les éventuelles erreurs.

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 18:36
par Gaston39
Bonjour ynx,

Merci pour ton retour, oui en effet d'après le manuel PHP, j'ai découvert ce que tu avances dans ton approche.
J'ai donc revu mon code et tout fonctionne parfaitement, maintenant, j'ai du code qui se répète, car je voulais être sûr que tout fonctionnait bien avant de finaliser tout ça au propre avec des fonctions.
Concernant la ligne error_reporting(0); je la passe en 1 lorsque je développe bien entendu...

Je vais tout remettre au propre et je reviens vers vous avec le code complet afin de vérifier ensemble si tout est ok avant de mettre en production et faire un petit sheckup sur la sécurité en passant.

Bonne soirée à tous et encore merci pour votre aide et remarques constructives.

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 20:15
par or 1
faire un petit sheckup sur la sécurité en passant.
peut-on s'incrire 10 fois avec le même email si l'on désactive le javascript ? ah bah oui
peut-on s'inscrire 10 fois avec le même email en soumettant le formulaire à newsletter.php avec :
<form action="http://www.nomdedomaine/com/newsletter.php" method="post">
<input type="text" name="email" />
<button type="submit" name="submit1"> S'abonner </button>
</form>
ah bah oui
peut-on ne pas rentrer une adresse email valide et s'inscrire quand même ? ah bah oui
peut-on inscrire 10 personnes à leur insu ? ah bah oui

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 12 oct. 2022, 23:39
par Gaston39
Rire or 1,

Ah bah oui, je début, alors chaque chose en son temps, ça fait tout juste un mois que j'ai commencé PHP jour pour jour en plus de ma retraite :lol: :lol: , j'ai plein d'autres occupations comme dirait l'autre, l'infirmière à domicile, le kiné, les parties de scrabble avec les copines de l’Ehpad. Ah bah oui, on s'emmerde chez les vieux, alors on se met à l'informatique histoire de tuer le temps, c'est drôle, on rencontre des tas de gens sympas ou pas ah bah oui, y a des gros C.... aussi on ne dirait pas comme ça, pas bonjour, ni passez une bonne journée, il paraît qu'on les appellent les rois du web parce qu'il savent tout mieux que tout le monde !
Alors oui j'ai conscience de tout ça, j'ai déjà réglé plusieurs points énoncés plus haut, alors ne mettons pas la charrue avant les bœufs, je ne sais pas encore faire une fonction et la rendre fonctionnelle.
Pour l'instant, je suis en local et la production ce n'est pas pour tout de suite, je plaisantais en disant ça...
Je ne sais même pas si je réaliserai un site complet un jour, à 88 ans, je fais ce que je peux alors merci d'être indulgent ! :D Comme précisé dans ma signature.

Sur ce, il se fait tard et mes cachets commencent à faire leur effet :D

Alors bonne nuit les petits à plus tard ah bah peut-être pas non du coup

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 13 oct. 2022, 22:58
par two3d
Ya une solution c'est de passer une variable GET à ton header :

header("Location:index.php?newsletter_msg=error"); //ou success

Dans index.php, tu vérifi si il existe un $_GET['newsletter_msg'] et ce qu'il contient.

Autre chose, dès que tu vois que tu duplique du code, essaye de le rassembler quelque par, par exemple :

Code : Tout sélectionner

<?php session_start(); <- ceci error_reporting(0); <- et ceci include('includes/config.php'); <- peuvent aller dans ce fichier, tu n'aura pas à le retaper à chaque fois

Re: ALERT après envoie d'un formulaire ne s'affiche pas

Posté : 19 oct. 2022, 20:57
par Gaston39
Ya une solution c'est de passer une variable GET à ton header :

header("Location:index.php?newsletter_msg=error"); //ou success

Dans index.php, tu vérifi si il existe un $_GET['newsletter_msg'] et ce qu'il contient.

Autre chose, dès que tu vois que tu duplique du code, essaye de le rassembler quelque par, par exemple :

Code : Tout sélectionner

<?php session_start(); <- ceci error_reporting(0); <- et ceci include('includes/config.php'); <- peuvent aller dans ce fichier, tu n'aura pas à le retaper à chaque fois
Bonjour two3d,

Merci pour ta réponse, je prends note !

Malheureusement, je suis passé à Laravel et j'ai gagné beaucoup de temps, mon site fonctionne bien dans ses débuts en local et je continue à le développer tranquillement.

Je ne passerai ici que de temps en temps, j'ai trouvé plus de solutions sur youtube ou d'autre forum qu'ici.

Je suis désolé, j'ai pourtant toujours été très correct avec tout le monde, mais comme je l'ai dit, je débute en php depuis 1 mois seulement et tout me paraissait compliqué sur ce forum, et franchement, à part vous trois, les autres utilisateurs viennent plus chercher des solutions que d'aider les autres.

En tout cas, merci les gars pour votre aide, et bonne continuation.

Je ne sais pas ce que je dois faire avec ce post, le clôturer comme résolu, ce qui n'est pas le cas dans son état actuel ou le supprimer ?

Si un modérateur peut prendre la décision à ma place, je lui laisse volontiers.

Gaston