8722 sujets

Développement web côté serveur, CMS

Bonjour,

Après de nombreux poste dans différent forum je viens ici en espérant qu'un bonne âme puisse m'aider à comprendre.
J'ai créé un site qui a un back-office qui me permet(normalement) de modifier le contenu de 2 pages de mon site, juste le contenu!! Mais voilà j'ai suivis de nombreux tuto concernant la récupération de données dans une base de données, l'affichage dans un champ textarea, et ce qui pose problème la validation des modifications par une requête UPDATE. Mais voilà tout fonctionne jusqu'à la modification des données :
La récupération sous forme d'un tableau rangé par ID, Nom(de la page pour indication), et Contenu; un bouton pour éditer le contenu dans un formulaire et un autre bouton pour valider les motifs.

Mais voilà quand je valide les motifs il me dit que c'est validé mais pas de changement dans la base.
Je vous met le code des trois pages :
page listing.php - qui fonctionne :
<?php 

//inclusion du fichier de connexion.php pour se connecter à la base de données
include ("connexion.php");


?>
<html>
  <head>
    <title>modification</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
  </head>
<body>

	<h2>listing du contenu des pages Menus et Aujourd'hui </h2>

		<table>
                    <tr>
                      <th>id</th>
                      <th>Nom</th>
                      <th>Contenu</th>
                      <th>modifier</th>
                    </tr>
<?php 
//on prépare la requête : on sélectionne tous les éléments de la table content
$req_content = $mysqli->prepare("SELECT * FROM pages");

//on exécute la requête
$req_content->execute();

//on enregistre le résultat pour pouvoir l'utiliser avec la procédure num_rows
$req_content->store_result();

//on associe les résultats à des variables
$req_content->bind_result($id,$nom,$contenu);

//on compte le nombre de ligne
$total = $req_content->num_rows;

//la procédure fetch va récupérer les valeurs et les associer aux variables de bind_result
while ($req_content->fetch()) {

?>

 					<tr>  
                      <td><?php echo $id;?></td>
                      <td><?php echo $nom;?></td>
                      <td><?php echo $contenu;?></td>
                      <td><a href='modifier.php?id=<?php echo $id;?>' >Modifier</a>
                    </tr>


<?php } ?>

</table>
<?php $mysqli->close(); ?>
</body>
</html>


La page modifier.php qui me récupère le contenu en fonction de l'ID

<?php 

include("connexion.php");

//onrécupère la variable qui contient l'enregistrement a modifier
$id = isset($_GET['id'])?$_GET['id']: "";

//on lit la base de donnéees pour savoir quel est le contenu à modifier
$req_content = $mysqli->prepare("SELECT * FROM pages WHERE id=?");

//on indique le paramètre de la recherche (l'id du contenu à modifier)
$req_content->bind_param("i",$id);
$req_content->execute();
$req_content->bind_result($id,$nom,$contenu);

//on affecte les valeurs aux variables
$req_content->fetch();

//on affiche le formulaire

?>

<form name="form1" id="form1" methode="post" action="modifier2.php">
	<p>Contenu : <br />
	<textarea name="contenu" ><?php echo $contenu; ?></textarea>
	<input name="id" type="hidden" id="id" value="<?php echo $id; ?>">
	<br />
	<input type="submit" name="submit" id="btn" value="Modifier">
	</p>
</form>


et la page qui s'occupe du traitement modifier2.php :

<?php 

	//connexion à la base de données
	include('connexion.php');

	// récupération des variables du formulaire
	$id=isset($_POST['id'])?$_POST['id'] : "";
	$nom=isset($_POST['nom'])?$_POST['nom'] : "";
	$contenu=isset($_POST['contenu'])?$_POST['contenu'] : "";


	// Protection des données
	$nom = $mysqli->real_escape_string(strip_tags($nom));
	$contenu = $mysqli->real_escape_string(strip_tags($contenu));


	//enregistrement dans la base de données
	$req_sauve = $mysqli->query("UPDATE pages SET contenu='" .$contenu. "' WHERE id='".$id."' " )or die(mysql_error());

	//execution de la requete
	$req_sauve->execute();



	if($req_sauve)
	{

		echo "Le contenu a bien été modifier";

	}

else{

		echo "Oups ! Problème !";
}


 ?>

Si une personne pouvais vérifier le code des 3 pages et me faire les corrections se serait formidable!!

Merci
Bonjour,
Quel est le type de ton id dans ta BDD? As-tu essayé ta requête update en retirant les simples quotes:
$mysqli->query("UPDATE pages SET contenu='" .$contenu. "' WHERE id="$id )or die(mysql_error());
salut,

L'id dans ma BDD est de type INT.
Et oui j'ai déjà essayé.
Aprés je suis aussi débutant dans le domaine, je ne comprend pas tout ce que je fais.

merci
re,
en faite j'ai trouvé mon erreur tout marchait correctement, mais dans la dernière page au lieu de mettre method="" j'ai mis méthode="", donc le e était en trop.

Merci tout de même