$get action ne marche pas
Yougo120
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
Yougo120 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Yougo120 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux avoir la possibilité de supprimer un admin/ modo avec le bouton exclure mais lorsque j'appuis sur exclure, il y a cet url: http://localhost:8888/blog/admin/index.php?action=delete_admin&id=9 et rien ne se passe.
le code:
Je veux avoir la possibilité de supprimer un admin/ modo avec le bouton exclure mais lorsque j'appuis sur exclure, il y a cet url: http://localhost:8888/blog/admin/index.php?action=delete_admin&id=9 et rien ne se passe.
le code:
<h4>Admin / Modo à exclure</h4> <hr/> <!DOCTYPE html> <html> <head> <link href="/blog/admin/pages/bootstrap.css" type="text/css" rel="stylesheet"/> </head> <body> </body> </html> <?php try{ $db = new PDO('mysql:host=localhost;dbname=blog', 'root','root'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions global $db; }catch(Exception $e) { echo 'Problème: ' . $e->getMessage(); } try{ $select = $db->prepare("SELECT * FROM admins"); $select->execute(); }catch(Exception $e) { echo 'Problème: ' . $e->getMessage(); } while($s=$select->fetch(PDO::FETCH_OBJ)){ ?><div align="right"><div class="post"><br/> <h2><?php echo $s->name; ?></h2> <a href="?action=delete_admin&id=<?php echo $s->id; ?>">Exclure</a><br/><br/> <?php ?></div></div><?php }if(isset($_GET['action'])) { if($_GET['action']=='delete_admin'){ try{ $db = new PDO('mysql:host=localhost;dbname=blog', 'root','root'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions global $db; }catch(Exception $e) { echo 'Problème: ' . $e->getMessage(); } $id=$_GET['id']; $select = $db->prepare("DELETE FROM admins WHERE id=$id"); $select->execute(); ?> <?php } } ?>
A voir également:
- $get action ne marche pas
- Action - Guide
- Télécharger film d'action gratuitement et rapidement - Télécharger - TV & Vidéo
- Cette action ne peut pas être réalisée car le fichier est ouvert dans system - Guide
- Concurrent action - Guide
- Action fans - Accueil - Guide arnaque
1 réponse
Bonjour,
Je t'invite à lire et à appliquer le contenu de ces liens
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs#detecter-les-erreurs-dans-les-requetes
et :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Voici ton code "amélioré"
Je t'invite à lire et à appliquer le contenu de ces liens
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs#detecter-les-erreurs-dans-les-requetes
et :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
Voici ton code "amélioré"
<?php //---------------------------------------// //affichage des erreurs PHP //---------------------------------------// error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //---------------------------------------// //connexion à la bdd //---------------------------------------// try{ $db = new PDO('mysql:host=localhost;dbname=blog', 'root','root'); $db->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); // les noms de champs seront en caractères minuscules $db->setAttribute(PDO::ATTR_ERRMODE , PDO::ERRMODE_EXCEPTION); // les erreurs lanceront des exceptions global $db; }catch(Exception $e){ echo 'Problème: ' . $e->getMessage(); } //liste des admins try{ $select = $db->prepare("SELECT * FROM admins"); $select->execute(); }catch(Exception $e){ echo 'Problème: ' . $e->getMessage(); } //récupération PROPRE des variables AVANT de les utiliser $action = !empty($_GET['action']) ? trim($_GET['action'] ) : NULL; $id = !empty($_GET['id']) ? (int)$_GET['id'] : NULL ; if($action){ switch($action){ case 'delete_admin': if($id ){ $datas = array(':id'=>$id); try{ $prep = $db->prepare("DELETE FROM admins WHERE id= :id"); $res = $prep->execute($datas); }catch(Exception $e){ echo 'Problème: ' . $e->getMessage(); } }else{ $err = "Aucun ID à supprimer !"; } break; default: // si action ne correspond à aucun cas... $err = "Action $action inconnue !"; break; } } ?> <!DOCTYPE html> <html> <head> <link href="/blog/admin/pages/bootstrap.css" type="text/css" rel="stylesheet"/> </head> <body> <h4>Admin / Modo à exclure</h4> <hr/> <?php if(!empty($err)){ echo '<div class="error">'.$err.'</div>'; } while($s=$select->fetch(PDO::FETCH_OBJ)){ echo '<div align="right"> <div class="post"><br/> <h2>'. $s->name .'</h2> <a href="?action=delete_admin&id='.$s->id.'">Exclure</a> <br/><br/> </div> </div>'; } ?> </body> </html>
Tu as quoi à l'écran quand tu cliques sur ton lien ?
Quelle url apparait dans ton navigateur ?
http://localhost:8888/blog/admin/index.php?action=delete_admin&id=9
Essaye avec ce code et montre nous exactement ce que ça t'affiche