PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 02-07-2010 11:14:43

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Mon switch ne fonctionne pas

Bonjour,
J'ai un formulaire "gestion news" qui s'affiche, mais en appuyant sur le bouton "modifier news" ou "supprimer news", le bouton "est mort"
Pour tester, jai mis un écho aprus mes cases modifier et supprimer, il ne me renvoie rien, aucun écho.

Quelqu'un peut-il m'aiguiller, svp   merci







switch($_POST['mode'])
  {
      case "modif" :
      if (isset($_POST['titre']) && isset($_POST['idpost'])
      && isset($_POST['idnews']) )
      {
        $lib = "description".$_POST['idpost'];
        /* requête SQL permettant la modificaiton de la news */
        $sql = "update tblnews set titre = '".$_POST['titre']."',
         description = '"
.$_POST[$lib]."'
         where id = "
.$_POST['idnews']."";
       
        if (!($r_sql = mysql_query($sql))) $chaine_html .= "CODE
        ERREUR 00001 :: Impossible de modifier la news.
        <br/>Cliquez <a href=\"javascript:history.back();\">
        ici</a> pour retourner à la page de Gestion des
        News.<br/>"
;
        else
        {
          $chaine_html = "Votre news a bien été modifiée.<br/>
          Cliquez <a href=\"index.php\">ici</a> pour vous rendre
          en index de l'interface d'administration."
;
        }
      }
      else $chaine_html .= "CODE ERREUR 0002 :: Des variables
      sont manquantes.<br/>
      Cliquez <a href=\"gestionNews.php\">ici</a> pour
      retourner sur la page de Gestion des News."
;
     
      break;
     
      case "suppr" :
      if ( isset($_POST['idnews']) )
      {
        /* requête SQL permettant la suppression de la news */
        $sql = "delete from tblnews
                where id = "
.$_POST['idnews']."";

        if (!($r_sql = mysql_query($sql))) $chaine_html .= "CODE
        ERREUR 00004 :: Impossible de supprimer la news.
        <br/>Cliquez <a href=\"javascript:history.back();\">
        ici</a> pour retourner à la page de Gestion des
        News.<br/>"
;
        else
        {
          $chaine_html = "Votre news a bien été supprimée.<br/>
          Cliquez <a href=\"index.php\">ici</a> pour vous rendre
          en index de l'interface d'administration."
;
        }
      }
      else $chaine_html .= "CODE ERREUR 0003 :: Des variables
      sont manquantes.<br/>
      Cliquez <a href=\"gestionNews.php\">ici</a> pour
      retourner sur la page de Gestion des News."
;
      break;
     
      default : break;
  }
 
}

Dernière modification par zizanie (02-07-2010 11:15:36)

Hors ligne

#2 02-07-2010 11:57:22

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Mon switch ne fonctionne pas

Mets un echo dans ton case default, tu verras tout de suite s'il s'agit d'un problème de variable ou non.

Hors ligne

#3 02-07-2010 12:27:29

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas

je l'avais fait aussi, aucune réponse merci

Hors ligne

#4 02-07-2010 13:23:11

mcAllan
Mowdérateur
Lieu : Châteaurenard en Provence
Inscription : 08-05-2009
Messages : 269

Re : Mon switch ne fonctionne pas

Salut,

print_r ($_POST);

avant le "switch", tu verras bien ce que tu récupère du formulaire...

A+


Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop

Hors ligne

#5 02-07-2010 13:53:18

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas


<?php
session_start();
require "../include/connecte.mysql.php";
require "../include/FCKEditor/fckeditor.php";
require "../include/News.class.php";

$news = new News;
$chaine_html ="";

if (!(isset($_SESSION['niveau'])) && ($_SESSION['niveau'] != 1) && !(isset($_POST['mode'])))

      {
    header("location : http://localhost/news/admin/index.php");
    }
   elseif ($_SESSION['niveau']  == 1 &&!(isset($_POST['mode'])))
    {
  $chaine_html = "vous êtes connectés, en tant que <i>".$_SESSION['pseudo']."</i><br/><ul id=\"menuadmin\">\n
  <li><a href=\"index.php\"></a>Index</li>\n
    <li><a href=\"ajouterNews.php\">Ajouter une nouvelle</a></li>\n
    <li><a href=\"gestionNews.php\">Gerer les nouvelles</a></li>\n
   </ul>\n"
;
   if (!isset($_GET['page'])) $page = 0;
   else $page = $_GET['page'];
   $news ->listeNews($page);
   $t_news = $news -> listeNews;
   $s_pag = htmlpagination($news->compterNews(),"gestionNews.php");
   $chaine_html =$s_pag;
   $chaine = htmllisteNews($t_news);
   if($chaine===false)
          {$chaine_html .="code erreur Impossible de créer la liste de news";}
      else $chaine_html .=$chaine;
    }
   elseif ($_SESSION['niveau']  == 1 && $_POST['mode']!= "")
     {
     

   switch ($_POST['mode'])
        {
   case "modif" :
 
   if (isset($_POST['titre']) && isset($_POST['idpost']) && isset ($_POST['idnews']))
      {
     $lib = "description" .$_POST['idpost'];
 
   
   
$sql = "update tblnews set titre = '".$_POST['titre']."',description= '".$_POST[$lib]."' where  id= ".$_POST['idnews']."";
   if(!($r_sql = mysql_query($sql)))
       {
   $chaine_html .="je ne peux pas modifier la news<br/>
   cliquez<a href=\"javascript:historyback();\">ici</a>"
;
   }
   else
   {
   $chaine_html = "Votre news a bien été modifiée<br/>
   retournez à l'administration <a href=\"index.php\">index</a>"
;
   }
   }
   else
  $chaine_html .="Manque paramètres<br/>retour à gestion<a href=\"gestionNews.php\">gestion news</a>";
  break;
 
    case "suppr" :
   
   if (isset($_POST['idnews']))
              {
      $sql = ("DELETE FROM tblnews WHERE id=" . $_POST['idnews']."");
    if(!($r_sql = mysql_query($sql)))
    {
   $chaine_html="je ne peux pas supprimer la news<br/>
   cliquez <a href=\"javascript:historyback();\"> ici</a>"
;
       }
  else
  {
   $chaine_html ="c'est bien, votre news a bien été supprimée<br/>
   retournez à l'administration <a href=\"index.php\">index</a>"
;
   }
                }
   else
   $chaine_html .="manque paramètres<br/>< retour à gestion news<a href=\"gestionNews.php\">gestion news</a>";
    break;
   default : echo 'un';
   break;
   
 
       
   }
}
function htmllisteNews($t_news)
{
$nb_par_page = 3;
$tmp = "";
$description = "";
$sBasePath = "../include/FCKEditor/";
$tmp .= "<div id=\"htmlListeNews\">\n";
for ($i=0;$i<$nb_par_page;$i++)
   {
 
if (isset($t_news[$i]['titre']))
    {

$description = $t_news[$i]['description'];
$oFCKeditor = new FCKeditor('description'.$i);
$oFCKeditor->BasePath = $sBasePath;
$oFCKeditor->Height = 300;
$oFCKeditor->ToolbarSet = 'nicowebToolbar';


 $oFCKeditor->Value = $description;
   $s_fck = $oFCKeditor->CreateHtml();
 $tmp .="
 <div class=\"cadreNews\">\n
     <h3>News n°"
.$i."</h3>
     <form name=\"fgestionnews"
.$i. "\" action=\"#\" method=\"post\">\n
     <div class=\"ligne\">
       <label for=\"titre\">Titre : </label>
        <input type=\"text\" id=\"titre\" maxlength=\"250\" name=\"titre\" value= \""
.$t_news[$i]['titre']."\"/>
     </div>
     <div class=\"ligne\">"
.$s_fck."</div>
     <div class=\"ligneBouton\">
      <label for=\"modif\">Modifier : </label>
      <input type=\"button\" class=\"bouton\" name=\"modif\"  value=\"modifier la news\" onClick=\"document.getElementById('mode"
.$i."') value='modif';
document.fgestionNews"
.$i." submit();\"/>
    </div>  
     <div class=\"ligneBouton\">
      <label for=\"suppr\">Supprimer : </label>
      <input type=\"button\" class=\"bouton\" name=\"suppr\"  value=\"supprimer la news\"  
      onClick=\"document.getElementById('mode"
.$i."') value='suppr';
document.fgestionNews"
.$i." submit();\"/>
    </div>
     <input type = \"hidden\" name=\"idpost\" value=\""
.$i."\" />
       <input type = \"hidden\"  name=\"idnews\" value=\""
.$t_news[$i]['id']."\" />
       <input type = \"hidden\"  name=\"mode\" id=\"mode"
.$i."\" value=\" \" />
     
       
       </form>\n
  </div>"
;
   }
   }
  $tmp .= "</div>\n";
 
  if($tmp == "") return false;
  else return $tmp;
    }
     
function htmlpagination($nb_res,$url)
 {
 $nb_par_page = 3;
$nb_page = (int)$nb_res/$nb_par_page;
$temp ="<div id=\"cadrePagination\">\n";

for ($i = 0; $i<$nb_page; $i++)
{
$temp .= "<a href =\"".$url."?page =".$i."\"> page".$i."</a>\n";
}
$temp.= "</div>\n";
if($temp == "") return false;
  else return $temp;
  }
 

?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title> gerer news</title>
<link rel="stylesheet" type="text/css" href="css/admin.css" />
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>

<?php echo($chaine_html); ?>

</body>
</html>

 

   







Rien de neuf à l'horizon, j'ai toujours mes formulaires avec les nouvelles qui s'affichent mais impossible de supprimer ou modifier. J'ai mis le code complet de ma syntaxe de la page afficher news

Dernière modification par zizanie (02-07-2010 14:03:41)

Hors ligne

#6 02-07-2010 14:20:15

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Mon switch ne fonctionne pas

elseif ($_SESSION['niveau']  == 1 &&!(isset($_POST['mode'])))

Essayes avec un empty plutôt qu'un isset.
Et comme on te l'a demandé fait un print_r() de ta variable...
Sacrebleu on débug pas avec une boule de cristal sur ce forum.

Dernière modification par xTG (02-07-2010 14:21:23)

Hors ligne

#7 02-07-2010 16:30:11

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas

J'ai fait le print puisque j'ai répondu qu'il n'y avait rien de neuf à l'horizon....
Quant à ta solution, cela ne fonctionne pas plus

Dernière modification par zizanie (02-07-2010 16:31:54)

Hors ligne

#8 02-07-2010 16:49:17

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Mon switch ne fonctionne pas

Disons que ta réponse était loin d'être explicite... On tombe tous les jours sur des débutants qui prennent nos conseils de débug comme une perte de temps.
Et on se retrouve avec des topics de plusieurs messages alors que la réponse se trouvait être mise en relief dès le second post.

Donc je vais repasser le topic au clair.
Es-tu sûr d'arriver dans le bon if ?
Si c'est le cas on s'occupera du switch, mais en attendant je ne suis même pas sûr du fait de tes explications.

Cordialement.

Hors ligne

#9 02-07-2010 16:57:07

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Mon switch ne fonctionne pas

Bonjour,

Désolé j'ai pas le temps de regarder ton code initial en détail, enfin juste assez pour voir pas mal d'approximations, du style


if (....) {$chaine_html="...";} else {$chaine_html.="...";} // code erroné.
if (...) {$chaine_html="...";}else{$chaine_html="...";} // code correct.

$sql = "update tblnews set titre = '".$_POST['titre']."', description = '".$_POST[$lib]."' where id = ".$_POST['idnews'].""; // Code erroné
$sql = "update tblnews set titre='".$_POST['titre']."', description='".$_POST[$lib]."' where id = '".$_POST['idnews']."'"; // Code correct.
...
 

Je te propose au moins avant de poster ici pour un debuggage fonctionnel, que ton débuggage syntaxique soit fait.
Merci pour ta compréhension.

PS: Si tu postes pour un debbugage syntaxique, suffit de le dire, et on te proposera d'installer un editeur PHP sur ta machine.

Cordialement, Jc


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#10 02-07-2010 16:57:20

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas

Si tu veux voir en live :
www.atelierpassion.123.fr
dans la barre google /admin/index.php
michelle
retired
tu rafraîchis la page (oui...bon je sais) et tu vas sur gestionNews.php




Je vais faire un écho aux if et aux else pour voir

Dernière modification par zizanie (02-07-2010 16:57:45)

Hors ligne

#11 02-07-2010 17:00:04

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas

@jc je vais voir cela en détai, merci.

Hors ligne

#12 02-07-2010 17:17:18

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Mon switch ne fonctionne pas

Je pense avoir trouvé.
Tout simplement que certains codes javascript ne sont pas bon.
cf :

document.getElementById('mode0') value='suppr';

Il manque un point avant value, et il semble que tous tes autres lignes soient du même acabit.

En voyant cela je me dit que la variable $_POST ne contient pas de variable mode correcte et que donc tu n'as pas correctement vérifié ce que tu recevais...
Si c'est bien cela on aura un topic de plus qui rentrera dans le compte de ce que j'ai déjà cité. smile

Dernière modification par xTG (02-07-2010 17:18:44)

Hors ligne

#13 02-07-2010 17:56:42

zizanie
Membre
Inscription : 28-06-2010
Messages : 7

Re : Mon switch ne fonctionne pas

EXACTLY xTG
mERCI. tU AS TROUVE juste à temps, les petits-enfants arrivent
Merci à tous;)

Hors ligne

Pied de page des forums