par
hunomina972 » 24 août 2014, 12:34
Bon alors, j'ai changer le code, les modification et les création sont maintenant appliquées a partir de rediger_news.php car c'etait un peu tirer par les cheveux de le faire comme ça donc maintenant ça donne :
rediger_news.php
<!DOCTYPE html PUBLIC>
<html>
<head>
<title>Rédiger une news</title>
<meta charset="utf-8">
<style type="text/css">
h3, form
{
text-align:center;
}
a {
text-decoration:underline;
color:black;
}
a:hover{
color:blue;
}
</style>
</head>
<body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}
$titre = $_POST(['titre']);
$contenu = $_POST(['contenu']);
$time = time();
$q = array(
'titre'=>$titre,
'contenu'=>$contenu,
'timestamp'=>$time
);
if (isset($_GET['modifier_news'])) { // Si on demande de modifier une news.
// On récupère les informations de la news correspondante.
$sql = $cnx->query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
while($donnees = $sql->fetch()){
// On place le titre et le contenu dans des variables simples.
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que cest une modification.
}
if(isset($_POST['titre']) AND isset($_POST['contenu'])){
$sql2= 'UPDATE news SET "titre"=:titre,"contenu"=:contenu, "timestamp"=:timestamp WHERE id='" . $_POST['id_news'] . " ' ';
$req2 = $cnx->prepare($sql2);
$req2->execute($q);
}
}
else {// C est qu'on rédige une nouvelle news.
if(isset($_POST['titre']) AND isset($_POST['contenu'])){
$id_news = 0;
$req = $cnx->prepare('INSERT INTO news (titre, contenu, timestamp) VALUES (:titre, :contenu, :timestamp)');
$req->execute($q);
}
}
?>
<form action="rediger_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>
</body>
</html>
Il y a un assez gros bug, les formulaire ne s'affiche pas
Et liste_news.php devient :
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Liste news</title>
<style type="text/css">
th, td, table {
border: 1px solid black; }
a {
text-decoration:underline;
color:black;
}
a:hover{
color:blue;
}
</style>
</head>
<body>
<center><h1><a href="rediger_news.php"> Ajouter une news </a></h1><hr/><br/><hr/><br/>
<?php
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}
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']);
$req3 = $cnx->prepare('DELETE FROM news WHERE id=\'' .$_GET['supprimer_news'] . '\'');
$req3->execute();
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Contenu</th>
<th>Date</th>
Liste des news du site !
</tr>
<?php
$req4 = $cnx->query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = $req4->fetch()) // 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 stripslashes($donnees['contenu']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news.
?>
</table>
</center>
</body>
</html>
Elle marche apparement tres bien
Le probleme donc et que les formulaire de rediger_news.php ne s'affiche pas pourquoi ???
Bon alors, j'ai changer le code, les modification et les création sont maintenant appliquées a partir de rediger_news.php car c'etait un peu tirer par les cheveux de le faire comme ça donc maintenant ça donne :
rediger_news.php
[php]<!DOCTYPE html PUBLIC>
<html>
<head>
<title>Rédiger une news</title>
<meta charset="utf-8">
<style type="text/css">
h3, form
{
text-align:center;
}
a {
text-decoration:underline;
color:black;
}
a:hover{
color:blue;
}
</style>
</head>
<body>
<h3><a href="liste_news.php">Retour à la liste des news</a></h3>
<?php
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}
$titre = $_POST(['titre']);
$contenu = $_POST(['contenu']);
$time = time();
$q = array(
'titre'=>$titre,
'contenu'=>$contenu,
'timestamp'=>$time
);
if (isset($_GET['modifier_news'])) { // Si on demande de modifier une news.
// On récupère les informations de la news correspondante.
$sql = $cnx->query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'');
while($donnees = $sql->fetch()){
// On place le titre et le contenu dans des variables simples.
$titre = stripslashes($donnees['titre']);
$contenu = stripslashes($donnees['contenu']);
$id_news = $donnees['id']; // Cette variable va servir pour se souvenir que cest une modification.
}
if(isset($_POST['titre']) AND isset($_POST['contenu'])){
$sql2= 'UPDATE news SET "titre"=:titre,"contenu"=:contenu, "timestamp"=:timestamp WHERE id='" . $_POST['id_news'] . " ' ';
$req2 = $cnx->prepare($sql2);
$req2->execute($q);
}
}
else {// C est qu'on rédige une nouvelle news.
if(isset($_POST['titre']) AND isset($_POST['contenu'])){
$id_news = 0;
$req = $cnx->prepare('INSERT INTO news (titre, contenu, timestamp) VALUES (:titre, :contenu, :timestamp)');
$req->execute($q);
}
}
?>
<form action="rediger_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>
</body>
</html>[/php]
Il y a un assez gros bug, les formulaire ne s'affiche pas
Et liste_news.php devient :[php]<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Liste news</title>
<style type="text/css">
th, td, table {
border: 1px solid black; }
a {
text-decoration:underline;
color:black;
}
a:hover{
color:blue;
}
</style>
</head>
<body>
<center><h1><a href="rediger_news.php"> Ajouter une news </a></h1><hr/><br/><hr/><br/>
<?php
try {
$cnx = new PDO('');
$cnx-> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
} catch (PDOException $e) {
echo '<code>'.$e->getMessage().'<br />'.$e->getTraceAsString(),'</code>';
}
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']);
$req3 = $cnx->prepare('DELETE FROM news WHERE id=\'' .$_GET['supprimer_news'] . '\'');
$req3->execute();
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Contenu</th>
<th>Date</th>
Liste des news du site !
</tr>
<?php
$req4 = $cnx->query('SELECT * FROM news ORDER BY id DESC');
while ($donnees = $req4->fetch()) // 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 stripslashes($donnees['contenu']); ?></td>
<td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
</tr>
<?php
} // Fin de la boucle qui liste les news.
?>
</table>
</center>
</body>
</html>[/php]
Elle marche apparement tres bien
Le probleme donc et que les formulaire de rediger_news.php ne s'affiche pas pourquoi ???