Codage PHP réticent [Résolu/Fermé]

Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
- - Dernière réponse : Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
- 23 mai 2008 à 20:09
Bonjour,
J'ai décidé de mettre un systeme de commentaires sur chacun de mes articles, le probleme, c'est que mon code PHP ne fonctionne pas, je me retrouve sans arret avec un "Parse error: syntax error" etc..
Surtout a la ligne 2 de ce codage.

Donc, mon code :

<?php
if (isset($_POST['pseudo']) AND isset($_POST['mail'] AND isset($_POST['contenu'])) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['contenu'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "******", "******");
        mysql_select_db("*******");
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
		$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
        $contenu = mysql_real_escape_string(htmlspecialchars($_POST['contenu']));
 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO comments1 VALUES('', '$pseudo', '$mail', '$contenu')");
 
        // On se déconnecte de MySQL
        mysql_close();
    }
}

?>

<!-- Formulaire -->
<form method="post" action="comments1.php">
<p><object>
<table class="formulaire">
<tr><td><label for="pseudo">Votre Pseudo :</label></td><td><input type="text" name="pseudo" id="pseudo" size="25" tabindex="10" /></td></tr>
<tr><td><label for="mail">Votre E-mail :</label></td><td><input type="text" name="mail" id="mail" size="25" tabindex="20" /></td></tr>
<tr><td><label for="contenu">Votre Message :</label></td><td colspan="3"><textarea name="contenu" id="contenu" rows="4" cols="40" tabindex="30"></textarea> &nbsp;&nbsp; <input type="submit" value="Envoyer" tabindex="40" /><input type="reset" value="Effacer" tabindex="50" /></td></tr>
</table>
</object></p>
</form><br /><br />

<?php
// On se connecte d'abord à MySQL :
mysql_connect("localhost", "*******", "*****");
mysql_select_db("*****");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM comments1 ORDER BY ID DESC LIMIT 0,10");
 
// On se déconnecte de MySQL
mysql_close();
 
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p><strong><?php echo $donnees['pseudo']; ?></strong> - <span class="petititalique"><?php echo $donnees['mail']; ?></span><br />
<?php echo $donnees['contenu']; ?></p>

<?php
}
?>

Merci de votre aide !
Afficher la suite 

19 réponses

Messages postés
795
Date d'inscription
mardi 4 septembre 2007
Statut
Membre
Dernière intervention
6 décembre 2015
107
0
Merci
if (isset($_POST['pseudo']) AND isset($_POST['mail'] AND isset($_POST['contenu']))

->

If ((isset($_POST['pseudo'])) && (isset($_POST['mail'])) && (isset($_POST['contenu'])))

T'as essayé de cette manière ? il me semble qu'il te manquait des parenthèses
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7 -
Ah oui, en effet..
Mais pourquoi autant de parenthèses ?
Messages postés
558
Date d'inscription
samedi 20 octobre 2007
Statut
Membre
Dernière intervention
11 novembre 2010
279
0
Merci
Inutile de mettre autant de parenthèses.

Le problème venait simplement du fait qu'il en manquait une

if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['contenu']))


juste après $_POST['mail'].
Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7 -
Ah ouais !
Autant pour moi j'aurais du être plus attentif..
Merci beaucoup !
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Je me permet de vous redemander votre aide..
Quasiment même code, mais pour mon livre do'r cette fois-ci, on m'affiche une erreur MySQL sans que je ne comprenne pourquoi.
Elle se trouve (Apparement) au niveau de ma boucle : "while ($donnees = mysql_fetch_array($reponse))" (ligne 44)


<?php
mysql_connect("sql.hostarea.org", "*******", "******");
mysql_select_db("********");

// Si un message est envoyé, on l'enregistre
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['message']))
{
    $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
    $mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
	$date = date( "d/m/Y H:i:s" ); //On met la date
	$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
    $message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
 
 
    // On enregistre 
    mysql_query("INSERT INTO livreor VALUES('', '" . $pseudo . "', '" . $date . "', '" . $mail . "', '" . $message . "')");
}

$nombreDeMessagesParPage = 20;
// On récupère le nombre total de messages
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages'];
$nombreDePages  = ceil($totalDesMessages / $nombreDeMessagesParPage);
?>

<?php
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (niouse.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAAfficher = ($page - 1) * $nombreDeMessagesParPage; 
$reponse = mysql_query('SELECT * FROM livreor ORDER BY id DESC LIMIT ' . $premierMessageAAfficher . ', ' . $nombreDeMessageParPage);

while ($donnees = mysql_fetch_array($reponse))
{
?>

<strong><?php echo $donnees['pseudo']; ?></strong> &agrave; <?php echo $donnees['date']; ?> - <em>(<?php echo $donnees['mail']; ?>)</em><br />
<?php echo $donnees['message']; ?><br />
<p><object><hr /></object></p>

<div class="center">
<?php
}
 echo '';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="livreor.php?page=' . $i . '">' . $i . '</a> ';
}

mysql_close();
?>
<br /><br />
PRK
Messages postés
795
Date d'inscription
mardi 4 septembre 2007
Statut
Membre
Dernière intervention
6 décembre 2015
107 -
while ($donnees = mysql_fetch_array($reponse))" (ligne 44)

Il me semble que c'est :

while ($donnees==mysql_fetch_array($reponse))

Pluck
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7 > PRK
Messages postés
795
Date d'inscription
mardi 4 septembre 2007
Statut
Membre
Dernière intervention
6 décembre 2015
-
Aucun changement, toujours ce message : "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/web/clients/inner-visi0n.hostarea.org/www/livre/livreor.php on line 67"

J'ai pourtant recommencé toute la page deux fois, toujours le même resultat..

EDIT: Par contre, j'ai essayer avec des "mysql_error()", elle se situerais ici :
"
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);$totalDesMessages = $donnees['nb_messages']
"

La seconde ligne.
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Up ? plz =/
Torkass
Messages postés
167
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
21 janvier 2016
80 -
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM livreor');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
J'ai essayé, ca ne change strictement rien, l'erreur persiste ><*

Merci pour votre aide.
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Bon, j'ai laissé tomber pour le livre d'or. J'me suis mis en tête de mettre un système de commentaires sur chaque article, mon code marche..
Mais evidement, je me pose cette question : Sachant que j'ai plus d'une centaine d'articles, comment faire pour ne pas créer cent tables sous PHPmyAdmin ? Ca prendrais trop de temps et, de plus, il faudrait en créer une a chaque parution d'article..

Une idée, peut-être ?
Messages postés
167
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
21 janvier 2016
80
0
Merci
Salut !

Pour chaque commentaure, tu enregistre l'ip du commentaire et l'id de l'article lié !
De cette manière, tu pourras facilement n'afficher sous les articles que les commentaires liés à celui-ci.
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Pour enregister l'ip du commentaire, je ne vois aps du tout comment preceder a vrai dire..
Par contre, pour l'id de l'article, il suffit juste d'utiliser un "WHERE" (En prennat en compte ll'id de l'article enregister lors du post du commentaire).

Ah, aussi, pour limiter le nombre de pages de commentaires servant a afficher et enregister les commentaires, comment faire ?
Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
598
0
Merci
Bjr

Je créerais 2 tables comme ceci par ex

+-------------+
| COMMENTAIRE |
+-------------+
| COM_ID      | Identifiant du commentaire 
| COM_IP      | Adresse IP de l'internaute
| COM_DATE    | Date du commentaire
| COM_TXT     | Texte du commentaire
| COM_ART_ID  | Identifiant de l'article
+-------------+


+-------------+
| ARTICLE     |
+-------------+
| ART_ID      | Identifiant de l'article
| ART_TITRE   | Titre de l'article
| ART_DATE    | Date de parution
+-------------+


Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Hum, je comprend pas trop l'utilité de mettres autant de paramètres, et a vraid rie, je vois même pas comment les aquérir tous Oo..

Un truc plus simple, peut-être ?
Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
598
0
Merci
Posté en double lol

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
Messages postés
1771
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
598
0
Merci
Plus simple ?

Hum ...

on peut à la rigueur faire l'impasse sur quelques champs

+-------------+
| COMMENTAIRE |
+-------------+
| COM_ID      | Identifiant du commentaire 
| COM_TXT     | Texte du commentaire
| COM_ART_ID  | Identifiant de l'article
+-------------+


+-------------+
| ARTICLE     |
+-------------+
| ART_ID      | Identifiant de l'article
| ART_TITRE   | Titre de l'article  (facultatif mais difficile ensuite de retrouver à quel article correspond chaque identifiant)
+-------------+
--

Maintenant qu'est ce que tu entends exactement par ARTICLE ? Une page HTML ?

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Bon, j'ai reussi de mon coté a faire ce que je voulais, un seul probleme :

Page de commentaires:
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
	$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
        $contenu = mysql_real_escape_string(htmlspecialchars($_POST['contenu']));
	$id_news = ($_GET['id_news']);

 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO comments1 VALUES('', '$id_news', '$pseudo', '$mail', '$contenu')");
 
        // On se déconnecte de MySQL
        mysql_close();
    }
}

?>

<!-- Formulaire -->
<form method="post" action="comments.php">
<p><object>
<table class="formulaire">
<tr><td><label for="pseudo">Votre Pseudo :</label></td><td><input type="text" name="pseudo" id="pseudo" size="25" tabindex="10" /></td></tr>
<tr><td><label for="mail">Votre E-mail :</label></td><td><input type="text" name="mail" id="mail" size="25" tabindex="20" /></td></tr>
<tr><td><label for="contenu">Votre Message :</label></td><td colspan="3"><textarea name="contenu" id="contenu" rows="4" cols="40" tabindex="30"></textarea> &nbsp;&nbsp; <input type="submit" value="Envoyer" tabindex="40" /><input type="reset" value="Effacer" tabindex="50" /></td></tr>
</table>
</object></p>
</form><br /><br />

<?php
// On se connecte d'abord à MySQL :
mysql_connect("sql.hostarea.org", "****", "*****");
mysql_select_db("****");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM comments1 ORDER BY id DESC LIMIT 0,10");


Page des articles :
<table id="art<?php echo $donnees['id']; ?>">
<tr>
<th><?php echo $donnees['titre']; ?></th>
</tr>
<tr>
<td><div class=" petititalique right"><a href="../comments.php?id_news=<?php echo $donnees['id']; ?>" onClick="window.open(this.href,'comments', 'width=635, height=700, location=no');return false;">Commentaire(s)</a></div><br /><br />
<?php echo $donnees['contenu']; ?><br /><br />
<?php echo $donnees['video']; ?></td>
</tr>
</table><p><br /></p>




J'ai réussi a avoir un "id_news" différent a chaque fois, maintenant ce que je voudrais c'est afficher par article les commentaires qui lui sont attribués. Comment faire ?
Messages postés
167
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
21 janvier 2016
80
0
Merci
je te l'ai dit, il suffit d'enregistrer l'id de l'article en même temps que l'enregistrement du commentaire et n'afficher sous l'article que les commentaires dont l'id d'article est celui-ci.
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Donc, cela induit de creer autant de pages de commentaires que d'articles ?
Ou bien utiliser un WHERE lors de l'affichage, mais avec quels paramètres ?

J'ai essayé quelques trucs mais sa n'as pas marché, un petit bout de code peut etre ? =/
Messages postés
167
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
21 janvier 2016
80
0
Merci
quand tu affiches un article, y'a bien son id dans la barre d'adresse, non ?

tu fais un WHERE id_article = '".$_GET['id']."'"; (par exemple)
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Voila, ce que ça donne :

Code de la page des articles :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
	<head>
		<title>Inner-Visi0n - Niouses !</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" type="text/css" media="screen" title="Black Skin" href="../styles/style1.css" />
		<link rel="alternate stylesheet" type="text/css" media="screen" title="Happy Time" href="../styles/style2.css" />
		<script type="text/javascript" src="scripts/Styleswitcher.js"> </script>
		<link rel="shortcut icon" type="image/x-icon" href="../fichiers/images/favicon.png" />
	</head>
	
<body>

<!-- Menu -->
<p id="menu">
<a href="../index.html">Accueil</a> &nbsp;&nbsp; <a href="niouse6.php">Niouses</a> &nbsp;&nbsp; <a href="../animations.php">Animations</a> &nbsp;&nbsp; <a href="../liens.html">Liens</a> &nbsp;&nbsp; <a href="../proposer.html" >Proposer</a>
</p>

<div class="descente"><a href="#bas" >descendre</a> &#8595;</div>
<?php
mysql_connect("sql.hostarea.org", "******", "*****"); // Connexion à MySQL
mysql_select_db("*******"); // Sélection de la base 

$nombreArticlesParPage = 15;
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM niouses');
$donnees = mysql_fetch_array($retour);$totalDesArticles = $donnees['nb_messages'];
$nombreDePages  = ceil($totalDesArticles / $nombreArticlesParPage);
?>

<?php
if (isset($_GET['page']))
{
        $page = $_GET['page']; // On récupère le numéro de la page indiqué dans l'adresse (niouses.php?page=4)
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
        $page = 1; // On se met sur la page 1 (par défaut)
}
// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierArticleAAfficher = ($page - 1) * $nombreArticlesParPage; 
$reponse = mysql_query('SELECT * FROM niouses ORDER BY id DESC LIMIT ' . $premierArticleAAfficher . ', ' . $nombreArticlesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
?>
 
<table id="art<?php echo $donnees['id']; ?>">
<tr>
<th><?php echo $donnees['titre']; ?></th>
</tr>
<tr>
<td><div class=" petititalique right"><a href="../comments.php?id_news=<?php echo $donnees['id']; ?>" onClick="window.open(this.href,'comments', 'width=635, height=700, location=no');return false;">Commentaire(s)</a></div><br /><br />
<?php echo $donnees['contenu']; ?><br /><br />
<?php echo $donnees['video']; ?></td>
</tr>
</table><p><br /></p>

<?php
}
?>

<div class="center">
<?php
 echo '';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
    echo '<a href="niouses.php?page=' . $i . '">' . $i . '</a> ';
}
 
mysql_close(); // Déconnexion de MySQL
?>
<br /><br />

<!-- Début de Publicité -->
<?php
@include('http://services.hostarea.org/pub/16183.key');
?></div>
<!-- Fin de Publicité -->

</body>
</html>



Code de la page des commentaires :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr_FR" lang="fr_FR">
	<head>
		<title>Inner-Visi0n - Commentaires !</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" type="text/css" media="screen" title="Black Skin" href="../styles/style1.css" />
		<link rel="alternate stylesheet" type="text/css" media="screen" title="Happy Time" href="../styles/style2.css" />
		<link rel="shortcut icon" type="image/x-icon" href="../fichiers/images/favicon.png" />
	</head>
	
<body>

<?php
If (isset($_POST['pseudo']) && isset($_POST['mail']) && isset($_POST['contenu']))  // Si les variables existent
{
    if ($_POST['pseudo'] != NULL && $_POST['mail'] != NULL && $_POST['contenu'] != NULL) // Si on a quelque chose à enregistrer
    {
        // D'abord, on se connecte à MySQL
        mysql_connect("sql.hostarea.org", "******", "*******");
        mysql_select_db("******");
 
        // On utilise les fonctions PHP mysql_real_escape_string et htmlspecialchars pour la sécurité
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
		$mail = mysql_real_escape_string(htmlspecialchars($_POST['mail']));
        $contenu = mysql_real_escape_string(htmlspecialchars($_POST['contenu']));
		$id_news = $_GET['id_news'];
 
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO comments1 VALUES('', '$id_news', '$pseudo', '$mail', '$contenu')");
 
        // On se déconnecte de MySQL
        mysql_close();
    }
}

?>

<!-- Formulaire -->
<form method="post" action="comments.php">
<p><object>
<table class="formulaire">
<tr><td><label for="pseudo">Votre Pseudo :</label></td><td><input type="text" name="pseudo" id="pseudo" size="25" tabindex="10" /></td></tr>
<tr><td><label for="mail">Votre E-mail :</label></td><td><input type="text" name="mail" id="mail" size="25" tabindex="20" /></td></tr>
<tr><td><label for="contenu">Votre Message :</label></td><td colspan="3"><textarea name="contenu" id="contenu" rows="4" cols="40" tabindex="30"></textarea> &nbsp;&nbsp; <input type="submit" value="Envoyer" tabindex="40" /><input type="reset" value="Effacer" tabindex="50" /></td></tr>
</table>
</object></p>
</form><br /><br />

<?php
// On se connecte d'abord à MySQL :
mysql_connect("sql.hostarea.org", "******", "******");
mysql_select_db("******");
 
// On utilise la requête suivante pour récupérer les 10 derniers messages :
$reponse = mysql_query("SELECT * FROM comments1 WHERE id_news='".$_GET['id_news']."' ORDER BY id DESC LIMIT 0,10");
 

 
// Puis on fait une boucle pour afficher tous les résultats :
while ($donnees = mysql_fetch_array($reponse) )
{
?>

<p><strong><?php echo $donnees['pseudo']; ?></strong> - <span class="petititalique"><?php echo $donnees['mail']; ?></span><br />
<?php echo $donnees['contenu']; ?></p>

<?php
}

mysql_close(); // On se déconnecte de MySQL
?>
</body>
</html>




Mais EVIDEMENT, ça ne marche pas... dans ma table, les "id_news" sont toujours égaux a 0. Comment faire ? ><*
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Up, plz
J'suis en train de bien galérer a me creuser la tête T_T
Messages postés
41
Date d'inscription
jeudi 8 mai 2008
Statut
Membre
Dernière intervention
29 septembre 2009
7
0
Merci
Bon, après des jours et des jours de recherches et de reflexion, j'ai enfin trouvé !

Enfait, dans le code de mon formulaire figurais :
<form method="post" action="ajocomments.php?id_news=<?php echo $_GET['id_news']; ?>">


Ce qui rechargeais la page SANS la variable id_news.
Arrivée sur la page -> [...]niouses/comments.php?id_news=XX
Envoi des données (donc rechargement de la page) -> [...]niouses/comments.php

Voila pourquoi lorsque je faisait un $_GET, le champ restait 0 !

Merci de votre aide, tout de même