Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2011, 18h08   #1
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Par défaut Problème de suppression des commentaires dans mon systeme de news

Bonjour,

je n'arrive pas à mettre en place un système de suppression de commentaires.
J'ai le droit à ce message d'erreur que je n'arrive pas à résoudre.
Voilà le code :
Code :
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
							    <?php
 
 
		$id=$_GET['id'];
 
	$sql="SELECT * FROM news WHERE id=$id";
	$req = mysql_query($sql) or die(mysql_error());
 
	$data=mysql_fetch_assoc($req);
 
		echo "<p>SUJET NEWS <br> <br> {$data["titre"]} -- ";
		echo "<p> {$data["contenu"]} </p>";
		echo "<p align\"right\">".date("j/n/Y G:i",strtotime($data["date"]))."</p>";;
 
 
 
	$sql2="SELECT * FROM comment WHERE news_id=$id ORDER BY id ASC";
	$req2 = mysql_query($sql2) or die(mysql_error());
 
	while($data2=mysql_fetch_assoc($req2))
	{
 
 
		echo "------------ <br>"; 
		echo "<p> Pseudo : {$data2["pseudo"]} </p>";
		echo" <p> Commentaire : <br>{$data2["contenu"]} </p>";
		echo " <a href=\"supprcom.php?id={$data2["id"]} \">x</a>";
		echo "------ <br>";
 
	}
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
session_start();
require("auth.php");
 
 
 
	if(Auth::isLogged())
	{
 
	}
	else
	{	
		header('location:../index.php');
	}	
 
	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	mysql_select_db(DB_BDD);
	$sql = "DELETE FROM comment WHERE id={$_GET["id"]} and news_id={$_GET["news_id"]} ";
	$req = mysql_query($sql) or die(mysql_error());
	header("location: gestionnews.php");
// AND id={$_GET["id"]}	
?>

Voilà mes tables

comments :
Citation:
id
pseudo
mail
contenu
news_id
news :
Citation:
id
image
titre
contenu
date
Et voilà mon message d'erreur :


Citation:
Notice: Undefined index: news_id in F:\EasyPHP 3.0\www\psg test\admin\supprcom.php on line 19
Erreur de syntaxe pr�s de '' � la ligne 1
Je ne sais pas non plus comment faire pour faire passer l'id du commentaire pour supprimer un commentaire et pas tous d' une même news.


Merci d'avance !
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h27   #2
Membre régulier
 
Avatar de Stopher
 
Homme christophe de saint leger
Responsable de service informatique
Inscription : juin 2004
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme christophe de saint leger
Âge : 26
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : juin 2004
Messages : 105
Points : 82
Points : 82
Envoyer un message via MSN à Stopher Envoyer un message via Skype™ à Stopher
Salut ,

Pourquoi tu mets des {}

De plus ton code est sujet aux injections sql

Essaye plutôt comme ça :

Code :
1
2
3
4
5
6
7
8
$sql = "
    DELETE FROM 
        comment 
    WHERE 
        comment.id=".intval(mysql_real_escape_string($_GET["id"]))." 
    AND
        comment.news_id=".intval(mysql_real_escape_string($_GET["news_id"]))." 
    LIMIT 1";
Ch.
__________________
Lindev.fr
Stopher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 18h34   #3
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
Cela ne fonctionne toujours pas.
Je mets des {} car sinon cela ne fonctionne pas dans cette page par exemple cela ne fonctionne pas sinon.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
session_start();
require("auth.php");
 
 
 
	if(Auth::isLogged())
	{
 
	}
	else
	{	
		header('location:../index.php');
	}	
 
	mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
	mysql_select_db(DB_BDD);
	$sql = "DELETE FROM news WHERE id={$_GET["id"]}";
	$req = mysql_query($sql) or die(mysql_error());
	header("location: gestionnews.php");
 
?>
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 20h15   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si tu ne tiens pas compte de ce qu'on te dit, on ne va pas avancer vite :
Code :
$sql = "DELETE FROM comment WHERE id=" . intval($_GET["id"]);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2011, 20h58   #5
Nouveau Membre du Club
 
Inscription : juillet 2010
Messages : 196
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 196
Points : 25
Points : 25
J'ai essayé en changeant et ça ne marchait plus c'est out ce que je disais
Ensuite j'ai essayé ton code et cela fonctionne donc merci.
En ce qui concerne la sécurité des injections SQL je vais me renseigner mais peut être aurais tu un tuto complet à me conseiller ?

Merci d'avance et merci à tout les deux !
polux31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h05.


 
 
 
 
Partenaires

Hébergement Web