Switch php qui ne marche avec easy php 3.0

Résolu/Fermé
sarki - 24 déc. 2009 à 12:47
 sarki - 24 déc. 2009 à 16:10
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!
A voir également:

5 réponses

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
$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
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 505
24 déc. 2009 à 14:07
Sans ton script ...
0
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§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>";

}

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
D'où vient ta variable $action? as-tu quelque part $action= $_GET['action'] ?
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
ça marche !!

Merci infiniment!
0