Je ne comprends pas pourquoi ma variable n'est pas définie
Résolu
fabi00
Messages postés
82
Statut
Membre
-
yg_be Messages postés 24281 Statut Contributeur -
yg_be Messages postés 24281 Statut Contributeur -
Bonjour,
Je crée un formulaire de devis et j'essaie d'afficher un message d'erreur lorsque l'utilisateur n'a pas rempli certaines données du formulaire. J'ai donc créé deux variables qui contienne les messages d'erreur, la variable $afficheErreur1 et $afficheErreur2. Cependant au moment de la compilation j'ai un message qui m'indique que les deux variables ne sont pas définies et pourtant elle fonctionne. J'aimerais comprendre pourquoi ? Et comment améliorer ça car visiblement je pense que je m'y prends mal.
Merci d'avance.
Voici mon code...
Je crée un formulaire de devis et j'essaie d'afficher un message d'erreur lorsque l'utilisateur n'a pas rempli certaines données du formulaire. J'ai donc créé deux variables qui contienne les messages d'erreur, la variable $afficheErreur1 et $afficheErreur2. Cependant au moment de la compilation j'ai un message qui m'indique que les deux variables ne sont pas définies et pourtant elle fonctionne. J'aimerais comprendre pourquoi ? Et comment améliorer ça car visiblement je pense que je m'y prends mal.
Merci d'avance.
Voici mon code...
<?php
//On démarre une nouvelle session
session_start();
//Formulaire 1
//Si on appuie sur le bouton "suivant"
if(isset($_POST['suivant'])){
//On récupère les données dans $_POST
$modele=$_POST['modele'];
$taille=$_POST['taille'];
$couleur=$_POST['couleur'];
$quantite=$_POST['quantite'];
//On définit des variables de session
$_SESSION['modele'] = $modele;
$_SESSION['taille'] = $taille;
$_SESSION['couleur'] = $couleur;
$_SESSION['quantite'] = $quantite;
if($quantite == false){
$afficheErreur1 = "<h4>Veuillez ajouter une quantité</h4>";
$_SESSION['afficheErreur1'] = $afficheErreur1;
}
else{
// On va sur le formulaire 2
header ('Location: #demo2');
die();
}
}
//Formulaire 2
//Si on appuie sur le bouton "suivant"
if(isset($_POST['suivant1'])){
//On récupère les données dans $_POST
$qualite=$_POST['qualite'];
$zone=$_POST['zone'];
$impression=$_POST['impression'];
$fichier=$_POST['fichier'];
// On va sur le formulaire 3
header('Location: #demo3');
die();
//header('Location: suite2.php');
//On définit des variables de session
$_SESSION['qualite'] = $qualite;
$_SESSION['zone'] = $zone;
$_SESSION['impression'] = $impression;
$_SESSION['fichier'] = $fichier;
}
//Si on appuie sur le bouton "Précèdent"
if(isset($_POST['retour1'])){
// On va sur la formulaire 1
header('Location: #demo1');
die();
}
//Formulaire 3
//Si on appuie sur le bouton "suivant"
if(isset($_POST['suivant2'])){
//On récupère les données dans $_POST
$prenom=$_POST['prenom'];
$nom=$_POST['nom'];
$email=$_POST['email'];
$telephone=$_POST['telephone'];
$client=$_POST['client'];
$precision=$_POST['precision'];
$_SESSION['prenom'] = $prenom;
$_SESSION['nom'] = $nom;
$_SESSION['email'] = $email;
$_SESSION['telephone'] = $telephone;
$_SESSION['client'] = $client;
$_SESSION['precison'] = $precision;
if($prenom == false || $nom == false || $email == false || $telephone == false){
$afficheErreur2 = "<h4>Veuillez compléter les champs obligatoires *</h4>";
$_SESSION['afficheErreur2'] = $afficheErreur2;
}
else{
header('Location: recupDataTest.php');
die();
}
}
//Si on appuie sur le bouton "Précèdent"
if(isset($_POST['retour2'])){
// On va sur la page "index.php"
header('Location: #demo2');
die();
}
?>
<!DOCTYPE htlm>
<html lang="fr">
<head>
<meta charset="utf-8"/>
<title>Formulaire de devis</title>
<style>
#quantite{
width:3.5em;
}
select option[value="bleu"]{
background: blue;
}
select option[value="rouge"]{
background: red;
}
select option[value="vert"]{
background: green;
}
h4{
color: red;
}
a {
text-decoration: none;
padding: 15px;
background-color: white;
border-radius: 5px;
text-transform: uppercase;
color: black;
border: solid black;
}
a:hover{
background-color: black;
color: white;
}
.modal1 {
visibility: hidden;
opacity: 0;
position: absolute;
top: 0; right: 0;
bottom: 0; left: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(77, 77, 77, .7);
transition: all .4s;
}
.modal1:target {
visibility: visible;
opacity: 1;
}
.modal_content1 {
border-radius: 4px;
position: relative;
width: 500px;
max-width: 90%;
background: white;
padding: 1.5em 2em;
}
.modal_close1 {
position: absolute;
top: 10px;
right: 10px;
color: grey;
text-decoration: none;
}
.modal2 {
visibility: hidden;
opacity: 0;
position: absolute;
top: 0; right: 0;
bottom: 0; left: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(77, 77, 77, .7);
transition: all .4s;
}
.modal2:target {
visibility: visible;
opacity: 1;
}
.modal_content2 {
border-radius: 4px;
position: relative;
width: 500px;
max-width: 90%;
background: white;
padding: 1.5em 2em;
}
.modal_close2 {
position: absolute;
top: 10px;
right: 10px;
color: grey;
text-decoration: none;
}
.modal3 {
visibility: hidden;
opacity: 0;
position: absolute;
top: 0; right: 0;
bottom: 0; left: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(77, 77, 77, .7);
transition: all .4s;
}
.modal3:target {
visibility: visible;
opacity: 1;
}
.modal_content3 {
border-radius: 4px;
position: relative;
width: 500px;
max-width: 90%;
background: white;
padding: 1.5em 2em;
}
.modal_close3 {
position: absolute;
top: 10px;
right: 10px;
color: grey;
text-decoration: none;
}
</style>
</head>
<body>
<a href="#demo1">Devis Express</a>
<!--Formulaire 1 -->
<div id="demo1" class="modal1">
<div class="modal_content1">
<h1>Votre demande de devis</h1>
<p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
<h2>Vos besoins (Total de 10 pièces minimum)</h2>
<form action="" method="post">
<p>
<label for="modele">Modèle</label>
<select name="modele" id="modele"/>
<option>T-shirts</option>
<option>Sweat-shirts</option>
<option>Pulls</option>
</select>
<label for="quantite">Quantité</label>
<input type="number" name="quantite" id="quantite" min="10" value="<?php if (isset($_POST['quantite'])){echo $_POST['quantite'];} ?>"/>
<br></br>
</p>
<p>
<label for="taille">Taille</label>
<select name="taille" id="taille"/>
<option>XS</option>
<option>S</option>
<option>M</option>
<option>L</option>
<option>XL</option>
</select>
<label for="couleur">Couleur</label>
<select name="couleur" id="couleur">
<option value="bleu">bleu</option>
<option value="rouge">rouge</option>
<option value="vert">vert</option>
</select>
</p>
<p>
<input type="submit" name="suivant" value="Suivant"/>
</p>
<?php
echo $afficheErreur1;
?>
</form>
<a href="#" class="modal_close1">×</a>
</div>
</div>
<!--Formulaire 2 -->
<div id="demo2" class="modal2">
<div class="modal_content2">
<h1>Votre demande de devis</h1>
<p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
<h2>Infos supplémentaires pour impression</h2>
<form action="" method="post">
<p>
<label for="qualite">Qualité</br></label>
<select name="qualite" id="qualite">
<option>Promotionnel/1er prix</option>
<option>Meilleur rapport qualité / prix</option>
<option>Haut de gamme</option>
</select>
</p>
<p>
<label for="zone">Zone de personnalisation</br></label>
<select name="zone" id="zone">
<option>Coeur</option>
<option>Dos</option>
<option>Manche</option>
</select>
</p>
<p>
<label for="impression">Technique d'impression</br></label>
<select name="impression" id="impression">
<option>DTG</option>
<option>Transfert quadri</option>
<option>Sérigraphie</option>
<option>Flex Flock</option>
<option>Broderie</option>
<option>Sublimation</option>
</select>
</p>
<p>
<label for="fichier">Importez vos fichiers ici</br></label>
<input type="file" id="fichier" name="fichier" accept="image/png, image/jpeg, .ai,
.eps, .pdf, .svg">
</p>
<p>
<input type="submit" name="retour1" value="Précèdent"/>
<input type="submit" name="suivant1" value="Suivant"/>
</p>
</form>
<a href="#" class="modal_close2">×</a>
</div>
</div>
<!--Formulaire 3 -->
<div id="demo3" class="modal3">
<div class="modal_content3">
<h1>Votre demande de devis</h1>
<p>Faite votre demande de devis en seulement quelques clics !</br></br></br></p>
<h2>Informations et précisions</h2>
<form action="" method="post">
<p>
<input type="text" name="prenom" id="prenom" placeholder="prénom*" value ="<?php if (isset($_POST['prenom'])){echo $_POST['prenom'];} ?>"/>
<input type="text" name="nom" id="nom" placeholder="Nom*" value ="<?php if (isset($_POST['nom'])){echo $_POST['nom'];} ?>"/>
<input type="email" name="email" id="email" size="30" placeholder="Adresse mail*" value ="<?php if (isset($_POST['email'])){echo $_POST['email'];} ?>"/>
</p>
<p>
<input type="tel" id="telephone" name="telephone" placeholder="Téléphone*" value ="<?php if (isset($_POST['telephone'])){echo $_POST['telephone'];} ?>"/>
<select name="client" id="client">
<option>Particulier</option>
<option>Entreprise</option>
<option>Autre</option>
</select>
</p>
<p>
<textarea id="precision" name="precision" rows="5" cols="40"
placeholder="Précision"></textarea>
</p>
<p>
<input type="submit" name="retour2" value="Précèdent"/>
<input type="submit" name="suivant2" value="Envoyer"/>
</p>
<?php
echo $afficheErreur2;
?>
</form>
<a href="#" class="modal_close3">×</a>
</div>
</div>
</body>
</html>
A voir également:
- Je ne comprends pas pourquoi ma variable n'est pas définie
- Le fuseau horaire ne peut pas être défini manuellement en raison des restrictions de l'appareil ✓ - Forum iPhone
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Vba range avec variable ✓ - Forum VB / VBA
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret? ✓ - Forum Python
- Correction python ✓ - Forum Python
2 réponses
bonjour,
ton message d'erreur ne t'indique aucun numéro de ligne?
es-tu certain que, avant d'exécuter la ligne 272, le code exécute d'abord une instruction
Sinon, en ligne 272, le contenu de
ton message d'erreur ne t'indique aucun numéro de ligne?
es-tu certain que, avant d'exécuter la ligne 272, le code exécute d'abord une instruction
$afficheErreur1= ...;?
Sinon, en ligne 272, le contenu de
$afficheErreur1est indéfini.
fabi00
Messages postés
82
Statut
Membre
Bah oui, en fait il fallait juste tester si la variable était renseignée ou pas. Merci beaucoup.