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 :

Problème système de commentaire


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème système de commentaire
    Bonjour,
    Pour un projet scolaire, je dois créer un site avec pour but de pouvoir commenter différentes vidéos ou autres.

    J'utilise une page de commentaire nommée "testcom.php" et une page pour récupérer
    mes informations qui se nomme "recupcom.php".

    Le soucis c'est qu'avec ses deux pages mon commentaire ne s'enregistre pas dans ma Base de données, alors que si j'utilise en une seule page mon commentaire s'enregistre mais avec des erreurs "normales" dût à l'if isset. D'ou l'utilité de deux pages.

    testcom.php
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    SESSION_start();
    // Connexion au serveur mysql
    $connect = mysql_connect("localhost", "root", "")
     
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db('bds', $connect);
     
    if ( isset($_SESSION['identifiant']) )
    {
    	$result=mysql_query("select pseudo_client from client where pseudo_client='".$_SESSION['identifiant']."'");
     
    	$res = mysql_fetch_array($result);
    	$nom = $res[0];
    }
    else
    	$nom = '';
     ?>
     
    <html>
    <head>
     
    <script>
    function verif(){
    if (document.form.contenue.value=='') {
    alert("Vous n'avez pas écrit pas de commentaire");
    }else{
    document.form.submit();
    }
    }
    </script>
     
    </head>
    <body>
     
    <img src="montagne.jpg"> 
    <br />
    <br />
     
    <br />
    <br /> 
    <br /> 
     
     
     
    <?php 
    				if (isset ($_SESSION['identifiant'])){
    				 print('
    				  <form name="form" method="post" action="recupcom.php"> <table border="1">
    <title> COM </title>
    <tr> <td> '.$nom.' </td> <td> </td>
    <tr><td> Commentaire: <br/><TEXTAREA name="contenue" rows="5" COLS="60"></TEXTAREA></td></tr>
    <tr><td align="center"> <br><input type="button" value="Enregistrer" onClick="verif();"> </td></tr>
    </table> </form>');
    				 }else{
     
    				 print('
    				Vous devez vous connecter pour poster un commentaire!				
    				');
    				}
      ?>
     
     
    <body>
    </body>
    </html>

    recupcom.php
    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
    <?
    SESSION_start();
     
    // Connexion au serveur mysql
    $connect = mysql_connect("localhost", "root", "")
    or die('Impossible de se connecter : ' . mysql_error());
     
    // sélection de la base de données
    mysql_select_db('bds', $connect);
     
    //Récupérer les données 
    $contenue=$_POST['contenue'];
     
    // puis faire la requete
    	$sql = "INSERT INTO commentaire (contenue_com) VALUES ('".$contenue."')";
    	$res = mysql_query($sql, $connect);
     
     
     ?>
    <html>
    <head>
       <script type="text/javascript">
    <!--
    window.location.replace("testcom.php");
    -->
    </script>
    </head>
    <body>
    </body>
    </html>
    Je ne vois vraiment pas d'où vient l'erreur, pourriez-vous m'éclairer svp?
    Car après quelques heures de recherche, je stagne toujours.

    Je vous remercie d'avance de vos réponses futures.
    Cordialement,

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas de necessité d'avoir 2 pages ; d'ailleurs ici tu fais la vérification de l'utilisateur sur le formulaire mais plus sur la requête d'insertion alors que c'est la qu'elle serait essentielle.

    Mais sinon ton code ne comporte pas d'erreur qui empecherait l'insertion.

    Il faut par contre échapper les valeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenue= mysql_real_escape_string($_POST['contenue']);

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Si je le met en une seule page,

    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     <?php
    SESSION_start();
    // Connexion au serveur mysql
    $connect = mysql_connect("localhost", "root", "")
     
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db('bds', $connect);
     
    //Récupérer les données 
    $contenue= mysql_real_escape_string($_POST['contenue']);
     
    // puis faire la requete
    	$sql = "INSERT INTO commentaire (contenue_com) VALUES ('".$contenue."')";
    	$res = mysql_query($sql, $connect);
     
    if ( isset($_SESSION['identifiant']) )
    {
    	$result=mysql_query("select pseudo_client from client where pseudo_client='".$_SESSION['identifiant']."'");
     
    	$res = mysql_fetch_array($result);
    	$nom = $res[0];
    }
    else
    	$nom = '';
    	?>
     
    <html>
    <head>
     
    <script>
    function verif(){
    if (document.form.contenue.value=='') {
    alert("Vous n'avez pas écrit pas de commentaire");
    }else{
    document.form.submit();
    }
    }
    </script>
     
    </head>
    <body>
     
    <img src="montagne.jpg"> 
    <br />
    <br />
     
    <br />
    <br /> 
    <br /> 
     
     
     
    <?php 
    				if (isset ($_SESSION['identifiant'])){
    				 print('
    				 <table border="1">
    				  <form name="form" method="post">
    
    <title> COM </title>
    <tr> <td> '.$nom.' </td> <td> </td>
    <tr><td> Commentaire: <br/><TEXTAREA name="contenue" rows="5" COLS="60"></TEXTAREA></td></tr>
    <tr><td align="center"> <br><input type="button" value="Enregistrer" onClick="verif();"> </td></tr>
    </table> </form>');
    				 }else{
     
    				 print('
    				Vous devez vous connecter pour poster un commentaire!				
    				');
    				}
      ?>
     
     
    <body>
    </body>
    </html>
    Si je saisis un commentaire, ma BDD reçoit le contenue du commentaire + un commentaire avec un contenue vide.

    Et là non plus, je ne vois pas le "pourquoiducomment" de cette erreur.
    En tous cas merci de ta réponses

    Cordialement,

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour l'erreur "undefined" il faut comme tu le sais pourtant, utiliser isset() pour controler si tu as reçu la valeur attendue ou non.

    Pour la double insertion, cela peut se produire quand on a de mauvaises définition CSS comme url="" ou link=""

Discussions similaires

  1. [XSLT] Problème avec les commentaires.
    Par jayjay78 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 22/02/2008, 10h15
  2. Problème systèmes quatre inconues
    Par Tomas2 dans le forum Mathématiques
    Réponses: 17
    Dernier message: 25/09/2007, 19h33
  3. Réponses: 7
    Dernier message: 09/08/2007, 11h55
  4. [MySQL] Comment mettre en place un système de commentaires
    Par mickdu90 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/04/2006, 10h48

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