Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 15/07/2008, 12h19   #1
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
Par défaut Probléme de suppression dans la BDD

Salut,

Je suis entrain de créer un scripte de bloc-notes pour la partie admin d'un site, j'ai actuellement ce code, il me rajoute bien les donner dans ma BDD et les affichent bien mais quand je désire supprimer une donnée en cliquant sur la petite croix rouge, rien ne se passe et une page avec juste la couleur de mon background s'affiche....

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
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
 
 
<?php 
session_start();
include('./info_db.php');
 
?>
 
<h1>Le Bloc-notes</h1>
<center><a href="accueil-admin.html">Retour</a></center>
<div id="cadre_gauche">
<?php
 
if($_POST['texte'] )
{
   $texte = $_POST['texte'];
   $timestamp = intval($_POST['timestamp']);
   $pseudo = $_SESSION['pseudo'];
 
   $texte_protege = htmlspecialchars($texte);
 
   mysql_query("INSERT INTO bloc_notes VALUES('','$timestamp','$pseudo','$texte_protege')") or die(mysql_error());
}
 
 
if($_GET['supprimer_note'] AND $_GET['supprimer_note'] > 0)
{
   mysql_query("DELETE FROM bloc_notes WHERE id=" .intval( $_GET['supprimer_note'] ). "")or die(mysql_error());
   echo' La note a bien étè supprimé !';
 
}
 
 
$retour = mysql_query("SELECT * FROM bloc_notes ORDER BY id DESC") or die(mysql_error());
 
while($donnees = mysql_fetch_array($retour))
{  
?>
#<?php echo $donnees['id'];?> - Posté par <?php echo $donnees['pseudo'];?> le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']);?> <?php echo '<a href="bloc-note.html?supprimer_note=' . $donnees['id'] . '">'; ?><img src="./images/delete.png" alt="delete"/></a><br />
<?php echo $donnees['texte'];?><br />
 
<?php
}
 
?>
 
</div>
 
<div id="cadre_droite">
 
 
<form action="bloc-notes.html" method="post">
<p>
    <textarea name="texte" cols="50" rows="10">
    </textarea><br />
 
    <input type="hidden" name="timestamp" value="<?php echo time(); ?>" />
	<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo']; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
 
 
</div>
Le nom exacte de ma page est index.php?page=bloc_notes mais grace à l'url rewriting, elle s'appelle désormais bloc-notes.html
Cela ne fonctionnait déja pas lorsque l'url rewriting n'était pas mis en place...
Merci d'avance
+++
knellle
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 12h27   #2
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 383
Points : 16 383
As-tu controlé ce que contenait $_GET a la reception du formulaire ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2008, 12h29   #3
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
Que veux tu dire par là, je ne comprends par, montre moi un exemple stp
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 14h43   #4
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
J'ai peux étre compris, tu voudrais savoir se que vaux echo'$_GET['supprimer_note']'; et bien justement cela n'affiche rien... J'ai toujours une page avec juste le background...
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 14h55   #5
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 383
Points : 16 383
Heu si tu as vraiment ecrit ça et que ca n'affiche rien y'a un gros soucis parce que PHPistiquement c'est incorrect et tu devrais avoir une belle erreur en plein milieu
Code :
echo $_GET['supprimer_note']
ca sera mieux. Mais bon je suppose que tu l'avais bien écrit dans ton test

Mais commencer par ne pas faire ton url-rewriting parce que ca ajoute une couche de probleme supplementaire.
Ton code fonctionne chez moi en tout cas.

Tu as bien vérifié que ton lien se construit correctement ?
Tu as bien bloc-note.html?supprimer_note=une_valeur ?

Heu sinon c'est pas beau cette facon d'ouvrir et fermer le code php
Code :
1
2
3
4
5
while($donnees = mysql_fetch_array($retour))
{  
echo $donnees['id'] . ' - Posté par ' . $donnees['pseudo'] . ' le ' . date('d/m/Y à H\hi', $donnees['timestamp']) . '<a href="bloc-note.html?supprimer_note=' . $donnees['id'] . '"><img src="./images/delete.png" alt="delete"/></a><br />' . $donnees['texte']. '<br />';
 
}
C'est pas plus jolie ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 15h00   #6
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 42
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 42
Points : 12
Points : 12
je debute,
j'ai remarqué que tu passer ton formulaire en $_POST
et que tu passe des varriable en $_GET sa peut poser problème non ??
madmax57 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 15h03   #7
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
Oui dans mon texte c'était bien écrit

J'ai donc enlevé l'url en url rewriting pour la remettre en normal et donc maintenant quand je clique sur supprimer, j'ai toujours le même probléme...
J'ai l'adresse qui s'affiche dans ma barre d'adresse :

http://localhost/oha/admin/index.php...pprimer_note=8

J'ai vérifié et le chiffre change bien en fonction de l'id...
la couleur du background s'affiche aussi mais pas de suppression n'y de message de confirmation...
Voila mon 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
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
 
!--SECURISATION PAGE HEADER-->
<?php 
session_start();
include('./info_db.php');
if (isset($_SESSION['pseudo']))
{
?>
<!------------------------------------------------>
 
<h1>Le Bloc-notes</h1>
<center><a href="accueil-admin.html">Retour</a></center>
<div id="cadre_gauche">
<?php
 
echo $_GET['supprimer_note'];
 
if($_POST['texte'] )
{
   $texte = $_POST['texte'];
   $timestamp = intval($_POST['timestamp']);
   $pseudo = $_SESSION['pseudo'];
 
   $texte_protege = htmlspecialchars($texte);
 
   mysql_query("INSERT INTO bloc_notes VALUES('','$timestamp','$pseudo','$texte_protege')") or die(mysql_error());
}
 
 
if($_GET['supprimer_note'] AND $_GET['supprimer_note'] > 0)
{
   mysql_query("DELETE FROM bloc_notes WHERE id=" .intval( $_GET['supprimer_note'] ). "")or die(mysql_error());
   echo' La note a bien étè supprimé !';
 
}
 
 
$retour = mysql_query("SELECT * FROM bloc_notes ORDER BY id DESC") or die(mysql_error());
 
while($donnees = mysql_fetch_array($retour))
{  
?>
#<?php echo $donnees['id'];?> - Posté par <?php echo $donnees['pseudo'];?> le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']);?> <?php echo '<a href="index.php?page=bloc_notes?supprimer_note=' . $donnees['id'] . '">'; ?><img src="./images/delete.png" alt="delete"/></a><br />
<?php echo $donnees['texte'];?><br />
 
<?php
}
 
?>
 
</div>
 
<div id="cadre_droite">
 
 
<form action="bloc-notes.html" method="post">
<p>
    <textarea name="texte" cols="50" rows="10">
    </textarea><br />
 
    <input type="hidden" name="timestamp" value="<?php echo time(); ?>" />
	<input type="hidden" name="pseudo" value="<?php echo $_SESSION['pseudo']; ?>" />
    <input type="submit" value="Envoyer" />
</p>
</form>
 
 
</div>
 
<!--SECURISATION PAGE FOOTER-->
<?php	
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">	
<html>
   <head>
       <title>OHA - Redirection</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
	    <meta name="verify-v1" content="E/TkfHwf9xakNtKJZBFL0r67O1tVvEdkMS1ZxLzP2ZE=" />
 
 
	   <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./style_admin.css" />
 
	   <link rel="icon" type="image/x-icon" href="http://oha.shos.fr/images/favicon.ico" />
        <!--[if IE]><link rel="shortcut icon" type="image/x-icon" href="http://oha.shos.fr/images/favicon.ico" /><![endif]-->
 
 
   </head>
   <body>
 
        <center><div id="no_connect"><p>Vous n êtes pas connecté <br />
        <a href="connexion.html">Se connecter</a><br />
		<meta http-equiv="refresh" content="5;url=connexion.html"></p></div></center>
		<p id="redirec">Vous allez être re-dirigez vers la page de connexion dans 5 secondes</p>
 
 
</body>
</html>
 
<?php		
}
?>
Le code commenté "securisation" sert pour que seul les admins voient cette page.
Voila merci déjà pour ton aide

EDIT : @madmax57 : non pas du tout car le $_POST c'est pour entrer mes données dans la BDD tandis que le $_GET sert seulement à la suppresion, mais oui je peux faire un essai en transmetant les valeurs pour la suppression en $_POST même si on voit rarement ça ^^
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 15h11   #8
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 383
Points : 16 383
Il faut separer les variables par & dans le lien
Code :
'<a href="index.php?page=bloc_notes&supprimer_note='
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/07/2008, 21h04   #9
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
Merci beaucoup pour ton aide, j'ai vraiment fait une énorme étourderie
Cela fonctionne maintenant ^^
++++
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 08h43   #10
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 383
Points : 16 383
Héhé je l'ai repéré parce que ça m'est déjà arrivé
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2008, 09h27   #11
Invité de passage
 
Lycéen
Inscription : juillet 2008
Messages : 11
Détails du profil
Informations personnelles :
Âge : 20
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : juillet 2008
Messages : 11
Points : 4
Points : 4
Ok lol , maintenant je repérerais cette erreur aussi
knellle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h17.


 
 
 
 
Partenaires

Hébergement Web