Impossible de vérifier mes conditions correctement !
Posté : 09 juil. 2016, 16:20
Bonjour !
J'ai un petit problème au niveau d'un script d'envoi de formulaire ...
Rien de bien folichon pour les plus aguerris d'entre vous mais en tant que débutant voila 2 jours que je suis dessus sans trouver de solution ...
Je conçoit que mon code soit moche " et pas commenté " mais le but étant pour l'instant que ce script veuille bien faire ce que je lui demande ...
Explication ...
Tant que tout n'est pas remplis dans le formulaire ... ou qu'une photo n'est pas jointe, un message d'erreur apparaît grâce a un switch et une récupération d'erreur via l'url.
Seulement j'ai l'impression que le script garde en mémoire certaine condition après les avoir effectués,
Je m'explique, lorsque je poste le formulaire vide cela m'affiche mon erreur correspondante, ensuite je rempli le formulaire mais sans ajouter de fichier et la j'ai bien la bonne erreur avec la redirection. Mais ensuite si j'inclut mon fichier sans remplir le formulaire, je suis rediriger vers ma page addarticle comme si ma premier condition
Si une âme charitable voudrais bien m'expliquer mon erreur ... je calle ...
Merci d'avance
Le formulaire HTML:
La partie traitement php
J'ai un petit problème au niveau d'un script d'envoi de formulaire ...
Rien de bien folichon pour les plus aguerris d'entre vous mais en tant que débutant voila 2 jours que je suis dessus sans trouver de solution ...
Je conçoit que mon code soit moche " et pas commenté " mais le but étant pour l'instant que ce script veuille bien faire ce que je lui demande ...
Explication ...
Tant que tout n'est pas remplis dans le formulaire ... ou qu'une photo n'est pas jointe, un message d'erreur apparaît grâce a un switch et une récupération d'erreur via l'url.
Seulement j'ai l'impression que le script garde en mémoire certaine condition après les avoir effectués,
Je m'explique, lorsque je poste le formulaire vide cela m'affiche mon erreur correspondante, ensuite je rempli le formulaire mais sans ajouter de fichier et la j'ai bien la bonne erreur avec la redirection. Mais ensuite si j'inclut mon fichier sans remplir le formulaire, je suis rediriger vers ma page addarticle comme si ma premier condition
if(isset($_POST['pub'])){ n’était pas remplie !!Si une âme charitable voudrais bien m'expliquer mon erreur ... je calle ...
Merci d'avance
Le formulaire HTML:
<?php
session_start();
if (!isset($_SESSION['logged']) || !$_SESSION['logged']) {
header('location:identification.php');
}
?>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>AB Manut'service</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<header>
<h1>Administration</h1>
</header>
<div id='conteneur'>
<a class = 'logout' href="deconnexion.php">Se deconnecter</a>
<div class=contenu>
<p class = 'message'>
<?php
if(isset($_GET['error'])){
switch ($_GET['error']) {
case 0:
echo 'Vous devez joindre une image !';
break;
case 1:
echo 'Vous devez remplir tout les champs !';
break;
case 2:
echo 'Extention invalide, veuillez joindre un fichier au format ".jpg .jpeg .gif .png"';
break;
}
}
?>
</p>
<form class ='admin' name='addproduct' method='POST' action ='addarticle.php' enctype="multipart/form-data">
<h2>Ajouter un article</h2><br />
<select name = 'choix'>
<option value="vente">Vente</option>
<option value="location">Location</option>
</select><br />
<input type='file' name = 'photo'><br />
<input type='text' name = 'produit' placeholder ='Produit'><br />
<textarea cols="40" rows="15" name = 'description' placeholder ='Déscription'></textarea><br />
<input type='text' name = 'ref' placeholder ='Ref'><br />
<input type='text' name = 'prix' placeholder ='Prix'><br />
<input type='submit' name = 'pub' value ='Publier'>
</form>
La partie traitement php
<?php
session_start();
if (isset($_SESSION['logged']) || $_SESSION['logged']) {
if(isset($_POST['pub'])){
if (!empty($_POST['produit']) AND !empty($_POST['choix']) AND !empty($_POST['description']) AND !empty($_POST['prix']) AND !empty($_POST['ref'])){
if($_FILES['photo']['error']==0){
$file_name = $_FILES['photo']['name'];
$file_name_tmp = $_FILES ['photo'] ['tmp_name'];
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
//1. strrchr renvoie l'extension avec le point (« . »).
//2. substr(chaine,1) ignore le premier caractère de chaine.
//3. strtolower met l'extension en minuscules.
$extension_upload = strtolower( substr( strrchr($_FILES['photo']['name'], '.') ,1) );
if( in_array($extension_upload,$extensions_valides) ){
var_dump($file_name_tmp);
/*$produit = $_POST['produit'];
$categorie = $_POST['choix'];
$description = $_POST['description'];
$prix = $_POST['prix'];
$reference = $_POST['ref'];
$Bdd = new PDO('mysql:host=127.0.0.1; dbname=abmanut', 'root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
$addarticle = $Bdd->prepare('INSERT INTO chariots(name, categorie, description, prix, reference, dateadd) VALUES ( :name, :categorie, :description, :prix, :reference, NOW())');
$addarticle->execute(array(
'name' => $produit,
'categorie' => $categorie,
'description' => $description,
'prix' => $prix,
'reference' => $reference
));
header('location:administration.php');*/
}
}else{
header('location:administration.php?error=2');
}
}else{
header('location:administration.php?error=0');
}
}else{
header('location:administration.php?error=1');
}
}else{
header('location:identification.php');
}
?>