Inserer des données dans une table
Posté : 11 juin 2013, 13:27
Bonjour,
J'ai créer un espace permettant de gérer un espace qui permet de créer des news sur un blog, j'ai suivis un tuto qui permet donc d'ajouter, de modifier, ou de supprimer des billets.
Le problème c'est que je peux modifier, ou supprimer les billets déjà existants qui on été rajouter directement dans la base de données mais je n'arrive pas a ajouter un billet lorsque j'envoi il ne rentre pas dans ma base de données. je ne trouve pas l'erreur si quelqu’un pouvait m'aider.
Lors que je rédige un billet avec rediger_news.php et que j'envoi il n'envoi rien, mon INSERT est dans liste_news.php
liste_news.php
J'ai créer un espace permettant de gérer un espace qui permet de créer des news sur un blog, j'ai suivis un tuto qui permet donc d'ajouter, de modifier, ou de supprimer des billets.
Le problème c'est que je peux modifier, ou supprimer les billets déjà existants qui on été rajouter directement dans la base de données mais je n'arrive pas a ajouter un billet lorsque j'envoi il ne rentre pas dans ma base de données. je ne trouve pas l'erreur si quelqu’un pouvait m'aider.
Lors que je rédige un billet avec rediger_news.php et que j'envoi il n'envoi rien, mon INSERT est dans liste_news.php
liste_news.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Liste des news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
h2, th, td
{
text-align:center;
}
table
{
border-collapse:collapse;
border:2px solid black;
margin:auto;
}
th, td
{
border:1px solid black;
}
</style>
</head>
<body>
<h2><a href="rediger_news.php">Ajouter une news</a></h2>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("blog");
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
// On vérifie si c'est une modification de news ou non.
if ($_POST['id_news'] == 0)
{
// Ce n'est pas une modification, on crée une nouvelle entrée dans la table.
mysql_query('INSERT INTO billets VALUES(titre, contenu, timestamp) VALUES(:titre, :contenu, :timestamp, NOW())');
}
else
{
// On protège la variable "id_news" pour éviter une faille SQL.
$_POST['id_news'] = addslashes($_POST['id_news']);
// C'est une modification, on met juste à jour le titre et le contenu.
mysql_query("UPDATE billets SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
if (isset($_GET['supprimer_news'])) // Si l'on demande de supprimer une news.
{
// Alors on supprime la news correspondante.
// On protège la variable « id_news » pour éviter une faille SQL.
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM billets WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$retour = mysql_query('SELECT * FROM billets ORDER BY id DESC');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news.
{
?>
<tr>
<td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($donnees['titre']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news.
?>
</table>
</body>
</html>
rediger_news.php
<?php
// on teste si le formulaire a été validé
if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
// on se connecte à notre base
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db('news', $base);
// on teste la déclaration de nos variables
if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
$erreur = 'Les variables nécessaires au script ne sont pas définies.';
}
else {
if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
$erreur = 'Au moins un des champs est vide.';
}
// si tout est bon, on peut commencer l'insertion dans la base
else {
// lancement de la requête d'insertion
$sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['titre']).'", "'.mysql_escape_string($_POST['contenu']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base de données
mysql_close();
// on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
header('Location: ../index.php');
// on termine le script courant
exit();
}
}
}
?>
<html>
<head>
<title>Insertion d'une nouvelle news</title>
</head>
<body>
<!-- on fait pointer le formulaire vers la page traitant les données -->
<form action="rediger_news.php" method="post">
<table>
<tr><td>
<span class="gras">Auteur :</span>
</td><td>
<input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
</td></tr><tr><td>
<span class="gras">Titre :</span>
</td><td>
<input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
</td></tr><tr><td>
<span class="gras">News :</span>
</td><td>
<textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
</td></tr><tr><td><td align="right">
<input type="submit" name="go" value="Poster la news">
</td></tr></table>
</form>
<?php
// on affiche les erreurs éventuelles
if (isset($erreur)) echo '<br /><br />',$erreur;
?>
</body>
</html>
base de donnée 1 id int(11) Non Aucune AUTO_INCREMENT
2 titre varchar(255) latin1_swedish_ci
3 contenu text latin1_swedish_ci
4 timestamp bigint(20)
5 date_creation datetime
Merci à vous si vous trouver mon problème