[RESOLU] Problème Insertion

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème Insertion

Re: [RESOLU] Problème Insertion

par Elie » 28 déc. 2014, 15:59

Donc tu veux un devis ?

Parce que a la base l'insertion ne marchait pas. Si ça marche maintenant le problème est résolu et on aimerait savoir où était le soucis...

EDiT : Je serais toi, je ferais les vérifications des champs en JavaScript avant validation et pour éviter les insertions avec des données identiques, tu met ton champs en PRIMARY KEY (http://sql.toutestfacile.com/maitriser_ ... sql_1.php5)

Re: Problème Insertion

par michgoarin » 28 déc. 2014, 15:54

Bonjour à tous,
Après de multiple recherches et conseils, j'ai modifié le code de traitement de mon formulaire mais également la base de données et ses caractéristiques :
La base de données :
create table parc_quimper
(
	ID							INT(11) NOT NULL AUTO_INCREMENT,
	CODE						VARCHAR(12)          not null,
	TYPE						VARCHAR(100)          not null,
	POLE						VARCHAR(100)          not null,
	DIRECTION					VARCHAR(100)          not null,
	SERVICE						VARCHAR(255)          not null,
	CONDUCTEUR					VARCHAR(255),
	DOM							VARCHAR(12)          not null,						
	IMMAT_VEHICULE				VARCHAR(20)          not null,
	CARTE_GRISE					VARCHAR(12)          not null,
	LOGO						VARCHAR(12)          not null,
	MARQUE						VARCHAR(255)          not null,
	PREMIERE_CIRCULATION		DATE                  not null,
	FIN_GARANTIE				DATE,
	DERNIER_PASSAGE				DATE,
	KILOMETRAGE					NUMERIC(10),
	ECHEANCES_VISITES			DATE,
	LOCATION					VARCHAR(12)          not null,
	OBSERVATIONS				TEXT,
	INTERLOCUTEUR				VARCHAR(255),
	DERNIER_CT					DATE,
	PROCHAIN_CT					DATE,
	CT							VARCHAR(12),
	DERNIER_ANTIPOL				DATE,
	PROCHAIN_ANTIPOL			DATE,
	ANTIPOL						VARCHAR(12),
	DERNIER_TACHY				DATE,
	PROCHAIN_TACHY				DATE, 
	TACHY						VARCHAR(12),
	DERNIER_LIMITEUR			DATE,
	PROCHAIN_LIMITEUR			DATE,
	LIM							VARCHAR(12),
	TYPE_CONTROLE				VARCHAR(12),
	NATURE_CONTROLE				VARCHAR(12),
	EXEMPTION_CONTROLE			VARCHAR(12),
	IMAGE						VARCHAR(255),
	LIEN						VARCHAR(255),
    primary key (ID)
);
je vous transmets également le fichier de traitement du formulaire :
<?php
session_start();
if (@$_SESSION['auth'] !="gestparq29590-732310")
{
header("Location: essai_index.php");
exit();
}
/* Fonction de vérification des immatriculation*/
function verifImmatriculation($immatriculation, &$immat_vehicule = null){   
$p = '#^([0-9]+|[a-z]+)(?:\s|-)?([a-z]+|[0-9]+)(?:\s|-)?([a-z]+|[0-9]+)$#i';
	if (preg_match('#^(?(?!ss|ww)[a-hj-np-tv-z]{2})(?:\s|-)?[0-9]{3}(?:\s|-)?(?(?!ss)[a-hj-np-tv-z]{2})$#i', $immatriculation)) { 
	$immat_vehicule = strtoupper(preg_replace($p, '$1-$2-$3', $immatriculation));}
	elseif (preg_match('#^[0-9]{1,4}(?:\s|-)?[a-hj-np-tv-z]{2,3}(?:\s|-)?(?:97[1-6]|0[1-9]|[1-8][0-9]|9[1-5]|2[ab])$#i', $immatriculation)){
	$immat_vehicule = strtoupper(preg_replace($p, '$1 $2 $3', $immatriculation));} 
	else{
	$immat_vehicule = "bad";
	 }}
?>
<!doctype html>
<html>
<head>
	<meta charset='utf-8'>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="styles.css">
	<link rel="icon" type="image/png" href="images/design/ico.png" />  
	<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
	<script src="script.js"></script>
	<title>Enregistrement Nouveau Véhicule</title>
</head>
<body>
<?php
include('include/entete.html');
echo ("<div id='contenu'>");

function stripslashes_r($var) // Fonction qui supprime l'effet des magic quotes
{
        if(is_array($var)) // Si la variable passée en argument est un array, on appelle la fonction stripslashes_r dessus
        {
                return array_map('stripslashes_r', $var);
        }
        else // Sinon, un simple stripslashes suffit
        {
                return stripslashes($var);
        }
}
  
if(get_magic_quotes_gpc()) // Si les magic quotes sont activés, on les désactive avec notre super fonction ! ;)
{
   $_POST = stripslashes_r($_POST);
}
/* ********************************************************************** */
echo ("<h1>Traitement du nouveau véhicule</h1>");
// Si l'internaute à bien envoyer le formulaire
if($_POST['submit']='Enregistrer ...')
{
	/*Connection avec la base données MySQL*/
	include("menu//chiens.php");
	/*On définit ID*/
	$id="";
	$nature_controle="";
	// On traite en premier lieu le fichier uploader
	if(!empty($_FILES['fichier_source']['tmp_name']) AND is_uploaded_file($_FILES['fichier_source']['tmp_name']))
	{		
		/*On va vérifier la taille du fichier en ne passant pas par $_FILES['fichier_source']['size'] 
		pour éviter les failles de sécurité*/
		if(filesize($_FILES['fichier_source']['tmp_name'])<100000000){
		//On vérifie maintenant le type de l'image à l'aide de la fonction getimagesize()
		list($largeur, $hauteur, $type, $attr)=getimagesize($_FILES['fichier_source']['tmp_name']);	
			// On créé un tableau contenant les extensions autorisées
			$extOk = array('.jpg','.gif','.png','.JPG','.GIF','.PNG');
			// On lit l'extension du fichier
			$fileExt = substr($_FILES['fichier_source']['name'],-4,4);
			// Si c'est une image on traite le fichier uploadé
			if(in_array($fileExt,$extOk)){
			// On définit notre répertoire cible
			$dstRep = 'images/parc/';
			//On détermine le nom du fichier à uploader
			$marque_upload = strtolower(str_replace(' ', '_', $_POST['marque']));
			$modele_upload = strtolower(str_replace(' ', '_', $_POST['modele']));
			$fichier= $marque_upload.$modele_upload;
			//On vérifie si le dossier de destination est writable
			if(!is_writable($dstRep))
			die('Impossible d\'écrire dans le répertoire cible.');
			//Copie le fichier dans le répertoire de destination
			if(move_uploaded_file($_FILES['fichier_source']['tmp_name'], 'images/parc/'.$fichier.$fileExt)){
			//Le fichier a été uploadé correctement
			// On définit le lien à insérer dans la base
			$lien=$dstRep.$fichier.$fileExt;
			// On détermine qu'il y a bien une image à uploader
			$size_image=1;
			}
			else{//Erreur
			$mauvaisFormat[]='Erreur lors de la copie du fichier';
			}
			}
			else
			{
			$mauvaisFormat[]= "Le fichier n'est pas une image";
			}
		}
		else
		{
		$mauvaisFormat[]= 'Le fichier est trop gros, veuillez compresser le fichier !!!';
		}
	}
	else
	{
	$size_image=0;
	$lien="images/parc/no_image.png";
	$fichier="no_image";
	}
	//Maintenant, on traite toutes les autres informations
	// On définit les différents ReGex
	$form_code= "/^(V{1})([1-9]{1})([0-9]{1})([0-9]|[A-Z]{1})/";
	$form_nom= "/^([a-zA-Z'àâéèêôùûïçÀÂÉÈÔÙÛÏÇ[:blank:]-]{1,30})$/";	
	$form_texterea= '#^[a-zÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿA-Z0-9\.\#<>,;\-&\r\n ]{1,1000}$#i';
	$form_date= "/^[0-9]{4}[\/\\- ][0-9]{2}[\/\\- ][0-9]{2}$/";
	$form_on="/^[OUI]|^[NON]/";
	$form_carte="/^[VQ]|^[QC]|^[Inconnue]/";
	$form_logo="/^[VQ]|^[QC]|^[NON]/";
	$form_km="/^\d+$/";
	
	/* Le dernier passage correspond à la date du jour*/
	$dernier_passage=date('Y-m-d');
	/* Tester le champ code*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['code'])){
		/*Test du format dela date*/
		if(!preg_match($form_code, $_POST['code'])){
		$mauvaisFormat[] ="Code Véhicule";
		}
		else{$code=$_POST['code'];}
	}
	else{$tabloVide[] ="Code véhicule !!!";}/* Si le champ est vide*/

	/* Tester le champ type*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['type'])){
		/*Test du format dela date*/
		if(!preg_match($form_nom, $_POST['type'])){
		$mauvaisFormat[] ="Type de véhicule";
		}
		else{$type=$_POST['type'];}
	}
	else{$tabloVide[] ="Type de véhicule !!!";}/* Si le champ est vide*/
	
	/*Tester l'immatriculation*/
	if(!empty($_POST['immat'])){
		/*Test du format du champ immatriculation*/
		if($type=="SCOOTER" or $type=="VELO" or $type=="TONDEUSE" or $type=="DIVERS"){
		$immat_vehicule ="";
		}
		else{verifImmatriculation($_POST['immat'], $immat_vehicule);}
	}
	else{$immat_vehicule ="";}/* Si le champ est vide*/	
	
	/* Tester le champ marque*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['marque'])){
		/*Test du format dela date*/
		if(!preg_match($form_nom, $_POST['marque'])){
		$mauvaisFormat[] ="Marque du véhicule";
		}
		else{$marque=$_POST['marque'];}
	}
	else{$tabloVide[] ="Marque du véhicule !!!";}/* Si le champ est vide*/
	
	/* Tester le champ modèle*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['modele'])){
		/*Test du format dela date*/
		if(!preg_match($form_texterea, $_POST['modele'])){
		$mauvaisFormat[] ="Modèle du véhicule";
		}
		else{$modele=$_POST['modele'];}
	}
	else{$modele="";}/* Si le champ est vide*/
	
	/*Concatener la marque et le modèle du véhicule*/
	$marque= $marque." ".$modele;

	/* Si le champ est bien rempli*/
	if(!empty($_POST['kilometrage'])){
		/*Test du format du kilometrage*/
		if(!preg_match($form_km, $_POST['kilometrage'])){
		$mauvaisFormat[] ="Kilométrage !!!";
		}
		else{$kilometrage=$_POST['kilometrage'];}
	}
	else{$tabloVide[] ="Kilometrage !!!";}/* Si le champ est vide*/
	
	/* Tester le champ pôle*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['pole'])){
		/*Test du format d'un nom*/
		if(!preg_match($form_nom, $_POST['pole'])){
		$mauvaisFormat[] ="Pôle !!!";
		}
		else{$pole=$_POST['pole'];}
	}
	else{$tabloVide[] ="Pôle !!!";}/* Si le champ est vide*/
	
	/* Tester le champ direction*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['direction'])){
		/*Test du format de direction*/
		if(!preg_match($form_nom, $_POST['direction'])){
		$mauvaisFormat[] ="Direction !!!";
		}
		else{$direction=$_POST['direction'];}
	}
	else{$tabloVide[] ="Direction !!!";}/* Si le champ est vide*/

	/* Tester le champ service*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['service'])){
		/*Test du format dela date*/
		if(!preg_match($form_nom, $_POST['service'])){
		$mauvaisFormat[] ="Le service !!!";
		}
		else{$service=$_POST['service'];}
	}
	else{$tabloVide[] ="Le service !!!";}/* Si le champ est vide*/
	
	/* Tester le champ premiéré circulation*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['premiere_circulation'])){
		/* Remise en forme de la date*/
		$premiere_date= date("Y-m-d",strtotime($_POST["premiere_circulation"]));
		/*Test du format dela date*/
		if(!preg_match($form_date, $premiere_date)){
		$mauvaisFormat[] ="Première mise en circulation: ".$premiere_date;
		}
		else{$premiere_circulation=$premiere_date;}
	}
	else{$tabloVide[] ="Première mise en circulation : ".$premiere_date;}/* Si le champ est vide*/

	/* Tester le champ garantie*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['garantie'])){
	/*Test du format dela date*/
	/* Remise en forme de la date*/
	$garantie_date= date("Y-m-d",strtotime($_POST['garantie']));
		if(!preg_match($form_date, $garantie_date)){
		$mauvaisFormat[] ="Fin de Garantie";
		}
		else{$garantie=$garantie_date;}
	}
	else{$garantie="";}/* Si le champ est vide*/
	
	/* Tester le champ remisage*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['remisage'])){
		/*Test du format du champ remisage*/
		if(!preg_match($form_on, $_POST['remisage'])){
		$mauvaisFormat[] ="Remisage";
		}
		else{$remisage=$_POST['remisage'];}
	}
	else{$tabloVide[] ="Remisage";}/* Si le champ est vide*/

	/* Tester le champ location*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['location'])){
		/*Test du format du champ location*/
		if(!preg_match($form_on, $_POST['location'])){
		$mauvaisFormat[] ="Location !!!";
		}
		else{$location=$_POST['location'];}
	}
	else{$tabloVide[] ="Location";}/* Si le champ est vide*/
	
	/* Tester le champ carte*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['carte'])){
		/*Test du format du champ carte*/
		if(!preg_match($form_carte, $_POST['carte'])){
		$mauvaisFormat[] ="Carte Grise : ".$_POST['carte'];
		}
		else{$carte=$_POST['carte'];}
	}
	else{$tabloVide[] ="Carte Grise";}/* Si le champ est vide*/
	
	/* Tester le champ logo*/
	/* Si le champ est bien rempli*/
	if(!empty($_POST['logo'])){
		/*Test du format du champ carte*/
		if(!preg_match($form_logo, $_POST['logo'])){
		$mauvaisFormat[] ="Logo !!!";
		}
		else{$logo=$_POST['logo'];}
	}
	else{$tabloVide[] ="Logo !!!";}/* Si le champ est vide*/	

	if(!empty($_POST['conducteur'])){
		/*Test du format du champ carte*/
		if(!preg_match($form_nom, $_POST['conducteur'])){
		$mauvaisFormat[] ="Conducteur !!!";
		}
		else{$conducteur=strtoupper($_POST['conducteur']);}
	}
	else{$conducteur="";}
	
	if(!empty($_POST['interlocuteur'])){
		/*Test du format du champ carte*/
		if(!preg_match($form_nom, $_POST['interlocuteur'])){
		$mauvaisFormat[] ="Interlocuteur !!!";
		}
		else{$interlocuteur=strtoupper($_POST['interlocuteur']);}
	}
	else{$interlocuteur="";}
	
	/*Vérification du champs "Textarea"*/
	if(!empty($_POST['observation'])){
		/* Si le champ n'est pas vide on le teste*/
		/*Test du format du texerea*/
		if(!preg_match($form_texterea, $_POST['observation'])){$mauvaisFormat[] ="Observation";}else{$observation=$_POST['observation'];}
	}
	else{$observation="";}
	
	/*Insertion des controles technique associés au véhicule*/
	/* Tester le checkbox*/
	if(!empty($_POST['ct'])){
	$controle_tech="X";
	$date_depart_ct=date("Y-m-d",strtotime($_POST['premiere_circulation']));
	//durée à rajouter : 4 ans;
	$duree = 4;
	//la première étape est de transformer cette date en timestamp
	$departCTTimestamp = strtotime($date_depart_ct);
	//on calcule la date de fin
	$date_control= date("Y-m-d",strtotime("+".$duree."year",$departCTTimestamp ));
	$controle_type="CT";
	$nature_controle="CNT";
	} 
	else {
	$controle_tech="";
	$date_depart_ct=date('d/m/Y');
	$date_control="";
	}
	
	if(!empty($_POST['antipol'])){
	$antipol="X";
	$date_depart_antipol=$date_depart_ct;
	//durée à rajouter : 4 ans;
	$duree = 1;
	//la première étape est de transformer cette date en timestamp
	$departAntipolTimestamp = strtotime($date_depart_antipol);
	//on calcule la date de fin
	$date_antipol= date("Y-m-d",strtotime("+".$duree."year",$departAntipolTimestamp ));
	$controle_type="CT";
	$nature_controle="CNT";	
	} 
	else {
	$antipol="";
	$date_depart_antipol="";
	$date_antipol="";
	}

	if(!empty($_POST['tachy'])){
	$controle_tachy="X";
	$date_depart_tachy=$_POST['premiere_circulation'];
	//durée à rajouter : 2 ans;
	$duree = 2;
	//la première étape est de transformer cette date en timestamp
	$departTachyTimestamp = strtotime($date_depart_tachy);
	//on calcule la date de fin
	$date_tachy= date("Y-m-d",strtotime("+".$duree."year",$departTachyTimestamp ));
	$controle_type="CT";
	$nature_controle="CNT";		
	} 	
	else {
	$controle_tachy="";
	$date_depart_tachy="";
	$date_tachy="";
	}
	
	if(!empty($_POST['lim'])){
	$controle_lim="X";
	$date_depart_lim=$_POST['premiere_circulation'];
	//durée à rajouter : 1 an;
	$duree = 1;
	//la première étape est de transformer cette date en timestamp
	$departLimTimestamp = strtotime($date_depart_lim);
	//on calcule la date de fin
	$date_lim= date("Y-m-d",strtotime("+".$duree."year",$departLimTimestamp ));
	$controle_type="CT";
	$nature_controle="CNT";	
	} 
	else {
	$controle_lim="";
	$date_depart_lim="";
	$date_lim="";
	}
	
	if(!empty($_POST['hc']) or ((empty($_POST['lim'])) AND (empty($_POST['tachy'])) AND (empty($_POST['antipol'])) AND (empty($_POST['ct'])))){
	$controle_type="HC";} else {$controle_type="CT";}
	/* Déterminer les exemptions de contrôle*/
	$exemption_controle="";
	/*Déterminer la date d'échéance la plus proche*/
	/*On redetermine la date du jour*/
	$date_jour=date('d/m/Y');
	$echeance=min($date_control,$date_lim,$date_tachy,$date_antipol);
	/*Par la fonction @sizeof on calcul, le nombre d'occurence dans $mauvaisFormat[] et $tabloVide[] */	
	if (@sizeof($tabloVide) > 0 or @sizeof($mauvaisFormat) > 0)
	{
		/* Informations manquantes ou incorrectes
		Incription de la liste des données manquantes en haut d'une nouvelle page*/
		/*On traite d'abord le $tabloVide[] on extrait les champs vide par un foreach*/	
		if(@sizeof($tabloVide) > 0)
		{			
		echo "<b>Un champ au moins est vide. Vous devez remplir :</b><br>";
			
			
			foreach($tabloVide as $champsvides)
			{
			echo "$champsvides<br>";
			}
		include("formulaire/formulaire_nouveau_vehicule.php");
		exit();
		}
		
		/* Incription de la liste des données incorrectes en haut d'une nouvelle page*/
		/*On traite ensuite le $mauvaisFormat[] on extrait les champs invalides par un foreach*/
		
		if(@sizeof($mauvaisFormat) > 0)
		{
		/* Informations incorrectes */
		echo "<b>Un champ au moins contient une donnée incorrecte. Corrigez :</b><br>";
			
		/* Liste des champs incorrects */
			foreach($mauvaisFormat as $champsMauvais)
			{
			echo "$champsMauvais<br>";
			}
		include("formulaire/formulaire_nouveau_vehicule.php");
		exit();	
		}
	/* Rappel du formulaire et affichage des erreurs de saisie */	
	}
	/* ************************************************************************************************************************
						Les données reçues sont correctes
					Traitement du fichier en pièce jointe
	************************************************************************************************************************* */
	else
	{
/* Insertion des données dans la base */
	$req = $bdd->prepare('INSERT INTO `parc_quimper` (`CODE`,`TYPE`,`POLE`,`DIRECTION`,`SERVICE`,`CONDUCTEUR`,`DOM`,`IMMAT_VEHICULE`,`CARTE_GRISE`,`LOGO`,`MARQUE`,`PREMIERE_CIRCULATION`,`FIN_GARANTIE`,`DERNIER_PASSAGE`,`KILOMETRAGE`,`ECHEANCES_VISITES`,`LOCATION`,`OBSERVATIONS`,`INTERLOCUTEUR`,`DERNIER_CT`,`PROCHAIN_CT`,`CT`,`DERNIER_ANTIPOL`,`PROCHAIN_ANTIPOL`,`ANTIPOL`,`DERNIER_TACHY`,`PROCHAIN_TACHY`,`TACHY`,`DERNIER_LIMITEUR`,`PROCHAIN_LIMITEUR`,`LIM`,`TYPE_CONTROLE`,`NATURE_CONTROLE`,`EXEMPTION_CONTROLE`,`IMAGE`,`LIEN`) 
							VALUES(:code, :type, :pole, :direction, :service, :conducteur, :dom, :immat, :carte, :logo, :marque, :premiere_circulation, :garantie, :dernier_passage, :kilometrage, :echeances_visites, :location, :observations, :interlocuteur, :dernier_ct, :prochain_ct, :ct, :dernier_antipol, :prochain_antipol, :antipol, :dernier_tachy, :prochain_tachy, :tachy, :dernier_lim, :prochain_lim, :lim, :type_controle, :nature_controle, :exempt_controle, :fichier, :lien)');
	$req->execute(array(
	'code'=>$code,
	'type'=>$type,
	'pole'=>$pole,
	'direction'=>$direction,
	'service'=>$service,
	'conducteur'=>$conducteur,
	'dom'=>$remisage,
	'immat'=>$immat_vehicule,
	'carte'=>$carte,
	'logo'=>$logo,
	'marque'=>$marque,
	'premiere_circulation'=>$premiere_circulation,
	'garantie'=>$garantie,
	'dernier_passage'=>$dernier_passage,
	'kilometrage'=>$kilometrage,
	'echeances_visites'=>$echeance,
	'location'=>$location,
	'observations'=>$observation,
	'interlocuteur'=>$interlocuteur,
	'dernier_ct'=>$date_depart_ct,
	'prochain_ct'=>$date_control,
	'ct'=>$controle_tech,
	'dernier_antipol'=>$date_depart_antipol,
	'prochain_antipol'=>$date_antipol,
	'antipol'=>$antipol,
	'dernier_tachy'=>$date_depart_lim,
	'prochain_tachy'=>$date_tachy,
	'tachy'=>$controle_tachy,
	'dernier_lim'=>$date_depart_lim,
	'prochain_lim'=>$date_lim,
	'lim'=>$controle_lim,
	'type_controle'=>$controle_type,
	'nature_controle'=>	$nature_controle,
	'exempt_controle'=>$exemption_controle,
	'fichier' => $fichier,
	'lien' => $lien));
	/*Messages d'erreur de validation*/
	$bdd ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	/*Message de prise en compte de l'enregistrement*/
	echo "<p>Votre véhicule a bien été enregistré.</p>";
	echo "<p>Merci de votre colaboration.</p>";
	echo "<img  src='images/design/logo_administrateur.png' alt='Arobase' title='Nouveau Vehicule'/>";
	echo "<p>Bonne navigation...</p>";
	}
}
else
{
echo ("Une erreur s'est produite, l'accès à cette page est impossible...<br>");
echo ("veuillez contacter votre administrateur !!!");}
/*Affichage de la plage de recherche et du pied de page*/
echo ("</div>");
include('include/sidebar.html');
include('include/pied_de_page.html');
?>
<html>
Je vous remercie pour votre aide.
Je dois maintenant faire en sorte qu'on ne puisse pas enregistrer deux véhicules sous le même code ville mais aussi gérer les rechargement du formulaire en cas de mauvais format, ce qui à mon avis va poser plus de problèmes.
Merci encore.

Re: Problème Insertion

par sirakawa » 28 déc. 2014, 09:53

Bjr,
Moi c'est marginal:
Si on pouvait faire afficher la requete ce serait facile à tester
Actuellement on déconseille l'emploi de `nom_de_colonne` au profit de nom_de_colonne

Re: Problème Insertion

par Elie » 28 déc. 2014, 02:08

Hello,

Déjà, j'afficherai mes erreurs PDO grace à
$bdd ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
http://php.net/manual/fr/pdo.error-handling.php

Parce que le catch j'ai jamais compris l'utilité.

Dis moi si une erreur s'affiche.

Problème Insertion

par michgoarin » 27 déc. 2014, 23:34

Bonjour à tous,
je suis sur un projet de programme de gestion de parc automobiles. J'ai réalisé un formulaire qui me permet d'enregistrer les caractéristiques de chaque véhicule dans une table appelée "bdd_vehicule" dans la base de données "gestparq". L'ensemble des données sont identifiées sous des "$"+variable issues des $_POST[]. Voici le code qui me permet d'insérer les valeurs :
<?php
/*Connexion à la base de données*/
$user="root";
$host="localhost";
$password="";
$database= "gestparq";		
try
{
	$bdd = new PDO('mysql:host='.$host.';dbname='.$database, $user, $password);
}
catch(Exception $e)
{
		die('Erreur : '.$e->getMessage());
}
/*Définition des variables*/
$id="";
$code="V22J";
$type="BERLINE";
$pole="DAG";
$direction="DAG";
$service="DAG";
$conducteur="MICHEL GOARIN";
$remisage="NON";
$immat_vehicule="MP-254-MG";
$carte="VQ";
$logo="NON";
$marque="PEUGEOT 208 HDI 5 PORTES";
$premiere_circulation="21/10/2014";
$garantie="21/10/2016";
$dernier_passage="21/10/2014";
$kilometrage=25;
$echeance="21/10/2015";
$location="NON";
$observation="";
$interlocuteur="MICHEL GOARIN";
$date_depart_ct="21/10/2014";
$date_control="21/10/2014";
$controle_tech="X";
$date_depart_antipol="";
$date_antipol="";
$antipol="";
$date_depart_lim="";
$date_tachy="";
$controle_tachy="";
$date_depart_lim="";
$date_lim="";
$controle_lim="";
$controle_type="";
$nature_controle="CNT";
$exemption_controle="";
$fichier="peugeot_208_hdi_5_portes.jpg";
$lien="images/parc/peugeot_208_hdi_5_portes.jpg";
/* Insertion des données dans la base */
	$req = $bdd->prepare('INSERT INTO `bdd_vehicule`(`ID`,`CODE`,`TYPE`,`POLE`,`DIRECTION`,`SERVICE`,`CONDUCTEUR`,`DOM`,`IMMAT_VEHICULE`,`CARTE_GRISE`,`LOGO`,`MARQUE`,`PREMIERE_CIRCULATION`,`FIN_GARANTIE`,`DERNIER_PASSAGE`,`KILOMETRAGE`,`ECHEANCES_VISITES`,`LOCATION`,`OBSERVATIONS`,`INTERLOCUTEUR`,`DERNIER_CT`,`PROCHAIN_CT`,`CT`,`DERNIER_ANTIPOL`,`PROCHAIN_ANTIPOL`,`ANTIPOL`,`DERNIER_TACHY`,`PROCHAIN_TACHY`,`TACHY`,`DERNIER_LIMITEUR`,`PROCHAIN_LIMITEUR`,`LIM`,`TYPE_CONTROLE`,`NATURE_CONTROLE`,`EXEMPTION_CONTROLE`,`IMAGE`,`LIEN`) 
							VALUES(:id, :code, :type, :pole, :direction, :service, :conducteur, :dom, :immat, :carte, :logo, :marque, :premiere_circulation, :garantie, :dernier_passage, :kilometrage, :echeances_visites, :location, :observations, :interlocuteur, :dernier_ct, :prochain_ct, :ct, :dernier_antipol, :prochain_antipol, :antipol, :dernier_tachy, :prochain_tachy, :tachy, :dernier_lim, :prochain_lim, :lim, :type_controle, :nature_controle, :exempt_controle, :fichier, :lien)');
	$req->execute(array(
	'id'=>$id,
	'code'=>$code,
	'type'=>$type,
	'pole'=>$pole,
	'direction'=>$direction,
	'service'=>$service,
	'conducteur'=>$conducteur,
	'dom'=>$remisage,
	'immat'=>$immat_vehicule,
	'carte'=>$carte,
	'logo'=>$logo,
	'marque'=>$marque,
	'premiere_circulation'=>$premiere_circulation,
	'garantie'=>$garantie,
	'dernier_passage'=>$dernier_passage,
	'kilometrage'=>$kilometrage,
	'echeances_visites'=>$echeance,
	'location'=>$location,
	'observations'=>$observation,
	'interlocuteur'=>$interlocuteur,
	'dernier_ct'=>$date_control,
	'prochain_ct'=>$date_control,
	'ct'=>$controle_tech,
	'dernier_antipol'=>$date_depart_antipol,
	'prochain_antipol'=>$date_antipol,
	'antipol'=>$antipol,
	'dernier_tachy'=>$date_depart_lim,
	'prochain_tachy'=>$date_tachy,
	'tachy'=>$controle_tachy,
	'dernier_lim'=>$date_depart_lim,
	'prochain_lim'=>$date_lim,
	'lim'=>$controle_lim,
	'type_controle'=>$controle_type,
	'nature_controle'=>"",
	'exempt_controle'=>$exemption_controle,
	'fichier' => $fichier,
	'lien' => $lien));
/*Fin d'insertion des valeurs*/	
	echo "C'est ok !!!";
?>
Au secours, je n'ai aucune information d'erreur mais rien n'est inséré dans la BDD.
Je travaille dans l'urgence. Je dois rendre un premier travail en fin de semaine prochaine.
Dans l'attente d'une réponse de votre part, d'avance merci.