Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
755 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  question adressage menu

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question adressage menu

n°1457587
Fazer916
y en a marre
Posté le 15-10-2006 à 17:47:30  profilanswer
 

je developpe un site avec un menu, chaque bouton dirige grace a la commande <A HREF> </A> vers une nouvelle page
quand je me deplace sur le site, l'adresse de chaque page est de la forme www.monsite.com/page2.php
j'ai lu qu'il etait possible/preferable/obligatoire(?) d'avoir des adresses de type www.monsite.com/page?=page2 ou qqe chose de ce type
 
je ne comprend pas comment obtenir ce type d'adresse, pouvez vous m'eclairer  ?
 
merci

mood
Publicité
Posté le 15-10-2006 à 17:47:30  profilanswer
 

n°1457588
dwogsi
Défaillance cérébrale...
Posté le 15-10-2006 à 17:52:51  profilanswer
 

Bonjour,
je ne vois pas en quoi c'est préférable... Mais si tu y tiens vraiment :
http://fr.php.net/include
http://fr.php.net/require
 
Eventuellement :
http://www.google.fr/search?hl=fr& [...] %3Dlang_fr
 
Sinon ya toujours l'url rewriting aussi :
http://www.google.fr/search?hl=fr& [...] %3Dlang_fr

n°1457591
Fazer916
y en a marre
Posté le 15-10-2006 à 18:04:33  profilanswer
 

ah merci, ça s'appelle le rewriting alors
c'est le mot qui me manquait pour la recherche
je n'y tient pas specialement mais j'ai cru comprendre que c'etait preferable

n°1457593
FLK
Posté le 15-10-2006 à 18:06:55  profilanswer
 

non, page.php?page=page2 n'est pas de l'url rewriting.
 
C'est juste l'appel de la page page.php avec un parametre page qui a la valeur page2 .. rien d'autre :)

n°1457602
Fazer916
y en a marre
Posté le 15-10-2006 à 18:20:27  profilanswer
 

ok
de tte façon pour les 2 c'est un peu trop compliqué pour le moment, j'y reviendrais en temps voulu
mais d'apres ce que j'ai compris ça peut permettre d'eviter des vilains bots de visiter certaines pages

n°1457643
FLK
Posté le 15-10-2006 à 19:37:02  profilanswer
 

En fait ca depend du contenu de tes pages.
 
Imaginons un site avec 3 categories, les données de ses categories sont stockées en base et la presentation des données est la même.
 
En gros pour l'acces aux infos tu n'a besoin que d'un identifiant, celui de la categorie que tu desire afficher.
 
donc au lieu d'avoir 3 fichier .php cat1.php cat2.php cat3.php tu en as qu'un seul auquel tu va passer un parametre (disons id pour faire simple). cat.php?categorie_id=1 (ou 2 ou 3) etc... et tu y gagne en ligne de code, en temps de mise a jours, résolution de bugs, corrections diverses etc... :)

n°1457651
Fazer916
y en a marre
Posté le 15-10-2006 à 19:45:36  profilanswer
 

c'est le type de page que je compte utiliser en effet
seulement apparemment il va falloir que je fasse une configuration d'un fichier .htaccess
 
ensuite comment definir l'id de chaque page ? un id fixe ? ou un id relatif enregistré ds ma bdd pour chaque element, un id qui change automatiquement selon la categorie ?

n°1457655
FLK
Posté le 15-10-2006 à 19:52:17  profilanswer
 

non le htaccess c'est pour l'URL rewriting justement, pour le moment laisse ca de coté,  j'imagine que tu debutes en PHP donc vaut mieux avoir des URLS simples et lisibles facilement (et donc explicites).
 
Ben pour tes id, il faudra voir coté BDD ... normalement tu aura un identifiant pour chaque categorie en auto-increment. Il te faut l'utiliser pour ton menu...
 
En fait ton menu sera dynamique, sinon va devoir le modifier a chaque fois que tu fais une modif dans ta BDD.
 
Une premiere requete qui va chopper les nom de categorie avec l'id (pour faire le menu : <a href="$id">$nom</a> )
 
Et une autre dans ta page qui ira chercher les infos de la categorie en question (contenu & co)
 
M'enfin je sais pas comment marche ta BDD ni quels sont tes tables, mais le principe est la.

n°1457658
Fazer916
y en a marre
Posté le 15-10-2006 à 20:00:21  profilanswer
 

ok merci pour ces infos
pour le moment ma bdd n'est pas encore developpée, j'essaye de comprendre tout ces principes pour la developper correctement
autrement normalement id unique pour chaque element d'une même categorie, donc pourquoi un auto_increment ?
je comptais faire un auto_increment pour un id propre a chaque element, et donc peut etre en plus un id pour chaque categorie
compliqué tout ça


Message édité par Fazer916 le 15-10-2006 à 20:03:06
n°1457666
FLK
Posté le 15-10-2006 à 20:08:09  profilanswer
 

en fait tu as en gros un schema de gestion de contenu HYPRA SIMPLIFIE qui pourrait etre le suivant.
 
Categorie :
id (primary key auto-inc)
Nom
Rang (histoire de les classer comme tu veux facilement)
 
Elements :
id (primary key auto-inc)
Nom
Contenu
Rang
id_categorie (pour savoir a quelle cat il appartient
 
Bref pour ton menu tu afficher toute la table categorie, et ensuite tu filtre la table element avec le parametre que tu va passer a ta page cat.php (si categorie_id=2 tu aura un WHERE id_categorie = 2 en gros ...)
 
C'est pas tres propre tout ca, mais c'est le principe et ca fonctionne.
 
Je te conseil d'aller sur des sites style phpdebutant & co pour apprendre plein de chose tout seul, t'y sera gagnant a tous les niveaux.

mood
Publicité
Posté le 15-10-2006 à 20:08:09  profilanswer
 

n°1457669
Fazer916
y en a marre
Posté le 15-10-2006 à 20:11:40  profilanswer
 

je suis deja allé sur ce site, j'y retournerais, mais j'ai du mal a trouver les infos qui me seront utile
 
je pensais pas qu'il faille faire 2 tables, je pensais faire en gros de cette façon
 
Elements :  
id (primary key auto-inc)  
Nom  
Contenu  
Rang  
categorie
 
mais pour le menu ça doit etre moins pratique
 
merci en tout cas je relirais tout ça, j'en apprend de tous les cotés.

n°1457672
FLK
Posté le 15-10-2006 à 20:14:53  profilanswer
 

bah t'es obligé de sortir categorie de ta table Elements, enfin tu n'y laisse que l'identifiant, mais surement pas un nom!
 
Ta table ne serait plus dutout normalisée, pleine de redondances etc... bref ca serait une tres mauvaise base, même si ca fonctionnerait sur des 10enes/100enes d'entrées.

n°1461995
Fazer916
y en a marre
Posté le 21-10-2006 à 16:14:47  profilanswer
 

bon je fais du menage dans mes posts, je viens de separer en 2 fichiers, mais j'ai qqes problemes,
 
si je fais un lien vers une adresse de ce type (menu de la page accueil)

Code :
  1. <A HREF="page.php?id=1">  <IMG src="machin.jpg"></A>


dans ma page d'index, il n'y aura pas d'analyse de l'id, celle ci ne se fera pas
 
alors que si je fais une adresse de ce type

Code :
  1. <A HREF="?id=1">  <IMG src="machin.jpg"></A>


je pourrais analyser mon id grace a ce code,

Code :
  1. if ( isset($_GET['id']) && $_GET['id'] >= 1 && $_GET['id'] <= 8 )
  2. {
  3. ...
  4. }


 
par contre j'aurais une adresse du type index.php?id=1
 
alors que je voudrais une adresse du type index.php/page.php?id=1
même si je fais un truc du type

Code :
  1. include('page.php?id='.$_GET['id']);


 
avez vous une solution ?

n°1462007
leflos5
On est ou on est pas :)
Posté le 21-10-2006 à 16:24:56  profilanswer
 

Code :
  1. index.php?page=mapage&id_truc=1


Qui après url rewriting peut très bien devenir

Code :
  1. mapage/index.php?id_truc=1


ou même

Code :
  1. mapage/1/index.php


 
Après le débat sur l'url, t'as ton index qui ne fait que demander le traitement à un autre script :)

n°1462020
Fazer916
y en a marre
Posté le 21-10-2006 à 16:38:33  profilanswer
 

en gros mon index charge la page d'accueil, qui contient un menu, tout ça a l'adresse index.php
quand je clique sur le menu, qui renvoi un id different selon le bouton cliqué, je voudrais me retrouver sur la page

Code :
  1. index.php/page.php?id=1


 
j'y arrive uniquement si je fais depuis ce bouton un lien du type  

Code :
  1. <A HREF="page.php?id=1"><IMG src="machin.jpg"></A>


Mais dans mon index pour eviter la faille de securité, je verifie si le id est correct, mais celui-ci veut bien se verifier seulement si je fais un lien du type

Code :
  1. <A HREF="?id=1"><IMG src="machin.jpg"></A>


 
Ou alors 2e solution, j'utilise ce que tu dis, qui semblerais me correspondre, c'est a dire

Code :
  1. index.php?page=mapage&id_truc=1


 
avec ce type de lien je pourrais analyser id et page c'est bien ça ?
seulement 'page', j'aimerais que ça reste de façon fixe en page.php, donc je ne sais pas si c'est vraiment utile d'en faire une variable
 
et en plus de cela, il semblerait qu'avec ce type de lien on reste dans la page index.php, donc je vais me retrouver en superposition avec mes menus et tout le reste, ce qui arrive justement quand je fais

Code :
  1. index.php?id_truc=1


 
A vrai dire 'page' n'a pas besoin d'etre un argument, puisque pour les autres pages, hors menu, j'utilise les liens direct du type contact.php

n°1462025
Fazer916
y en a marre
Posté le 21-10-2006 à 16:43:44  profilanswer
 

en gros si je fais un lien du type

Code :
  1. index.php?page=mapage&id_truc=1


 
je vais rester sur ma page index mais avec des arguments 'page' et 'id_truc', c bien ça ?
 
c'est ça qui me gene, j'aimerais changer de page clairement
 
ou alors c'est mon include qui doit me permettre de changer de page ?
dans ce cas de quelle façon puisque

Code :
  1. include('page.php?id='.$_GET['id']);

ne fonctionne pas


Message édité par Fazer916 le 21-10-2006 à 16:45:46
n°1462026
leflos5
On est ou on est pas :)
Posté le 21-10-2006 à 16:47:45  profilanswer
 

J'ai pas bien compris, t'as juste une page page.php ou tu seras amené à en avoir plusieurs :??:
 
Le concept général c'est qu'il vaut mieux n'avoir qu'un point d'entrée dans ton application, qui lui dispatche après aux différents scripts :)
 
Donc t'es obligé de définir les actions que tu veux utiliser et leur associer un script.
 
Rien ne t'empêche en faisant simple de faire un truc genre:
 

Code :
  1. $page=$_GET['page']; //+ vérifications
  2. switch($page){
  3.    case 'mapage1':
  4.      include 'mapage1.php';
  5.    break;
  6.    case 'mapage2':
  7.     ...
  8.    break;
  9. ...
  10. }


ET dans mapage1.php tu récupères les paramètres dont tu as besoin, ils seront toujours accessibles via  $_GET['variable'] :)

n°1462028
Fazer916
y en a marre
Posté le 21-10-2006 à 16:54:36  profilanswer
 

en gros j'ai une page d'accueil, avec des liens dans des coins du type 'contact.php', 'aide.php', etc... en lien direct
et j'ai en plus de ça un menu, avec chaque bouton correspondant a une categorie de ma base de donnee, et quand on clique sur un bouton, cela charge une page unique du type page.php (qui charge des elements de la base de donnee), avec un id correspond a la categorie voulue, et cette page.php modifiera son contenu en fonction de cet id justement
 
pour cette raison j'aimerais passer du menu de accueil.php, avec verification de l'id sur index.php, verifier que cet id n'est pas une categorie inconnue, si c'est bon, charger la page page.php?id=un_numero
 
c'est peut etre pas possible
 
mais en gros, y a 2 choses qui me bloque,
si je fais un lien du type

Code :
  1. <A HREF="?id=1"><IMG src="machin.jpg"></A>

je reste dans la page index, donc ça fait une superposition pas belle, et si je fais

Code :
  1. <A HREF="page.php?id=1"><IMG src="machin.jpg"></A>

il n'y aura pas de verification de l'id depuis la page index, donc faille de securité tout ça
 
arf, je suis dans une impasse

n°1462030
Fazer916
y en a marre
Posté le 21-10-2006 à 17:05:31  profilanswer
 

en fait apres reflexion je n'aurais pas de faille de securité si je ne fais pas de test de l'id, et si je reste dans ma page page.php
 
donc plus aucun pb
 
merci a toi

n°1462035
leflos5
On est ou on est pas :)
Posté le 21-10-2006 à 17:11:51  profilanswer
 

Ce qui fait ton index à l'heure actuelle c'est surement la page d'accueil, il suffit de modifier ça pour que la page d'accueil soit un des états attendus :)
 
Et ainsi tu as une page index qui gère le gabarit identique à chaque page de ton site (entête, menu, pied...) et tu fais simplement un include dans un div pour chaque "page" que tu voudrais :)
 
Avantage, t'as le code de tes pages indépendant du reste mais pas besoin de te soucier du code entier de la page dans la mesure où c'est le même partout et géré par l'index ;)

n°1462122
Fazer916
y en a marre
Posté le 21-10-2006 à 18:52:12  profilanswer
 

c un peu ce que j'ai fait, sauf que tout est ds la page index, et je fais un include pour certaine partie, du css pour d'autre, etc
et pas de liens dynamiques pour les pages de bases, j'en vois pas trop l'interret, et il faudrait tout remodifier
dans chaque page je fais un include pour la partie superieure par exemple, c'est moins bien que de modifier que la partie du bas ?
 
EDIT. ok j'ai tout refait en lien dynamique, ça fait plus net


Message édité par Fazer916 le 21-10-2006 à 19:24:58
n°1462148
Fazer916
y en a marre
Posté le 21-10-2006 à 19:35:31  profilanswer
 

en fait de faire tout le site de cette façon ça me crée des erreurs avec l'ouverture de session
dès que je suis logué c le basard
je vais revenir comme avant je pense

n°1462177
Fazer916
y en a marre
Posté le 21-10-2006 à 20:57:19  profilanswer
 

quand on utilise des pseudos-frames, dans quelle page faut-il mettre session_start() ?
 
faut-il modifier les liens des pages appelées par les formulaires ?
 
car chez moi je n'ai que des plantages


Message édité par Fazer916 le 21-10-2006 à 20:57:58
n°1462455
leflos5
On est ou on est pas :)
Posté le 22-10-2006 à 15:11:05  profilanswer
 

Faut voir qu'au final comme ça t'as qu'une page, ton index :) Donc c'est uniquement en tête de celui là qu'il faut gérer ta session ;)
 
Après tu fais que inclure du code dans ta page (php ou html) ;) Donc ta page est faite dans l'index avec la gestion des différents éléments: session, cookie, entête (comprendre <html><head>...</head><body> ), le corps et le pied(...</body></html> ). Plus besoin de gérer ça ailleurs, c'est là que ça se simplifie, pour modifier un truc sur tes pages, t'as que l'index à modifier et ça modifie partout ;)
 
Pour les formulaires oui, cf l'autre topic :)

n°1462492
Fazer916
y en a marre
Posté le 22-10-2006 à 17:08:48  profilanswer
 

j'ai le droit d'ouvrir le <BODY> sur l'entete, et de le fermer </BODY></HTML> sur le pied de la page ?
 
car jusqu'a present je l'ouvre et ferme plusieurs fois par page (une fois pour l'entete, une autre fois pour le contenu
 
pas encore de pied de page puisque je ne sais pas comment faire pour qu'il reste en dessous de tout le reste de façon dynamique suivant la hauteur du contenu

n°1463681
leflos5
On est ou on est pas :)
Posté le 24-10-2006 à 04:02:33  profilanswer
 

:ouch:  
Tu veux tuer le w3c  :heink:  
 
Un body et un seul par page, justement tu l'ouvres dans ton entete et tu le ferme dans le pied de page et comme ça pas besoin de t'en soucier ailleurs: tu codes que le corps par convention entre toi et toi même :d

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  question adressage menu

 

Sujets relatifs
Menu de catégoriesRollOver Sur menu
[RESOLU] Menu déroulant en HTML[Résolu] Api win 32, quelque question de débutant....
[C#]Question à propos de la compilation de mon projetPetite question de patern
IlogViews XWindow - problème de menu systèmeQuestion vis a vis des tables sys d'oracle
[RESOLU] question rapide (je pense)question stupide... une ligne de RS par son numéro
Plus de sujets relatifs à : question adressage menu


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR