$get action ne marche pas
Yougo120
Messages postés
24
Statut
Membre
-
Yougo120 Messages postés 24 Statut Membre -
Yougo120 Messages postés 24 Statut Membre -
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
- 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
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Get data back - Télécharger - Récupération de données
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
<?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; charset=utf8', '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(); } //le temps des tests : echo "Variables GET<br><pre>"; print_r($_GET); echo "</pre>"; //-----------------------------------------------// //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 ; //-----------------------------------------------// // TRAITEMENTS //-----------------------------------------------// 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; } } //-----------------------------------------------// //liste des admins //-----------------------------------------------// try{ $select = $db->prepare("SELECT * FROM admins"); $select->execute(); }catch(Exception $e){ echo 'Problème: ' . $e->getMessage(); } ?> <!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>