pb code php dans mon blog - PHP - Programmation
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...
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"> </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> </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
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
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 :
|
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é.
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!
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());
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!!!!
Marsh Posté le 04-12-2006 à 11:28:14
We have a winner
Tu le fais exprès ou quoi ?????
Code :
|
Marsh Posté le 04-12-2006 à 18:48:15
de toute façon c'est un vrai puzzle vos réponses et comme je suis nul je n'ai pas fini
je vais m'acheter un bouquin... j'irai plus vite
Allez @+
Marsh Posté le 05-12-2006 à 11:42:54
mihoss a écrit : |
(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é)
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...
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