pb code php dans mon blog

pb code php dans mon blog - PHP - Programmation

Marsh Posté le 01-12-2006 à 17:38:21    

Bonjour,
 
Voila je viens vers vous vous exposer mes pbs:
 
Je suis en train de mettre en place mon blog et pour cela je fais un tutorial paru à l'époque dans le magazine (studio multimédia) disparu depuis il me semble! .
 
Pour la ou les personnes désireuses de m'aider voici l'url : http://www.tmdesigner.com/blog.php et http://www.tmdesigner.com/comment.php et http://www.tmdesigner.com/admin.php.  
 
Alors j'ai créée 2 tables une pour intégrer les news (page blog) et une pour les commentaires.
 
Lorsque je fais des tests sur ma page admin,  je m'apercois que dans la table (blog) rien n'apparait!! et rien n'apparait bien sûr dans ma page web, et lorsque je fais un commentaire dans ma page comment.php ceux ci appraraissent dans ma table commentaire mais pas dans ma page web (faites le test)
 
Evidemment vu mon niveau il m'est difficile de trouver les erreurs...
 
En local, la page blog.php est la même que la page web (http://www.tmdesigner.com/blog.php) , par contre la page comment.php laisse apparaitre 2 lignes d'erreurs, les voici:
 
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\easyphp1-7\www\comment.php on line 30
ici mon code :  
 
<?php
  $ligne = mysql_fetch_array($requete); // récupération des informations de la ligne en question
  ?>
 
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\easyphp1-7\www\comment.php on line 47
 
ici mon code :
 
$nombre = mysql_num_rows($requete);
 
merci d'avance à ceux disposés à m'aider :)

Reply

Marsh Posté le 01-12-2006 à 17:38:21   

Reply

Marsh Posté le 01-12-2006 à 17:58:50    

A priori ta requête n'est pas correcte...:/ Dur de dire sans le code, mais en tout cas, mais je soupçonne un mysql_query sans gestion des erreurs...


Message édité par gooopil le 01-12-2006 à 17:59:22
Reply

Marsh Posté le 02-12-2006 à 18:12:22    

merci! est ce que si je te donne le code tu pourrais m'aider? voici le code de ma page commentaire:
<div id="conteneur"><?php  
   
  include ("connect.php" );  
 
$sql ='SELECT * FROM blog WHERE id='.$_GET['id'];  
$requete= mysql_query($sql);  
?>
  <div id="header"><table width="100%" border="0" cellpadding="0" cellspacing="0">
    <tr><td width="204" height="162"><img src="img/header_tm.jpg" width="204" height="162" alt="Le Blog de Michel t" title="Le Blog de Michel t"/></td>
      <td width="185" height="162"><img src="img/header_centre.jpg" width="188" height="162" alt="Le Blog de Michel t" title="Le Blog de Michel t"/></td>
      <td width="208" height="162"><img src="img/header_d.jpg" width="208" height="162" /></td>
    </tr></table>
  </div>
<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr><td colspan="4"><img src="img/caleho.gif" width="600"/></td></tr>
  <tr>
    <td width="9" valign="top" background="img/cal_g.gif">&nbsp;</td>
    <td width="580">
  <div id="blogcentral"> <?php
  $ligne = mysql_fetch_array($requete); // récupération des informations de la ligne en question
  ?>
    <div id="nouveaute"><table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="titre"><?= $ligne['titre']; ?> </td>
    <td class="date"><?= substr($ligne['date'],6,2)."/".substr($ligne['date'],4,2)."/".substr($ligne['date'],0,4); ?> </td>
  </tr>
</table>
           <?php if ($ligne['image']!="" ) {  ?>
        <div id="image"><img src="images/<?= $ligne['image']; ?>" width="350" height="100"></div>
   <?php } ?>
       <div id="texte"><?= $ligne['texte']; ?></div>
     <div id="option"><a href="<?= $ligne['url']; ?>"><img src="img/btn_link.gif" alt="voir le site" name="lien" width="61" height="22" border="0"></a></div>
    </div>
<?php
 $sql ='SELECT * FROM commentaire WHERE categorie='.$_GET['id'].' ORDER BY id DESC'; //sélection de la table en fonction de la variable contenue dans l'url
 $requete= mysql_query($sql);
 $nombre = mysql_num_rows($requete);
 for ($i=0; $i<$nombre; $i++){
 $ligne= mysql_fetch_array($requete);
?>
   <div id="comment">
    <table width="100%"  border="0">
         <tr>
           <td class="name"><?= $ligne['nom']; ?></td>
           <td class="date"><?= substr($ligne['date'],6,2)."/".substr($ligne['date'],4,2)."/".substr($ligne['date'],0,4); ?> </td>
         </tr>
       </table>
       <div id="texte"><?= $ligne['texte']; ?></div>
    </div><?php } ?>
  <p>&nbsp;</p>
    <table width="350" border="0" class="tableau">
  <tr>
    <td class="titre"> [+] Ajouter un commentaire </td>
  </tr>
  <tr>
    <td><form name="form1" method="post" action="insert_comment.php">
    <p>Nom :  
      <input name="nom" type="text" value="" size="50">
    </p>
    <p>texte :              
      <textarea name="texte" cols="40" rows="10"></textarea>
 </p>
    <p>            
      <input type="submit" name="Submit" value="Commenter" class="txtBox">
      <input name="categorie" type="hidden" id="categorie" value="<?= $_GET['id'];  ?>">
 </p>
    </form></td>
  </tr>
</table>
  <div i

Reply

Marsh Posté le 02-12-2006 à 18:42:14    

Ouaip, erreur dans une requête, ou un truc comme ça. Mais forcément, sans gestion d'erreur, et le paramètre id repris directement de $_GET :/

Reply

Marsh Posté le 02-12-2006 à 19:00:12    

Commence par mettre ton code à l'intérieur d'une balise [code ], ça sera bcp plus lisible. Ensuite, faut gérer le retour d'erreur de mysql_query :

Code :
  1. mysql_query("...." ) or die(mysql_error);


 
Ensuite comme l'a dit FlorentG, faut pas coller directement una variable get ou post comme ça dans une requête sans vérifier ce qu'il y a dedans, ca te fait une énorme faille de sécurité.

Reply

Marsh Posté le 03-12-2006 à 11:39:58    

oui merci! alors j'ai remplacé $requete= mysql_query($sql);  par $requete= mysql_query("...." ) or die(mysql_error); mais lorsque je remplace
 
fonction de la variable contenue dans l'url
 $requete= mysql_query($sql);
 
par  
 
fonction de la variable contenue dans l'url
 $requete= $requete= mysql_query("...." ) or die(mysql_error);  
 
ma page affiche en local "mysql_error"  
 
-"Ensuite comme l'a dit FlorentG, faut pas coller directement una variable get ou post comme ça dans une requête sans vérifier ce qu'il y a dedans, ca te fait une énorme faille de sécurité." je ne comprend pas bien? Que dois je faire pour ça? '.$_GET['id'].' et puis surtout que faire pour que mes pages blog et commentaire fonctionnent? merci d'avance!

Reply

Marsh Posté le 03-12-2006 à 12:42:09    

->die(mysql_error());
 

Reply

Marsh Posté le 03-12-2006 à 16:03:34    

je ne comprend pas?

Reply

Marsh Posté le 03-12-2006 à 17:41:56    

mysql_error est une vue sur les erreurs produites par la derniere requete.  
Cependant, dans ta requête, il n'y a pas de ';'
il faudrait plutôt $sql ="SELECT * FROM blog WHERE id='$_GET['id']';";
 
ah, aufait, c'est ... or die(mysql_error());


Message édité par franzBesac le 03-12-2006 à 17:43:07

---------------
http://www.chances-de-gagner.fr
Reply

Marsh Posté le 03-12-2006 à 17:58:01    

on s'en fout du ; :o

Reply

Marsh Posté le 03-12-2006 à 17:58:01   

Reply

Marsh Posté le 04-12-2006 à 09:35:55    

de toute façon j'ai beau essayer avec:
 
<?php  
include ("connect.php" );  
$sql ='SELECT * FROM blog WHERE id='.$_GET['id'];  
$requete= mysql_query("...." ) die(mysql_error());
?>
 
<?php  
include ("connect.php" );  
$sql ="SELECT * FROM blog WHERE id='$_GET['id']';";  
$requete= mysql_query("...." ) die(mysql_error());
?>  
 
ca ne fonctionne toujours pas!!!!
 
 

Reply

Marsh Posté le 04-12-2006 à 11:28:14    

We have a winner  [:petrus jar]

 

Tu le fais exprès ou quoi ?????

 
Code :
  1. mysql_query("ta requete ici" ) or die (mysql_error());


Message édité par gooopil le 04-12-2006 à 11:28:33
Reply

Marsh Posté le 04-12-2006 à 18:48:15    

:sol:  
de toute façon c'est un vrai puzzle vos réponses et comme je suis nul je n'ai pas fini :jap:  
je vais m'acheter un bouquin... j'irai plus vite
Allez @+

Reply

Marsh Posté le 05-12-2006 à 11:42:54    

mihoss a écrit :

:sol:  
de toute façon c'est un vrai puzzle vos réponses et comme je suis nul je n'ai pas fini :jap:  
je vais m'acheter un bouquin... j'irai plus vite
Allez @+


 
[:roi]
 
(bon c'est même pas ironique, pour une fois que quelqu'un reconnaît qu'il est un peu à court de connaissances et qu'il aurait l'usage d'un bon bouquin, c'est assez rare pour être signalé)

Reply

Marsh Posté le 05-12-2006 à 11:50:10    

Ouais enfin il lui aurait suffit d'aller sur php.net et de rechercher mysql_query pour voir comment ça marche...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed