Mais mon problème vient de cette fameuse ligne :
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while $donnees = mysql_fetch_array($retour));
j'ai beau changer un peu tout autour, c'est toujours cette ligne qui me pose pb.$retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
while $donnees = mysql_fetch_array($retour));
j'ai beau changer un peu tout autour, c'est toujours cette ligne qui me pose pb.une faille sql sur une value numérique jamais vuc'est pour "protèger la variable pour éviter une faille SQL" selon un forum (je ne sais plus lequel). j'ai réutilisé ce que j'y avais vu et si je retire cette ligne, ca ne fonctionnne plus.
Mais mon problème vient de cette fameuse ligne :
j'ai beau changer un peu tout autour, c'est toujours cette ligne qui me pose pb.$retour = mysql_query('SELECT * FROM news ORDER BY id DESC'); while $donnees = mysql_fetch_array($retour));
$id_news = intval($_POST['id_news'])justement dans son code donné dans le premier post la parenthése ouvrante est présenteIl te manque une parenthèse ouvrante après le while.
Pour éviter l'injection SQL sur entier, on peut utiliser intval pour s'assurer que la valeur sera numérique.
$id_news = intval($_POST['id_news'])
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour));
Rajoute le "or die...etc" et dit l'erreur signalée.<?php
mysql_connect("***", "***", "***");
mysql_select_db("remunerezmoi_news") or die ("erreur connection");
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
$sql = "INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')" or die ("erreur inscription dans bdd");
$req = mysql_query or die ('Erreur SQL : <br/>'.$sql.'<br/><br/>'.mysql_error());
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
$sql = "UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'" or die ("erreur2");
$req = mysql_query($sql) or die ("erreur3");
}
}
if (isset($_GET['supprimer_news'])) /
{
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news 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 news ORDER BY id DESC') or die(mysql_error());
while ($donnees = mysql_fetch_array($retour));
{
?>
<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
}
?>
</table>
</body>
</html>
J'ai bien les liens "modifier", "supprimer", mais si je veux modifier, tout est vierge.