[PHP] Problème de variable de page

Problème de variable de page [PHP] - PHP - Programmation

Marsh Posté le 28-01-2007 à 16:21:36    

Coucou!
 
Besoin d'un petit coup de main au developpeur du dimanche svp!
 
J'ai une barre de menu sur un site.
Je souhaite que la page correspondant au menu visité soit d'un style différent.
J'ai utilisé la solution php, plus simple que javascript (je sais pas la peine de faire un accès serveur pour ça mais bon!)
Celà ne fonctionne pas :(
 
Extrait de index.php contenant le menu :

Code :
  1. [...]
  2. <? $titrePage = "Index"; ?>
  3. <ul>
  4. [...]
  5. <li <? if ($titrePage=="Liens" ) echo 'id="active"'; ?>><a title="Les liens" href="index.php?page=liens">Liens</a></li>
  6. </ul>
  7. [...]


 
En haut de ma page liens :

Code :
  1. <? $titrePage = "Liens"; ?>
  2. [...]


 
Or celà ne fonctionne pas.
Si je fais un echo de $titrePage celà m'affiche Index même si je suis dans la page lien, pourtant la variable devrait avoir changé après le clic selon moi.
J'ai testé le style à part, il fonctionne bien.
 
Quelqu'un à une idée de ma boulette?
 
Merci!

Message cité 1 fois
Message édité par Fused le 28-01-2007 à 16:37:21
Reply

Marsh Posté le 28-01-2007 à 16:21:36   

Reply

Marsh Posté le 28-01-2007 à 16:47:52    

Fused a écrit :

Coucou!
 
Besoin d'un petit coup de main au developpeur du dimanche svp!
 
J'ai une barre de menu sur un site.
Je souhaite que la page correspondant au menu visité soit d'un style différent.
J'ai utilisé la solution php, plus simple que javascript (je sais pas la peine de faire un accès serveur pour ça mais bon!)
Celà ne fonctionne pas :(
 
Extrait de index.php contenant le menu :
 
[...]
<? $titrePage = "Index"; ?>
<ul>
 [...]
 <li <? if ($titrePage=="Liens" ) echo 'id="active"'; ?>><a title="Les liens" href="index.php?page=liens">Liens</a></li>    
</ul>
[...]
 
 
En haut de ma page liens :
 
<? $titrePage = "Liens"; ?>
[...]
 
 
Or celà ne fonctionne pas.
Si je fais un echo de $titrePage celà m'affiche Index même si je suis dans la page lien, pourtant la variable devrait avoir changé après le clic selon moi.
J'ai testé le style à part, il fonctionne bien.
 
Quelqu'un à une idée de ma boulette?
 
Merci!


 
Alors si j'ai bien compris si tu est sur la page 'Liens' dans ton menu le lien vers 'Liens' s'affiche d'une autre couleur par exemple.
 
Si c'est ça je te conseil de faire comme suit =>
 

Citation :


<ul>  
<li>
<?php
if($_GET[page] == 'liens' )
{
echo 'Liens';
}
else
{
echo '<a title=\'Les liens\' href=\'index.php?page=liens\'>Liens</a>';
}
?>
</li>    
</ul>


 
Je m'explique, quand tu clique sur un lien apparament tu utilise des includes en fonction de la page dans l'URL 'index.php?page=liens', donc la je le réutilise pour la condition inutile de crée un variable "$titrePage" qui est dejà dans "index.php" et qui peut porter à conflit.
 
Ensuite si tu est sur la page lien tu peux pas cliquer dans le menu 'Liens' oui car tu es deçu :), sinon tu peux cliquer dessus. Sur cette partie c'est quelque chose comme ça que tu voulais avoir enfin c'est ce que j'ai compris.
 
Alors si tu as remarqué j'ai mis '<?php' la diffèrence avec '<?' aucune malgré que sur certains Serveur l'absence de 'php' peut empêcher le chargement de la page donc par securité je mets toujours '<?php'. J'ai mis aussi des ' guillemets simple au lieu d'un double " guillemets, ca optimise le chargement des pages et ca prends moins de ressource au serveur c'est pas obligatoire mais bon c'est sympas quand même.
 
En esperant d'avoir répondu à ta question correctement.
 
 
Cordialement,
Dobu


Message édité par dobu le 28-01-2007 à 16:48:57
Reply

Marsh Posté le 28-01-2007 à 17:26:41    

Voilà une explication très claire et qui fonctionne très bien!
Merci beaucoup pour les explications annexes <?php et pour les guillemets, c'est très bon à savoir!
 
Juste 3 choses, tu avais oublié de mettre page entre '' dans if($_GET['page'] ;)
Sinon, celà ne fonctionne avant que j'ai cliqué sur au moins un lien car page n'existe pas quand on ouvre index.
 
J'ai donc rajouté if(isset $_GET[page] and $_GET[page] == 'liens')
Je pense que c'est une bonne solution.
 
Derniere chose, j'ai des liens du style href="index.php?page=page_diverse&id=3", donc du coup ça ne marche plus a causé du &id=3... une solution contre ça?
 
Merci d'avance si doBu ou quelqu'un peut me répondre!


Message édité par Fused le 28-01-2007 à 17:47:52
Reply

Marsh Posté le 28-01-2007 à 17:58:21    

hein...
tu peux trés bien avoir plusieurs variables en arguments... donc ça devrais marcher...
 
par contre tu as vus que tu n'as pas mis les ' dans $_GET[page] ... ?
donc pour que ça fonctionne :
 
$_GET['page']... et $_GET['id'].

Reply

Marsh Posté le 28-01-2007 à 18:05:59    

les guillemets étaient mis, erreur de frappe ici mais j'avais fais
$_GET['page'] == 'page_diverse&id=2'
au lieu de
$_GET['page'] == 'page_diverse' and $_GET['id'] == '3'
Merci du coup de main! :)

Reply

Marsh Posté le 28-01-2007 à 18:13:06    

chani_t a écrit :

hein...
tu peux trés bien avoir plusieurs variables en arguments... donc ça devrais marcher...
 
par contre tu as vus que tu n'as pas mis les ' dans $_GET[page] ... ?
donc pour que ça fonctionne :
 
$_GET['page']... et $_GET['id'].


 
chani_t à raison.
 
Utilise $_GET['id'] tu mets ">= 0"
 
Un truc du genre :
 

Citation :


<?php  
if($_GET['page'] == 'liens' && $_GET['id'] >= 0)  
{  
echo 'Liens';  
}  
?>  


 
Après adapte selon ton cas avec "isset"etc... Sinon la ca marchera à coup sur mais le code est moins bien je trouve :
 

Citation :


<?php  
if($_GET['page'] == 'liens')  
{  
           if($_GET['id'] >= 0)
           {
           echo 'Liens';  
           }
}  
?>  


 
J'explique, ton id est une donnée numérique et je ne pense pas que tu a fait quelque chose alphanumérique (lettre + chiffre), donc l'id au pire de la page ou du document sera "0" ou + c'est pourquoi j'ai mis ">= 0" supérieur ou égale à 0. De plus si tu rajoutes des pages avec des id diffèrents tu n'auras pas à retoucher à ton code car le numéro id sera forcément supérieur ou égale à 0. Tu auras remarquer que j'ai pas mis de guillement autour du zéro disons que ca marche sans et ceux pour tous les chiffres.
 
Dis moi si c'est bien ça.


Message édité par dobu le 28-01-2007 à 18:15:24
Reply

Marsh Posté le 28-01-2007 à 18:17:38    

Tout est niquel!
Vous pensez quoi du résultat? niveau ergonomie? on comprends bien que l'on visite le lien en question?
http://speleoclubmtp.free.fr/ (site que je réalise en projet pour l'IUT)

Reply

Marsh Posté le 28-01-2007 à 21:49:23    

Oh quand je pense que tu m'a conseillé de changer de designer !Oh quand je pense que tu m'a conseillé de changer de designer ! :pfff:

Reply

Marsh Posté le 29-01-2007 à 00:09:50    

Euh... relis ton sujet ce n'est pas moi qui ai dit ça!
Bon après c'est pas un site pour gagner des sous, c'est juste pour satisfaire des profs, mais si tu as des remarques contructives fais moi partager.

Reply

Marsh Posté le 29-01-2007 à 19:46:02    

Fused a écrit :

Tout est niquel!
Vous pensez quoi du résultat? niveau ergonomie? on comprends bien que l'on visite le lien en question?
http://speleoclubmtp.free.fr/ (site que je réalise en projet pour l'IUT)


 
La on va partir sur du hors-sujet, je le trouve sympa juste 2 trucs, le lien pour retrouver son mot de passe arrive sur une page introuvable.
Donc à arranger et essaye de faire une page personnalisé pour les erreur 404 quelque chose de jolie serait un plus.
 
Et le 2° je sais pas si c'est normal mais il manque la moitié des photos des membres, moi je te conseil de faire une image par defaut afin que ca soit plus agréable ca fera un truc comme àa en PHP :
 

Citation :


<?php
TA CONNECTION SQL POUR ALLER CHERCHER LES PHOTOS
 
if($photo == null)
{
echo '<img src=\'le_lien_de_l_image_par_defaut.jpg\' alt=\'En cas de non affichage de l'image par defaut on affiche un texte ici\'></img>';
}
else
{
echo '<img src=\''.$photo.'.jpg\' alt=\'Image du membre qui s'appel '.$tu_peux_meme_mettre_une_variable.'\'></img>';
}
?>


 
$photo -> lien de l'image du membre
Bien entendue j'ai pris photo mais je sais pas comment est a source  :) , et pareil dans la valeur de la variable j'ai pas inclut son extension car je sais pas si dans tes valeurs dans la BDD (Base De Donnée) tu as l'extension .jpg ou .gif ou autres...
 
Voilà.

Reply

Marsh Posté le 29-01-2007 à 19:46:02   

Reply

Marsh Posté le 30-01-2007 à 02:14:54    

Merci pour les conseils, le lien pour retrouver son mot de passe est en cours, mais comme j'ai crypté en md5, impossible de lui redonner, je pense lui en balancer un par défaut qu'il peut changer après en vérifiant si c'est bien lui, mais comme dans la BDD seuls les champs obligatoires sont nom et prénom on sait pas si c'est vraiment lui!
(pas d'adresse mails obligatoire malheureusement, tous n'en n'ont pas!)
 
Sinon pour la photo c'est vrai je vais faire un p'tit dessin par défaut si il y en a pas sinon ça fait moche!
 
Merci pour le tuyau!
 
Ciao!

Reply

Marsh Posté le 30-01-2007 à 08:25:51    

Fused a écrit :

Merci pour les conseils, le lien pour retrouver son mot de passe est en cours, mais comme j'ai crypté en md5, impossible de lui redonner, je pense lui en balancer un par défaut ...


 
 :non: balance lui, un mot de passe aléatoire sur 12 caractère par exemple.. car un par défaut permettrais à nimporte qui de pouvoir accéder à tous les compte utilisateur sans se casser la tête.

Reply

Marsh Posté le 30-01-2007 à 16:42:54    

chani_t a écrit :

:non: balance lui, un mot de passe aléatoire sur 12 caractère par exemple.. car un par défaut permettrais à nimporte qui de pouvoir accéder à tous les compte utilisateur sans se casser la tête.


 
Chani_t a raison c'est beaucoup plus sécuritaire, et ca permet de vérifier l'adresse E-Mail de tes membres (plus facile à bannir au cas ou).

Reply

Marsh Posté le 30-01-2007 à 17:07:44    

Si j'ai bien tout compris, il n'a pas de systéme de "question secréte" ni d'adresse email obliguatoire.
Du coup il ne peut pas envoyer de nouveau mot de passe par mail et il ne peut pas non plus s'assurer que la personne qui demande le changement est bien celle qu'elle dit être.
 
A partir de là, qu'on fournisse un mot de passe qui sera toujours le même ou un mot de passe à 256 caractéres ne changera pas grand chose vu qu'on ne sait pas à qui on donne le dit mot de passe.

Reply

Marsh Posté le 31-01-2007 à 01:42:45    

Oui, c'est dans le cahier des charges du site, tous les membres n'ont pas d'adresse mail, c'est pour celà qu'ils se connectent avec leur nom et leur prénom (aucun n'a les mêmes ils ne sont qu'une 50aine) mais j'ai du faire avec, j'espère pour eux qu'a l'avenir ça n'arrivera pas!
 
Sinon pour la récupération du mot de passe, je pense que je vais faire un contact avec l'admin qui lui à l'accès dessus, et il pourra changer si il a confiance (il connait les membres).
 
Le membres sont de toutes façons ajoutés par l'admin (ceux qui ce sont inscrits au clubs et payé leur cotisation), car des données sont secrètes comme les topographies de grottes en cours de découvertes... etc.
 
Merci pour vos conseils, le site est quasi fini, je le présente et le livre dans une semaine.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed