Insertion en base d'un texte
Bonjour à toutes et à tous,
Objectif :
Insertion dans la table publications d'un texte saisi par un producteur dans son espace perso.
Dans le code ci-après je tente d'insérer un texte dans la table publications mais aucun message ne s'affiche et l'injection SQL ne se fait pas.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
<?php
//session_start();
require_once 'includes/inc_connexion.php';
include 'includes/inc_identification.php';
$conn=opendb_conn(); // on se connecte à la Base de données
/** Script effectuant le traitement de l'insertion dans la table publication du texte publié depuis le formulaire */
if(isset($_POST) && !empty($_POST['contenu']) && !empty($_SESSION['id'])) {
$id = $_SESSION['id'];
$contenu = $_POST['contenu'];
// requête pour l'insertion du texte dans la table des publications
$req = "insert into publications values(null,:texte,CURDATE(),:idproducteur)";
// on prépare le traitement de la requête
$stmt = $conn->prepare($req);
if($_POST['submit']) {
// Pour sécuriser l'insertion en base d'un nouveau texte à publier nous utilisons le mode transactionnel
// avec un bloc try ... catch()
try {
$conn->beginTransaction();
// on associe les marqueurs nommés avec les variables crées plus haut
$stmt->bindParam(':texte', $contenu, PDO::PARAM_STR);
$stmt->bindParam(':idproducteur', $id, PDO::PARAM_INT); // id du producteur effectuant la publication
// exécution de la requête
$stmt->execute();
// on commit
$conn->commit();
// on affiche un message
print '<div style="color:#132959">Publication du texte réussie! ... </div>';
echo "ok";
}catch(PDOException $e) {
// on rollback
$conn->rollback();
// on affiche un message d'erreur
print "Erreur lors de l'insertion en base !: " . $e->getMessage() . "</br>";
echo 'erreur';
} // try ... catch()
} //if($_POST['submit'])
} //if
print_r($_POST);
?> |
Ce code est appelé par le fichier php suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
<?php
//session_start(); A session had already been started - ignoring session_start() in ..../inc_identification.php
include 'includes/inc_identification.php';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/eltStyle.css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script><!-- Invocation de la bibliothèque jquery.js -->
<script src="js/jquery-ui-1.8.23.js"></script>
<script src="js/afficherZoneTexte.js"></script><!-- Code jQuery rattaché à la page -->
<title>Le cercle des vignobles - Carnets du vignoble</title>
</head>
<body>
<div id="bloc_page">
<header>
<?php
include("includes/inc_menus.php");
if(isset($_SESSION['login'])) { //si la session est en cours ... j'affiche le login de connexion
echo '<div class="site_conn">connecté'.' ['.$_SESSION['login'].']'.'</div>';
}
?>
<form action="disconn_producteur.php" method="post">
<input type="submit" class="disconnect" value="Se déconnecter" />
</form>
</header><!-- header -->
<?php include("includes/inc_publication.php"); ?>
<!-- div pour l'ajout du résultat en ajax-->
<div id="resultatAjax"></div>
<!-- div pour l'ajout du message d'erreur -->
<div class="error" style="color:#FF000"></div>
<form name="form2" id="formText" method="post" action="ajout_publierTexte.php">
<textarea name="contenu" rows="25" cols="130" maxlength="5000" >
</textarea>
<!-- div pour l'ajout du loader d'attente ajax -->
<div id="loader" style="display:none"><img src="img/loader.gif" alt="loader" /></div>
<p>
<input type="submit" class="publier" name="submit" id='submit' value="Publier" />
</p>
</form><!-- formText -->
<form name="form3" id="formMedia" method="post" action="#">
<button id="vins" class="zone_ajout" >« Intégrer mes vins »</button>
<button id="photos" class="zone_ajout" >« Ajouter des photos »</button>
</form><!-- formMedia -->
</div><!-- bloc_page -->
</body>
</html> |
Merci d'avance,
Transact.