[RESOLU] Problème formulaire insertion sql

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 formulaire insertion sql

Re: Problème formulaire insertion sql

par banban55 » 01 janv. 2020, 10:22

Bonjour et merci pour le temps que ta réponse. Mon formulaire fonctionne parfaitement ! Merci à toi !

Re: Problème formulaire insertion sql

par j_saisrien » 01 janv. 2020, 04:45

Salut

J'ai fait quelques tests.
D'abord avec if(isset($_POST['ajout_article'])) ça ne passe pas.
Il faut mettre $_POST['submit'];

Deuxièmement tu as mélangé le pluriel et le singulier pour date_articles dans ta requête INSERT. Ta variable est au singulier et la colonne de ta table est au pluriel.
Corrige ça et ça devrait passer car ici ça passe.

En passant, dans ton formulaire, <input type="textarea" est peut-être excessif mais ça fonctionne quand même.

a+ et
Bonne année à tout le monde

Problème formulaire insertion sql

par banban55 » 31 déc. 2019, 20:54

Bonsoir,

Je suis actuellement en train de mettre en place un système d'article à mon site internet. J'ai un BackOffice pour pouvoir créer des articles, mais je rencontre un problème avec le formulaire de création et surtout de traitement pour ajouter à ma base de données.

Le problème:

Aucune création n'a lieu dans ma base de données
aucun message d'erreur

Avez-vous une idée du problème ?

j'ai donc une page avec le formulaire ( ad_crea_article.php )
<div id="contenu">
			<div id="creation_article">
				<p class="titre_aj_page">Ajout d'un article</p>
				<form id="ajout_article" action="ad_confirm_article.php" method="POST" name="ajout_article"/>
					<input class="champ_crea_article" type="text" name="titre" id="titre" placeholder="Titre de la page" />
					<input class="champ_crea_article" type="text" name="sous_titre" id="sous_titre" placeholder="Description courte de l'article " />
					<input type="textarea" id="textarea" name="textarea"></textarea>
					<input type="submit" id="submit" name="submit" value="Ajouter"/>
				</form>
			</div>
		</div>
la page de traitement ( ad_confirm_article.php)
<?php
session_start ();

include 'include/connection.php';


if($_SESSION['niveau_membre'] == 1) 
	{
	
	$getid = intval($_SESSION['id']);
	$requser = $bdd->prepare('SELECT * FROM membres WHERE id_membre = ?');
	$requser->execute(array($getid));
	$userinfo = $requser->fetch();
	
	if(isset($_POST["ajout_article"]))
		{
		
		$titre = $_POST['titre'];	
		$sous_titre_article=$_POST['sous_titre'];
		$contenu_article = "test";
		$date_article = time();
		$auteur_article = $_SESSION['id'];
		$etat_article = 0; // article non visible
	
		// Requête mysql pour insérer des données
		$sql = "INSERT INTO `articles`(`titre_articles`, `soustitre_articles`, `contenu_articles`, `date_articles`, `auteur_articles`, `etat_articles`) VALUES (:titre_articles,:soustitre_articles, :contenu_articles, :date_article, :auteur_articles, :etat_articles)";
		$res = $bdd->prepare($sql);
		$exec = $res->execute(array(":titre_articles"=>$titre, ":soustitre_articles"=>$sous_titre_article, "contenu_articles"=>$contenu_article, "date_article"=>$date_articles, "auteur_articles"=>$date_article, "etat_articles"=>$etat_article ));				
		}
		
	}
	else 
		{
		header("location: index.php");
		}


?>

<!DOCTYPE html>
<html lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>Accueil - administration</title>

	<link rel="stylesheet" href="css/style_page.css">
		
	</head>
<body>
	<div id="page">
		<div id="header">
			<div id="deconexion"><a href="deconnexion.php" class="deco">Me deconnecter</a></div>
			<div id="logo"><img src="images/logonoir.png" width="400px" alt="logo"></div>
			<div id="contenu_article">
				titre : <?php echo $_POST['titre'] ; ?>
			</div>
		</div>
		<div id="contenu">
					</div>
	</div>
</body>
</html>
le fichier de connexion ( connection.php)
<?php
	try
	{
	$bdd = new PDO('mysql:host=localhost;dbname=basedd','root','root', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_EMULATE_PREPARES =>  false]);   
	
	 }
	catch (Exception $e)
	{
		die('Erreur : ' . $e->getMessage());
	}
?>
Image