IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Gestion des news de façon dynamique.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut Gestion des news de façon dynamique.
    Bonjour a tous,

    Je suis entrain de développer un CMS (Content Management System) pour un Site Internet mais j'ai rencontré quelques difficultés lors de l'édition des news.

    Voici le code source que j'ai écrit qui devrait permettre d'éditer les news :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    $message2 = $_POST["news"];
    mysql_connect($host, $user, $pwd);
    mysql_select_db($db);
    $query2 = mysql_query("SELECT * FROM news ORDER BY ID DESC");
    mysql_close();
    if(!isset($message2))
    {
    	print "Ici vous pouvez modifier les news";
    }
    elseif(isset($message2))
    {
    	$news = mysql_fetch_array($query2);
    	foreach($news as $value)
    	{
    	mysql_connect($host, $user, $pwd);
    	mysql_select_db($db);
    	$query3 = mysql_query("UPDATE news set message='".$message2."' WHERE id = '".$value['id']."' ");
    	mysql_close();
    	print $message2;
    	if($query3 == true)
    	{
    		print "Succes, mise a jour reussie.";
    	}
    	else
    	{
    		print "Erreure";
    	}
    	}
    }
    while($news2 = mysql_fetch_array($query2))
    {
    ?>
    <form action="admin.php?page=menu4admin" method="post">
    <input type="text" name="news" value="<?php print $news2['message']; ?>" size="100px" style="height:50px" />
    <input type="submit" value="Ok" />
    </form>
    <?php
    }
    ?>
    De cette façon là ça à l'air de fonctionner, par contre il édite pas la news que je lui ai dis d'éditer...
    Je crains bien que l'erreure est dans le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query3 = mysql_query("UPDATE news set message='".$message2."' WHERE id = '".$value['id']."' ");
    car le $value['id'] est vaguement définie d'après mon avis. Avez vous peut être des suggestions comment réucuperer l'ID des news à travers le formulaire pour en faire uen variable bien clairement définie avec l'id approprié du champ que j'essaye d'éditer? Ca fait des jours que je cherche mais là j'arrive plus a avoir d'idées...

    Merci pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 44
    Par défaut
    Bonjour,

    L'idée serait de passer l'ID (sans mauvais jeu de mot !!) de la même façon que le contenu (via le formulaire), à l'aide d'un champs hidden :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="<?php echo $news2['id']; ?>" />
    Il serait alors récupéré dans le code par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php 
    echo $_POST['id']; // qui affichera donc l'id
    ?>
    Cela éviterait donc de devoir faire appel à une boucle qui -- à première vue -- va modifier le contenu de toutes les news de ta table.

    Autre petit conseil : traite tes variables afin d'éviter toute faille de sécurité. Je vois que ta variable $message2 peut facilement être utilisée pour effectuer une injection SQL. Regardes du coté de mysql_real_escape_string() pour le contenu de ta news, et peut etre intval() pour ton ID.

    Nicolas .

  3. #3
    Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Par défaut
    Merci beaucoup, je n'avais pas du tout pensé à mettre un hidden. En tout cas je te remercie encore, le résultat est parfait.
    Oui tu as raison en ce qui concerne la sécurité, mais de toutes façons ce menu est uniquement reservé aux Administrateurs, c'est à dire qu'ils ont déjà accès à la BDD Mysql. Je pense donc pas que ça vaut le coup, mais après tout on sait jamais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des id sur éléments dynamiques
    Par Manu0086 dans le forum Android
    Réponses: 4
    Dernier message: 25/01/2014, 10h20
  2. [XL-2007] Comment reformater des libellés de façon dynamique ?
    Par leinadjan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2013, 21h24
  3. Invoquer des getter de façon dynamique
    Par bernidupont dans le forum Général Java
    Réponses: 12
    Dernier message: 17/10/2012, 17h34
  4. gestion des évènements sur objets dynamiques
    Par boss_gama dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/03/2009, 11h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo