Page 1 sur 1

Verification après modification

MessagePosté: Ven Déc 07, 2007 6:48 pm
par ColdFusion
Bon alors j'ai ajouter une partie categorie dans mon code afin de pouvoir répartir mes news donc je voudrai savoir si il est bien fait parce que je fais toujours une faute bête donc bon ... voila merci d'avance

liste_news.php:
Code: Tout sélectionner
<? mysql_connect($dbhost,$dblogin,$dbpassword);
mysql_select_db($dbname);
//-----------------------------------------------------
// Vérification 1 : est-ce qu'on veut poster une news ?
//-----------------------------------------------------
if (isset($_POST['titre']) AND isset($_POST['contenu'])) AND isset($_POST['categorie']))
{
    
$titre addslashes($_POST['titre']);
    
$contenu addslashes($_POST['contenu']);
    
$categorie addslashes($_POST['categorie']);
    
// On vérifie si c'est une modification de news ou pas
    
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 news VALUES('', '" $titre "', '" $contenu "','" $categorie "', '" time() . "')");
    }
    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 news SET titre='" $titre "', contenu='" $contenu "', categorie='" $categorie "' WHERE id='" $_POST['id_news'] . "'");
    }
}
 
//--------------------------------------------------------
// Vérification 2 : est-ce qu'on veut supprimer une news ?
//--------------------------------------------------------
 
if (isset($_GET['supprimer_news'])) // Si 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 news WHERE id=\'' $_GET['supprimer_news'] . '\'');
}
?>
<table><tr>
<th>Modifier</th>
<th>Supprimer</th>
<th>Titre</th>
<th>Date</th>
<th>Categorie</th>
</tr>
<?php
$retour 
mysql_query('SELECT * FROM news 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>
<td><?php echo stripslashes($donnees['categorie']); ?></td>
</tr>


rediger_news.php
Code: Tout sélectionner

<? if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
{
    
// On protège la variable "modifier_news" pour éviter une faille SQL
    
$_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    
// On récupère les infos de la correspondante
    
$retour mysql_query('SELECT * FROM news WHERE id=\'' $_GET['modifier_news'] . '\'');
    
$donnees mysql_fetch_array($retour);
   
    
// On place le titre et le contenu dans des variables simples
    
$titre stripslashes($donnees['titre']);
    
$contenu stripslashes($donnees['contenu']);
    
$categorie stripslashes($donnees['categorie']);
    
$id_news $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
}
else 
// C'est qu'on rédige une nouvelle news
{
    
// Les variables $titre et $contenu et $categorie sont vides, puisque c'est une nouvelle news
    
$titre '';
    
$contenu '';
    
$categorie '';
    
$id_news 0// La variable vaut 0, donc on se souviendra que ce n'est pas une modification
}
?>
<form action="liste_news.php" method="post">
<p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre?>" /></p>
<p>Categorie : <input type="text" size="30" name="categorie" value="<?php echo $categorie?>" /></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>

MessagePosté: Ven Déc 07, 2007 6:56 pm
par Yoyo
Tu es mieux placé que moi pour voir s'il fonctionne non ? Test le sur ton hébergement et reviens si ca ne marche pas avec les codes d'erreurs appropriés.

MessagePosté: Ven Déc 07, 2007 7:05 pm
par ColdFusion
ok je test et je te dis ...

MessagePosté: Ven Déc 07, 2007 7:06 pm
par Yoyo
Oké :) C'est plus facile d'aider par petit bout de code :)

MessagePosté: Ven Déc 07, 2007 7:08 pm
par ColdFusion
J'y crois pas ! ça marche sur la page d'accueil, pareil pour Hardware. Seul petit problème: le timestamp est pas normal :(

MessagePosté: Ven Déc 07, 2007 7:15 pm
par Yoyo
Oue le timestamp s'affiche mal formaté en date ? je vois pas le souci avec la catégorie ^^

Montre voir juste le code avec le timestamp qui pose problème

MessagePosté: Ven Déc 07, 2007 7:16 pm
par ColdFusion
Ba ça fait bizarre de voir un 01/01/1970 :P

MessagePosté: Ven Déc 07, 2007 7:20 pm
par Yoyo
Donne le code, va voir les valeurs dans la base de données, regarde comment tu enregistres le timestamp et comment tu l'affiches :)

MessagePosté: Ven Déc 07, 2007 8:02 pm
par ColdFusion
Voici la partie qui concerne le timestamp:

Code: Tout sélectionner
<?php
      
if (isset($_GET['page']))
      {
              
$page intval($_GET['page']);
      }
      else
      {
              
$page 1;
      }
      
$premierMessageAafficher = ($page 1) * $nombreDeMessagesParPage;
      
$reponse mysql_query('SELECT * FROM news WHERE categorie="hardware" ORDER BY id DESC LIMIT ' $premierMessageAafficher ', ' $nombreDeMessagesParPage);
      while (
$donnees mysql_fetch_array($reponse))
      {
              echo 
'<div class="global1"><h2>' $donnees['titre'] . '</h2><p>' nl2br(stripslashes($donnees['contenu'])) . '</p>';
           echo 
'<h6>le'.date('d/m/Y à H\hi'$donnees['timestamp']).'</h6></div>';
      }
      
mysql_close();
      
?>

MessagePosté: Ven Déc 07, 2007 8:10 pm
par Yoyo
Ben c'est que tu n'as pas de bons timestamps dans ta base de données :)

MessagePosté: Ven Déc 07, 2007 8:12 pm
par ColdFusion
:( et comment j'en met des bons ?

MessagePosté: Ven Déc 07, 2007 10:52 pm
par Yoyo
ben il faut ajouter le timestamp lors de la requete INSERT INTO :)

tu peux utiliser la fonction time() qui contient la date actuelle en format timestamp !

Re: Verification après modification

MessagePosté: Mer Juil 02, 2008 8:38 am
par Valbuena72
c'est pas le code du sdz ça ? :mrgreen:

Re: Verification après modification

MessagePosté: Mer Juil 02, 2008 12:04 pm
par Yoyo
Si on dirait :D Bien vu lesloups :D

Re: Verification après modification

MessagePosté: Mer Juil 02, 2008 12:06 pm
par Valbuena72
j'aurai eu raison une fois dans ma vie coté php/bdd :mrgreen: :bigboulay: