Switch php qui ne marche avec easy php 3.0

Résolu
sarki -  
 sarki -
Bonjour,
Je développe un site sous easyphp 1.6 et tout marche bien.

J'ai téléchargé la version de easy 3.0 et là problème: toutes les pages appellées grâce à un switch($action) me conduit à la page par défaut du swicht!
Par exemple, quand je clique sur le lien recherche.php?action=rechercher_ville&ville=paris pour avoir la liste des personnes qui résident à Paris, j'arrtéris sur la page par défaut rechercher.php (alorsd que sous easyphp 1.6 tout marche bien).
De même mes formulaires ne transmettent pas les données...

Veuiller m'aider!
Configuration: Windows Vista Internet Explorer 7.0

5 réponses

  1. le père
     
    Bonjour

    Peut-être une histoire de register_globals on ou off qui a évolué entre les deux versions.
    Peux-tu montrer le code avec lequel tu récupères les infos passées par URL ou par formulaire ?
    0
    1. sarki
       
      $requet_resume_o_secteur = "SELECT id,COUNT(id) AS Nombre_o_secteurs,secteur FROM offre WHERE statut = '1' AND secteur NOT LIKE '%Autre%' GROUP BY secteur"; //LIMIT 10
      if ((!$result_resume_o_secteur = mysql_query($requet_resume_o_secteur))){
      echo ""; // ne rien affiché en cas de problème de connexion
      }else{
      echo "<b>Par secteur</b><br>";
      While ($row = mysql_fetch_row($result_resume_o_secteur)){
      $id_o = $row[0];
      $nbr_o_s = $row[1];
      $secteur_o = stripslashes($row[2]);
      echo "<a href=\"recherche.php?action=liste_offres§eur=$secteur_o\"><font color=#008888>$secteur_o ($nbr_o_s)<br></font></a>";
      } }


      Voici le switch de recherche.php

      switch ($action) {
      case "rechercher_offre":
      $page_title = " - Rechercher une demande";
      include ('header.php');
      echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
      //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
      blok_rechercher_offre();
      //echo "</td></tr></table>";
      break;
      case "resultat_offre":
      $page_title = " - Résultat de la recherche";
      include ('header.php');
      echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
      //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
      resultat_offre();
      echo "<br>";
      blok_rechercher_offre();
      //echo "</td></tr></table>";
      break;
      case "liste_offres":
      $page_title = " - Résultat de la recherche";
      include ('header.php');
      echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
      //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
      resultat_menu_offre();
      echo "<br>";
      blok_rechercher_offre();
      //echo "</td></tr></table>";
      break;
      default :
      $page_title = " - Rechercher une offre ou une demande d'emploi";
      include ('header.php');
      echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
      //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
      //blok_rechercher_offre();

      echo "<table align=\"center\" height=\"20\" width=\"100%\" style=\"border-width:0; border-color:#FFFFFF; border-style:solid;\">".
      "<tr><td align=\"left\"><A href=\"recherche.php?action=rechercher_offre\"><img src=\"images/rechercher_offre.png\" border=\"0\" alt=\"Rechercher une offre d'emploi\"></a></td>".
      "<td align=\"left\"><A href=\"recherche.php?action=rechercher_demande\"><img src=\"images/rechercher_demande.png\" border=\"0\" alt=\"Rechercher une demande d'emploi\"></a>".
      "</td></tr></table>";
      //echo "</td></tr></table>";

      }
      0
  2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    Sans ton script ...
    0
  3. sarki
     
    Voici par exemple le scrip qui permet d'afficher les offres d'emploi par secteur d'activité avec un lien sur chaque secteur qui conduit au moteur de recherche (recherche.php) qui n'afichera que les offres de ce secteur

    $requet_resume_o_secteur = "SELECT id,COUNT(id) AS Nombre_o_secteurs,secteur FROM offre WHERE statut = '1' AND secteur NOT LIKE '%Autre%' GROUP BY secteur"; //LIMIT 10
    if ((!$result_resume_o_secteur = mysql_query($requet_resume_o_secteur))){
    echo ""; // ne rien affiché en cas de problème de connexion
    }else{
    echo "<b>Par secteur</b><br>";
    While ($row = mysql_fetch_row($result_resume_o_secteur)){
    $id_o = $row[0];
    $nbr_o_s = $row[1];
    $secteur_o = stripslashes($row[2]);
    echo "<a href=\"recherche.php?action=liste_offres&secteur=$secteur_o\"><font color=#008888>$secteur_o ($nbr_o_s)<br></font></a>";
    } }

    Voici le switch de recherche.php

    switch ($action) {
    case "rechercher_offre":
    $page_title = " - Rechercher une demande";
    include ('header.php');
    echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
    //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
    blok_rechercher_offre();
    //echo "</td></tr></table>";
    break;
    case "resultat_offre":
    $page_title = " - Résultat de la recherche";
    include ('header.php');
    echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
    //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
    resultat_offre();
    echo "<br>";
    blok_rechercher_offre();
    //echo "</td></tr></table>";
    break;
    case "liste_offres":
    $page_title = " - Résultat de la recherche";
    include ('header.php');
    echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
    //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
    resultat_menu_offre();
    echo "<br>";
    blok_rechercher_offre();
    //echo "</td></tr></table>";
    break;
    default :
    $page_title = " - Rechercher une offre ou une demande d'emploi";
    include ('header.php');
    echo "<br><div id=\"contenu\">"; // !!!!!!!!!!!!!!fin de div contenu: voir footer.php
    //echo "<table align=\"center\" height=\"20\" width=\"70%\" style=\"border-width:1; border-color:#FF9900; border-style:solid;\"><tr><td width=\"50%\">";
    //blok_rechercher_offre();

    echo "<table align=\"center\" height=\"20\" width=\"100%\" style=\"border-width:0; border-color:#FFFFFF; border-style:solid;\">".
    "<tr><td align=\"left\"><A href=\"recherche.php?action=rechercher_offre\"><img src=\"images/rechercher_offre.png\" border=\"0\" alt=\"Rechercher une offre d'emploi\"></a></td>".
    "<td align=\"left\"><A href=\"recherche.php?action=rechercher_demande\"><img src=\"images/rechercher_demande.png\" border=\"0\" alt=\"Rechercher une demande d'emploi\"></a>".
    "</td></tr></table>";
    //echo "</td></tr></table>";

    }

    Ainsi, le problème c'est que c'est le switch "defaut" qui est affiché quelque soit la valeur prise par la variable $action
    0
  4. le père
     
    D'où vient ta variable $action? as-tu quelque part $action= $_GET['action'] ?
    0
    1. sarki
       
      Salut!

      D'abord merci. Effectivement, le problème semble venir du fait que je n'ai pas $_GET['action'] ou $_post['$action'] dans recherche.php (sur un autre forum, j'ai vu quelqu'un qui avait un problème similaire et cela a été la solution https://codes-sources.commentcamarche.net/ )
      Je vais tester et vous dire.

      merci encore!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. le père
     
    les anciennes versions de PHP extrayaient automatiquement les variables du genre $_GET['qqchose'] ou $_POST['qqchose'] et créaient la variable $qqchose. Les anciens scripts utilisaient cette fonction naturellement.

    Mais ceci posait des problèmes de sécurité et avec les versions plus récentes, il faut faire soi même 'à la main'
    $qqchose=$_GET['qqchose'];
    ou
    $qqchose=$_POST['qqchose'];
    (selon que la variable vient d'une URL ou d'une méthode POST)
    Il faut le faire pour chaque variable récupérée.
    0
    1. sarki
       
      ça marche !!

      Merci infiniment!
      0