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

  FORUM HardWare.fr
  Programmation
  PHP

  Include et liens

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Include et liens

n°1439584
kandy3
Posté le 09-09-2006 à 21:46:08  profilanswer
 

bonsoir
je suis assez debutant en php, voici le code que j'ai tapé :

Code :
  1. <table width=100%><tr><td>
  2.       <?php
  3.   include("top.php" );
  4.   ?>
  5.    </td></tr></table>
  6.  
  7.    <table width=100%><tr><td width=20% valign=top>
  8.       <?php
  9.   include("menu.php" );
  10.   ?>
  11.    </td><td valign=top>
  12.     <table width=100%><td width=80% valign="top">
  13.         <?php include "index2.php" ?></td>
  14.   <td valign="top">
  15.   </tr></table>


 
le probleme : comment faire pour que lorsque l'on clique sur un lien du menu, il s'affiche a la place de index2.php ?
 
merci

mood
Publicité
Posté le 09-09-2006 à 21:46:08  profilanswer
 

n°1439598
nargy
Posté le 10-09-2006 à 00:21:14  profilanswer
 

he bien, tu passe un paramètre dans ton lien et tu utilise une array pour connaitre le fichier à inclure, par exemple

Code :
  1. ...Menu...
  2. <a href="?page=menu1">menu 1</a>
  3. <a href="?page=menu2">menu 2</a>
  4. ...


Code :
  1. ...
  2. // menu top
  3. ...
  4. // menu gauche
  5. ...
  6. // affichage page
  7. $liste_pages=array(
  8.   "menu1"=>"page1.php",
  9.   "menu2"=>"page2.php"
  10. );
  11. $page=$liste_pages[$page];
  12. if(!$page) $page="index2.php";
  13. include($page);


n°1439608
naceroth
Posté le 10-09-2006 à 01:09:43  profilanswer
 

Euh, quitte à lui donner du code, tu pouvais éviter de le faire aussi crade, ton $page gagnerait beaucoup à devenir $_GET['page'] et t'as jamais qu'une erreur potentielle ligne 11 :D

n°1439625
nargy
Posté le 10-09-2006 à 07:14:28  profilanswer
 

D'accord pour le GET, à moins qu'il n'utilise aussi des FORMs... J'ai supposé que PHP était configuré avec register_globals=on et que error_reporting ne contenait pas E_NOTICE.
Sans ces options (largement répandues), la ligne 11 devient:

Code :
  1. if(isset($_GET['page'])) $page=$_GET['page'];
  2. else if(isset($_POST['page'])) $page=$_POST['page'];
  3. else $page='';


Message cité 1 fois
Message édité par nargy le 10-09-2006 à 07:14:58
n°1439640
kandy3
Posté le 10-09-2006 à 10:35:13  profilanswer
 

desolé je suis debutant en php. mon code que j'ai tapé au debut il faut bien que je le remette ? sinon si vous pouviez me mettre tout le code d'un coup ce serais sympa
merci

n°1439646
nargy
Posté le 10-09-2006 à 10:54:39  profilanswer
 

:S
Le tout premier code est celui contenu dans menu.php et/ou top.php.
Le second est celui contenu dans index.php.
Le troisième corrige la ligne 11 du second.
 
Mieux vaut que tu comprenne comme ça fonctionne plutôt que de faire un copié/collé.
 
Lis la doc sur php.net sur les arrays pour comprendre le fonctionnement:
http://fr.php.net/manual/fr/language.types.array.php

n°1439652
esox_ch
Posté le 10-09-2006 à 11:16:21  profilanswer
 

nargy a écrit :

D'accord pour le GET, à moins qu'il n'utilise aussi des FORMs... J'ai supposé que PHP était configuré avec register_globals=on et que error_reporting ne contenait pas E_NOTICE.
Sans ces options (largement répandues), la ligne 11 devient:

Code :
  1. if(isset($_GET['page'])) $page=$_GET['page'];
  2. else if(isset($_POST['page'])) $page=$_POST['page'];
  3. else $page='';



 
Qui le sont heureusement de moins en moins vu que depuis php5 le register_global est a off par defaut... Et si je ne m'abuse il sera d'ailleurs supprimé en php6.
Ensuite pour le error_reporting, effectivement c'est repandu sur des serveurs de production, mais vu le niveau de l'auteur du topic je pencherais plus pour un debutant qui cherche a comprendre ses erreurs ... Du coups effectivement il serait judicieux de lui donner un code juste, ou encore plus judicieux de lui expliquer la demarche pour qu'il y arrive tout seul


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1439662
kandy3
Posté le 10-09-2006 à 12:01:40  profilanswer
 

merci j'ai compris et j'y suis arrivé ! :)

n°1439668
nargy
Posté le 10-09-2006 à 12:31:34  profilanswer
 

> Et si je ne m'abuse il sera d'ailleurs supprimé en php6.
J'espère bien que tu t'abuse :p
J'ai pas trop envie de refaire les scripts PHP3. :)

n°1439672
gatsu35
Blablaté par Harko
Posté le 10-09-2006 à 12:47:32  profilanswer
 

nargy a écrit :

> Et si je ne m'abuse il sera d'ailleurs supprimé en php6.
J'espère bien que tu t'abuse :p
J'ai pas trop envie de refaire les scripts PHP3. :)


Ben il fallait t'y prendre dès le depart, car les register_globals c'est pourri

mood
Publicité
Posté le 10-09-2006 à 12:47:32  profilanswer
 

n°1439677
nargy
Posté le 10-09-2006 à 13:23:20  profilanswer
 

> les register_globals c'est pourri
ben, c'était pourtant la norme en PHP3. Les super-globales ne sont pas non plus le top: il est tentant de les utiliser dans des fonctions sans la syntaxe <<global>> qui sert d'avertissement en début de fonction.
 
Les register_globals c'est toujours très pratique, sauf cas particuliers. J'ai jamais vraiment pigé quel est l'intérêt de les supprimer. Mais peut-être y-a-t-il quelqu'un qui peut me donner une réponse?

n°1439678
zapan666
Tout est relatif
Posté le 10-09-2006 à 13:28:03  profilanswer
 

nargy a écrit :


Les register_globals c'est toujours très pratique, sauf cas particuliers. J'ai jamais vraiment pigé quel est l'intérêt de les supprimer. Mais peut-être y-a-t-il quelqu'un qui peut me donner une réponse?


faille de sécu sur les scripts mal conçu
genre
 

Code :
  1. <?php
  2. if ( $var ) {
  3. mysql_query("DROP DATABASE mabaseamoi" );
  4. }
  5. ?>


 
Avec register_global :  
un appel à mapage.php?var=1 supprime ta base de données
 
Sans register_global, normalement, php gueule disant que $var n'est pas initialisé. (si je me souviens bien, hein)


Message édité par zapan666 le 10-09-2006 à 13:30:56

---------------
my flick r - Just Tab it !
n°1439687
nargy
Posté le 10-09-2006 à 13:38:32  profilanswer
 

Oui merci je viens de trouver les arguments contre, en répondant à une autre question:
http://fr2.php.net/register_globals
 
Enfin, il n'y a donc pas de raison de supprimer cette option, mais d'y faire attention si on l'utilise, et de vérifier quand c'est nécessaire d'où provient la variable. Celà représente somme toute que quelques pages dans un site.

n°1439737
esox_ch
Posté le 10-09-2006 à 15:40:32  profilanswer
 

nargy a écrit :

Oui merci je viens de trouver les arguments contre, en répondant à une autre question:
http://fr2.php.net/register_globals
 
Enfin, il n'y a donc pas de raison de supprimer cette option, mais d'y faire attention si on l'utilise, et de vérifier quand c'est nécessaire d'où provient la variable. Celà représente somme toute que quelques pages dans un site.


 
Y a pas de raison de devoir avoir un port d'arme pour se balader avec un flingue, suffi de faire gaffe avec et personne ne se feras de bobo ...
 
En meme temps vu les gens qui trainent ici et les questions posées dans PHP, je suis content qu'il y ait besoin d'un permis de port d'arme :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

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

  Include et liens

 

Sujets relatifs
[résolu] ld: Missing library symbol table inpb de mise en page avec include
menu déroulant + photos et liensProblème de liens survolé
aide sur la commande ActiveCell.Row + Liens inter - pageProbleme url include
Comment alléger le plus possible une grille de 1400 liens ?robotstats + include("/home/samet/www/admin/robotstats/robotstats.
[PHP] Garder les liens originaux dans un include?Pb include() et liens
Plus de sujets relatifs à : Include et liens


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