Je tente de mettre en place un formulaire pour mettre des news.
Je me suis inspiré d'un tuto auquel j'ai changer l’extension pour accéder mySQL passant de "mysql_" à PDO.
Mais j'ai des souci de syntaxe sur mes pages :
Ficher admin pour éditer les news :
<?php
try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if (isset($_GET['modifier_news']))
{
$_GET['modifier_news'] = quote(htmlspecialchars($_GET['modifier_news']));
$news_du_centre = $bdd->query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
$data_news = $news_du_centre->fetch()
$titre = stripslashes($data_news['titre']);
$contenu = stripslashes($data_news['contenu']);
$id_news = $data_news['id'];
}
else
{
$titre = '';
$contenu = '';
$id_news = 0;
}
?>
<form action="list_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
<p>
Contenu :<br />
<textarea name="contenu" cols="50" rows="10">
<?php echo $contenu; ?>
</textarea><br />
<input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
<input type="submit" value="Envoyer" />
</p>
</form>
Ficher admin qui liste les news :<h2><a href="edit_news.php">Ajouter une news</a></h2>
<?php
try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
if (isset($_POST['titre']) AND isset($_POST['contenu']))
{
$titre = addslashes($_POST['titre']);
$contenu = addslashes($_POST['contenu']);
if ($_POST['id_news'] == 0)
{
$bdd->exec("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
}
else
{
$_POST['id_news'] = addslashes($_POST['id_news']);
$bdd->exec("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'");
}
}
if (isset($_GET['supprimer_news']))
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
$bdd->exec('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
</tr>
<?php
$news_du_centre = $bdd->query('SELECT * FROM news ORDER BY id DESC');
while ($data_news = $news_du_centre->fetch())
{
?>
<tr>
<td><?php echo '<a href="edit_news.php?modifier_news=' . $data_news['id'] . '">'; ?>Modifier</a></td>
<td><?php echo '<a href="list_news.php?supprimer_news=' . $data_news['id'] . '">'; ?>Supprimer</a></td>
<td><?php echo stripslashes($data_news['titre']); ?></td>
<td><?php echo date('d/m/Y', $data_news['timestamp']); ?></td>
</tr>
<?php
}
?>
</table>
Ficher où les news sont affichées :<p>Voici les dernières news :</p>
<?php
try
{
$bdd = new PDO('mysql:host=mon_server;dbname=ma_db', 'login', 'password');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$news_du_centre = $bdd->query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($data_news = $news_du_centre->fetch())
{
?>
<div class="news">
<h3>
<?php echo $data_news['titre']; ?>
<em>le <?php echo date('d/m/Y à H\hi', $data_news['timestamp']); ?></em>
</h3>
<p>
<?php
$contenu_news = nl2br(stripslashes($data_news['contenu']));
echo $contenu_news;
?>
</p>
</div>
Pour le moment je n'est pas sécurisé tout ça mais je le ferait lorsque j'aurais résolu le souci que j'ai.Avec vous des idées ?
merci