Modification script PHP existant

Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 19 juin 2008 à 08:30
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 23 juin 2008 à 15:10
Bonjour,

voila j'ai besoin de modifier un script PHP qui récupére une liste de commerces selon la ville,le code postal ou le département rentrée par le visiteur. A l'heure actuel ce script fonctionne parfaitement mais si j'ai bien compris il utilise la methode $_GET pour récuperer les valeurs dans l'URL formaté comme suite :

www.toto.fr/store/search.php?type_recherche=detail&search_init=1&c_p=&city=Paris&store=


Mais moi je voudrais pouvoir utiliser ce script sur une autre page avec une URL formaté différement du style :

www.toto.fr/buy/achat-truc_chose_machin_bidule_chouette_other-Paris--1_2_3_4_5_elements-1_2-1_22-2_0_0_0_0_px-page_1.php


evidement cela ne fonctionne pas pour le moment et comme cela fait deux semaines que je me bats, je n'ai plus d'idée .

Avez vous une idée?

Merci beaucoup

Voila le script :

<?php
/* 
 * Résultat  recherche 
 */

require_once('toto.php');
require_once( 'titi.phps');
require_once( 'tutu.php');
require_once(. tuti.php');
require_once( 'tito.php');
require_once('pou.php');
require_once( 'yuo.php');
require_once( 'lph.php');
require_once( 'sdfgh.php');
require_once( 'kdhdodui.php');
require_once( 'ourhfj.php');
require_once( 'bchddssksk.php');

session_read();

$sql_where = get_condition_recherche_search();
$count_recherche = nb_seller_recherche($sql_where);

//cherche les resultats
/*$sql_select_limit = " ORDER BY poids DESC, uid LIMIT " . MAX_RESULT_PAGE;
if (isset($_GET["jump"]) && is_numeric($_GET["jump"])){
	$sql_select_limit .= " OFFSET " . ((intval($_GET["jump"]) - 1) * MAX_RESULT_PAGE);
} else{
	$_GET["jump"] = 1;
}*/

if (!isset($_GET["tri"])) {
	$sql_select_limit = " ORDER BY poids DESC, uid LIMIT " . MAX_RESULT_PAGE;
} else {
		switch ($_GET["tri"]) {
		case 'cp':
			$sql_select_limit = " ORDER BY code_postal LIMIT " . MAX_RESULT_PAGE;
			break;
		case 'v':
			$sql_select_limit = " ORDER BY nom_ville, code_postal";
			break;
		case 'ag':
			$sql_select_limit = " ORDER BY nom_seller, code_postal";
			break;
	}
}

if (isset($_GET["jump"]) && is_numeric($_GET["jump"])){
	$sql_select_limit .= " OFFSET " . ((intval($_GET["jump"]) - 1) * MAX_RESULT_PAGE);
} else{
	$_GET["jump"] = 1;
}

//calcul du decallage en fonction du jour de l'année
$day = date("z"); // day in year
if ($count_recherche == 0) {
	$decal = 0;
} elseif ($count_recherche < $day) {
	$decal = $day % $count_recherche;
} else {
	$decal = $count_recherche % $day;
}

$sql_select = "Grosse requête SQL " .
$sql_where . " ORDER BY seller.uid ";

$tr =& new Transaction();
$tr->execute("(SELECT 2 AS poids, " . $sql_select . " OFFSET " . $decal . ") UNION (SELECT 1 AS poids, " . $sql_select . " LIMIT " . $decal . ") " . $sql_select_limit);

//construction de la liste des commerces à afficher
$liste_commerce = new ListeCommerces();

for ($i = 0; $i < $tr->numrows(); $i++){
	$commerces = $tr->fetch_array($i);
	$commerce["pos"] = (($i + 1) + (($_GET["jump"] - 1) * MAX_RESULT_PAGE)); //position dans la recherche

	$commerces["activites"] = getActivitesCommerces($commerces["uid"]);

	$liste_commerces->append(new Commerces($commerces));
}

session_write();

require_once('jfhfuf.phps');
require_once('header.phps');
require_once('menu.phps');

require_once('search_res.phps');


$show_page_nr = true; 
require('search/navig_liste.php');

//verification des paramètres pour essayer de savoir d'ou l'on vient
$from_where = "default";
require('look_url.php');
		
		
 //
require(tri_commerces.php');


affiche_liste_resultat($liste_commerces, default.php');


$show_page_nr = false;
require(search/navig_liste.php');


require_once('footer.php');
require_once('close.php');

?>
A voir également:

3 réponses

Taxiarque Messages postés 63 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 22 juillet 2009 10
19 juin 2008 à 09:56
Coucou Pcsystemd,

Je ne comprend pas trop ton soucis.
Tu n'arrives pas à utiliser la méthode $_GET ou bien tu ne sais pas comment faire passer tes variables d'une page à l'autre?

Pour la méthode $_GET c'est simple,
Il faut que le lien de ta page soit comme ceci :
www.nom_de_ta_page.php

Quand tu y appliques la méthode $_GET, il faut que l'url de ta page soit de la forme :
www.nom_de_ta_page.php?var1=blabla&var2=bloblo

Le ? indique que tu passes en $_GET.

Tu ne vas rien d'autre que sur www.nom_de_ta_page.php mais avec les variables var1 et var2

Pour les récupérer dans ta page il suffit d'y rajouter à un endroit que tu veux :
<?php 
$variable1 = $_GET['var1'];
$variable2 = $_GET['var2'];
?>


Le lien que tu as fait par toi même n'est en faite qu'une seule page et ça sera donc galère si tu veux faire passer les paramètres comme ça. Là tu procèdes page par page donc tu peux avoir des milliers de résultats, alors imagines le travail colossal... :P
Personnellement, en faisant passer les paramètres avant le .php, je doute que tu puisses y arriver surtout si tu veux gagner du temps ^_^
Par contre si c'est pour faire passer pseudo et mot de passe je te conseille la méthode $_POST, car imagines si ton pseudo et mot de passe étaient affichés dans l'url :P

J'espère avoir été assez clair pour répondre à ton soucis

Bon courage
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
19 juin 2008 à 13:24
Merci pour tes informations,

mais la est justement mon souci comme j'ai expliqué plus haut je souhaite insérer ce script dans une page déjà existante . Cette page doit s'afficher apres avoir saisie les données dans un formulaire et avoir cliquer sur le bouton submit hors quand la page du résultat s'affiche, l'url de la page est la suivante :

www.toto.fr/buy/achat-truc_chose_machin_bidule_chouette_other-Paris--1_2_3_4_5_elements-1_­2-1_22-2_0_0_0_0_px-page_1.php

donc je ne peux plus recuperer les valeurs par $_GET.

Merci encore
0
Taxiarque Messages postés 63 Date d'inscription lundi 24 septembre 2007 Statut Membre Dernière intervention 22 juillet 2009 10
19 juin 2008 à 14:10
Tu as mis quelle url dans l'action de ton form?

A la rigueur mets tes variables en $_SESSION si ça ne marche pas.
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
19 juin 2008 à 16:25
J'ai tenté avec $_SESSION mais cela ne fonctionne pas il ne me récupére pas la ville . Je précise que je débute en PHP . Y a t -il un moyen de récupérer le champ Paris dans l'url suivante :

www.toto.fr/buy/achat-truc_chose_machin_bidule_chouette_other-Paris--1_2_3_4_5_elements-1_­­2-1_22-2_0_0_0_0_px-page_1.php

Merci
0
bibs37 Messages postés 71 Date d'inscription mardi 12 septembre 2006 Statut Membre Dernière intervention 17 septembre 2008 5
19 juin 2008 à 16:40
si tu arrive à récupérer la chaine : 'achat-truc_chose_machin_bidule_chouette_other-Paris--1_2_3_4_5_elements-1_­­­2-1_22-2_0_0_0_0_px-page_1.php'

tu fait un explode dessus :
$res = explode  ('_', $machaine);
echo $res[5];


par contre tu récupéra : 'other-Paris--1' , il faudra encore parcourir cette chaine pour extraire paris...
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 juin 2008 à 15:10
Merci je vais essayer.
0