Bouton supprimer

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bouton supprimer

Re: Bouton supprimer

par AB » 20 févr. 2013, 00:33

Il faut utiliser la fonction quote de pdo pour les requêtes non préparées. Si tu tapes "quote pdo" dans google tu auras les bonnes réponses. Dans ton cas :
$sql = "DELETE FROM contact WHERE id = ".$bdd->quote($id)."";
Mais il ne faut pas mettre ce code dans une boucle (pourquoi faire ?)

Re: Bouton supprimer

par Taiyaki » 18 févr. 2013, 22:18

J'ai mit ça, désolé mais chuis totalement paumé. T___T
$id = intval($_POST['id_suppr']);// pour être certain de recevoir une valeur de bon type, on pourrait utiliser filter_input à la place

$sql = "DELETE FROM contact WHERE id = '($ip)'"; //...
}

Re: Bouton supprimer

par sam12 » 18 févr. 2013, 22:14

Vu que tu passes un intval dessus, je dirais pas besoin mais dans le doute tu peux faire 1 prepare (ou 1 quote) ;)

Re: Bouton supprimer

par Taiyaki » 18 févr. 2013, 22:08

Je met quoi alors ? =/

Re: Bouton supprimer

par sam12 » 18 févr. 2013, 22:03

Utilise pas mysql_real_escape_string avec PDO

Re: Bouton supprimer

par Taiyaki » 18 févr. 2013, 18:58

Merci beaucoup !! =D

J'ai essayé ceci :
<center><u>Support:</u></center><br />
<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO(--HOTE, NOM DE BASE, ID ET MDP--);
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}
 
// Si tout va bien, on peut continuer
 
// On récupère tout le contenu de la table jeux_video
$reponse = $bdd->query('SELECT * FROM contact');
 
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
if(isset($_POST['bouton'],$_POST['id_suppr']))
{

$id = intval($_POST['id_suppr']);// pour être certain de recevoir une valeur de bon type, on pourrait utiliser filter_input à la place

$sql = "DELETE FROM contact WHERE id = '".mysql_real_escape_string($id)."'";
//...
}
?>

    <p>
    <EM><?php echo $donnees['pseudo']; ?></EM>, dont l'ip est <EM><?php echo $donnees['ip']; ?></EM> et l'email est <EM><?php echo $donnees['email']; ?></EM> a post&#233; le <EM><?php echo $donnees['date']; ?></EM>
    &#224; <EM><?php echo $donnees['heure']; ?></EM> le message suivant : <br />
	<EM><?php echo $donnees['message']; ?></EM>
   <form name="form" method="post" action="">
   <input type="hidden" value="$donnees['id']" name="id_suppr">
        <input type="Submit" value="Supprimer" name="bouton">
</form><p>-----------
<?php
}
 
$reponse->closeCursor(); // Termine le traitement de la requête
 
?>
Erreur :

Code : Tout sélectionner

Warning: mysql_real_escape_string(): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /public_html/admin/index.php on line 50 Warning: mysql_real_escape_string(): A link to the server could not be established in /public_html/admin/index.php on line 50

Re: Bouton supprimer

par AB » 18 févr. 2013, 18:11

Dans ton formulaire il faudrait mettre un input de type "hidden" et qui ait pour valeur l'id du message à supprimer.

Ensuite, en admettant que aies nommé cet input "id_suppr" le code php pour effacer le message ressemblerait à
if(isset($_POST['bouton'],$_POST['id_suppr']))
{
$id = intval($_POST['id_suppr']);// pour être certain de recevoir une valeur de bon type, on pourrait utiliser filter_input à la place

$sql = "DELETE FROM contact WHERE id = '".mysql_real_escape_string($id)."'";
//...
}
Je t'ai donné l'exemple avec l'ancienne syntaxe, à toi de l'adapter à pdo

Bouton supprimer

par Taiyaki » 18 févr. 2013, 16:38

Salut all the world !
J'ai fait un système de contact basique sur mon site avec un panel d'admin TRES basique :
Image
Image

Le panel :
Image

La SQL :
Image

Le seul problème c'est que j'aimerais intégrer au panel d'admin un bouton supprimer. Qui supprime 1 message(ceui concerné). Il est apparent MAIS il ne marche pô. J'ai essayé pas mal de codes et je vous avoue que je ne comprends pas où est mon erreur. Donc bon j'ai tout effacé et je vous donné le code sans bug mais incomplet tel qu'il est actuellement :
<u>Support:</u><br />
<?php
try
{
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=[[HOTE]].net;dbname='[[DBNAME]]', '[[PSEUDO]]', '[[MDP]]');
}
catch(Exception $e)
{
    // En cas d'erreur, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
}
 
// Si tout va bien, on peut continuer
 
// On récupère tout le contenu de la table contact
$reponse = $bdd->query('SELECT * FROM contact');
 
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
    <p>
    <EM><?php echo $donnees['pseudo']; ?></EM>, dont l'ip est <EM><?php echo $donnees['ip']; ?></EM> et l'email est <EM><?php echo $donnees['email']; ?></EM> a post&#233; le <EM><?php echo $donnees['date']; ?></EM>
    &#224; <EM><?php echo $donnees['heure']; ?></EM> le message suivant : <br />
	<EM><?php echo $donnees['message']; ?></EM>
   <form name="form" method="post" action="">
        <input type="Submit" value="Supprimer" name="bouton">
</form></p>
<?php
}
 
$reponse->closeCursor(); // Termine le traitement de la requête
 
?>
Voilà, j'aimerais juste un p'tit coup d'main de la part d'un zentil môssieur pour pouvoir installer ce zouli bouton. T^T
Mârshi. :3