Je n'arrive pas à inserrer les données dans la bd

Fermé
varley Messages postés 66 Date d'inscription samedi 19 janvier 2013 Statut Membre Dernière intervention 28 septembre 2018 - 21 avril 2016 à 19:57
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 - 22 avril 2016 à 16:18
bonjour,

je suis entrain de m'exercer avec PDO et j'ai un problème car je n'arrive pas à inserrer les données dans la bd j'ai déclaré une variable global dans la bd pour pour pouvoir se connecter mais toujours rien
quelque peut dire m'aider
je vous remercie en avance
plus bas mon fichier de connexion a la bd
et un fichier qui englobe tout le code

bdd.php
<?php

try{
$connect=new PDO('mysql:host=localhost;dbname=test','root','');
}catch(Exception $e){
die('Erreur:'.$e->getMessage());
}

?>





login.php

<html>
<body>
<form method="post" action="">
<input type="text" name="titre"/>
<input type="text" name="auteur"/>
<input type="text" name="contenu"/>
<input type="submit" name="submit" value="connexion"/>
</form>
</body>
</html>

<?php
include('bdd.php');
$connect=new PDO('mysql:host=localhost;dbname=test','root','');
if(isset($_POST['submit'])){
$titre=htmlentities(trim($_POST['titre']));
$auteur=htmlentities(trim($_POST['auteur']));
$contenu=htmlentities(trim($_POST['contenu']));

if(empty($_POST['titre'])){
echo "entrez le titre";
}
if(empty($_POST['auteur'])){
echo "entrez auteur";
}
if(empty($_POST['contenu'])){
echo "entrez le contenu";
}
else{


function connexion($titre,$auteur,$contenu){
//on prepare la reque puis on exécute
global $connect;
$query="INSERT INTO news(titre,auteur,contenu)
VALUES(:titre,:auteur,:contenu)";
$res=$connect->prepare($query);
$verification=$res->execute(array(":titre" =>$titre,":auteur" =>$auteur,":contenu" =>$contenu));
//fonction qui verifie si le pseudo existe deja
if($verification){
echo "data insere";
}else{
echo "data non inserre";
}

}
}


}


?>

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
22 avril 2016 à 10:09
Bonjour,

Pleins d'erreurs dans ton code......

Par exemple... : Tu as créé un fichier bdd.php .... pourquoi ne l'utilises tu pas dans tes codes au lieu de recopier le code de connexion un peu partout dans ton code ??
Tu as créés une fonction ... mais tu ne l'appelles pas !

Bref :

Voici ton code remanié :
<?php 
//bdd.php 
try{ 
  $connect=new PDO('mysql:host=localhost;dbname=test','root',''); 
}catch(Exception $e){ 
  die('Erreur:'.$e->getMessage()); 
} 
?> 




nb : On place le PHP AVANT le html en général !
<?php
//login.php 

//connexion à la BDD
require_once 'bdd.php';

//------------------------------------------//
// FONCTIONS
//------------------------------------------//
 function createLigne($titre,$auteur,$contenu){ 
   //on prepare la reque puis et les variables
    global $connect; 
    $sql="INSERT INTO news(titre,auteur,contenu) 
                VALUES(:titre,:auteur,:contenu)"; 
					
	$a_datas = array(":titre" =>$titre,":auteur" =>$auteur,":contenu" =>$contenu);	
    
	//Exécution de la requete :
	try{	
      $res=$connect->prepare($sql); 
      $resultat=$res->execute($a_datas); 
	}catch(Exception $e){
	  echo "<br>Erreur : ".$e->getMessage();
	  $resultat = false;
	}
   return $resultat;
 } 
 
 //-------------------------------------------//
 // Traitemetnt du submit
 //-------------------------------------------//
 
 //récupération "propre" des variables
 $titre   = !empty($_POST['titre']) ? htmlentities(trim($_POST['titre'])) : null; 
 $auteur  = !empty($_POST['auteur']) ? htmlentities(trim($_POST['auteur'])) : null; 
 $contenu = !empty($_POST['contenu']) ? htmlentities(trim($_POST['contenu'])) :null; 
 

if(isset($_POST['submit'])){ 
  $msg = array();
 
  //si tous les champs sont remplis :
  if($titre && $auteur && $contenu){
    //appel de la fonction :
    $insertion = createLigne($titre,$auteur,$contenu);
	if(!$insertion){
	  echo "Erreur lors de l'insertion dans la BDD !";
	}
  }else{
	//sinon on vérifie chaque champ :
	if(!$titre){ $msg[] = 'entrez le titre';}
    if(!$auteur){ $msg[] = 'entrez un auteur';}
	if(!$contenu){ $msg[] = 'entrez le contenu';}
  } 
} 

?>
<html> 
 <body> 
	<div id="zone_formulaire">
		<form method="post" action=""> 
			<input type="text" name="titre"/> 
			<input type="text" name="auteur"/> 
			<input type="text" name="contenu"/> 
			<input type="submit" name="submit" value="connexion"/> 
		</form> 
	</div>
	<div id="zone_message">
	<?php
	  //si il y a des messages à afficher :
	  if(!empty($msg)){
		foreach($msg as $M){
		  echo "<br>".$M;
		}
	  }
	?>
	</div>
 </body> 
</html> 




PS: Merci d'utiliser les balises de code lorsque tu postes du code sur le forum. Merci de lire ceci : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
22 avril 2016 à 16:18
Bonjour,

si cela peut t'aider j'ai rédiger un mini manuel pour PDO sur mon blog :

http://ww12.xrecasens.info

Cdlt.
0