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

  FORUM HardWare.fr
  Programmation
  PHP

  Liens vers include non fonctionnels

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Liens vers include non fonctionnels

n°1792669
razpet
Posté le 26-09-2008 à 20:22:34  profilanswer
 

Salut à tous,
 
Après moultes recherches sans solutions, je me vois obligé de faire appel à certains experts du forum  :D  
 
voila, en fait mon problème se situe au niveau de php, plus précisement de la fontion include.
 
J'aimerais préciser pour commencer que lorsque le site est uploader sur le ftp d'hébergement, le site marche nikel, il s'agit donc d'une configuration locale.
 
Le problème se situe dans les liens que j'ai créé sur le site, le serveur apache reconnait maintenant php en tant que tel et m'affiche la page d'accueil donc aucun problème ici, le problème c'est quand je clique sur un lien pour changer de page, il refuse de m'afficher la page que je lui demande. J'ai rajouté une ligne de code dans le fichier pour testé que la variable change bien mais apparement elle ne change pas.  
 
Quelle pourrait être la solution à ce problème svp ?
 
code d'initialisation :

Code :
  1. <?
  2. $p == $null;
  3. if($p == $null) { $p = 'histoire'; }
  4. ?>


 
 
code d'inclusion :

Code :
  1. <?
  2. if($p == 'membres') {
  3.  include("membres.php" ); }
  4. elseif(file_exists("$p.htm" ))
  5. {
  6.  include("$p.htm" );
  7. }
  8. else {
  9.  include("construc.htm" );
  10.      }
  11. ?>


 
comme je l'ai dis, un <? echo "$p" ?> ne donne rien lorsque je clique sur les liens
 
code lien : <a href="?p=liens">Les liens<br>

mood
Publicité
Posté le 26-09-2008 à 20:22:34  profilanswer
 

n°1792673
flo850
moi je
Posté le 26-09-2008 à 20:53:24  profilanswer
 

normal
 
ajoute $p = $_GET['p']; et regadre un peu la doc de GET, POST et SESSION

n°1792675
razpet
Posté le 26-09-2008 à 21:06:56  profilanswer
 

je vois pas pourquoi ça serait normal, pourquoi ça marcherait quand je met le même site sur le ftp et lorsque je teste en local ça marche pas ... ça ne devrait pas poser de problème pourtant.... à moins que la version d'Apache soit différente mais je pense pas que les syntaxes changent en cours de version .... s'il fallait re-éditer tout un site à chaque nouvelle version du serveur....  :heink:  
 
pareil ailleurs en ajoutant cette ligne ça marche, je t'en remercie ;-)


Message édité par razpet le 26-09-2008 à 21:10:52
n°1792681
flo850
moi je
Posté le 26-09-2008 à 21:22:32  profilanswer
 

parceque en local , ton serveur est configuré avec register_globals a on, ce qui est un risque  
 

n°1792683
razpet
Posté le 26-09-2008 à 21:38:38  profilanswer
 

ahhh c'est bon :)  
 
Ben en fait en local c'était sur register_globals=Off justement alors que sur le ftp c'était sur On, maintenant tout marche bien :)
 
Maintenant tu me dis que c'est un risque, les commentaires au dessus de cette variables disent que c'est la même chose si le code n'est pas bien pensé. Est ce qu'il serait possible d'avoir quelques précisions stp ? quels risques ça entraine ? Ca a toujours été comme ça chez moi et chez free aussi apparement...
 
Merci de ton aide en tout cas, je vais me pencher sur cette la doc concernant GET, POST & SESSION, si ya un risque majeur, il faudra revoir le code source :(

n°1793020
Profil sup​primé
Posté le 28-09-2008 à 13:41:15  answer
 

En fait, si tu n'initialise pas tes variables, tu risque qu'elles soient écrasées :
 

Code :
  1. <?php
  2. if($user === 'admin' && $password === 'admin') {
  3.     $admin = true;
  4. }
  5.  
  6. if($admin) {
  7.     echo 'Protege !';
  8. }
  9. ?>


 
Ici, register_globals est activé.
$user et $password sont entrés par l'utilisateur.
$admin est un boolean qui vaut true si les paramètres d'authentification sont OK.
Or, la page est appelée ainsi :

Code :
  1. page.php?admin=1


L'élément $_GET['admin'] sera copié dans $admin qui vaudra true dans tous les cas.
 
Pour remédier au problème :
 

Code :
  1. <?php
  2. $admin = false;
  3.  
  4. if($user === 'admin' && $password === 'admin') {
  5.     $admin = true;
  6. }
  7.  
  8. if($admin === true) {
  9.     echo 'Protege !';
  10. }
  11. ?>


 
Alors, au début du script, la valeur est initialisée (false).
 
Mais je te conseille fortement de désactiver cette directive. Je crois qu'elle est dépreciée sous PHP 6 et en tout cas n'est plus activée par défaut depuis PHP 4.2.0


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

  Liens vers include non fonctionnels

 

Sujets relatifs
extraire les liens d'une page web htmlCopie des données d'une table de SQL Server vers une table de MySQL
créer un lien vers l'explorer windows dans une page web...VBA : rompre les liaisons, sauf les liens hypertextes
Copier des donnees entre 2 balises vers ExcelConversion fichier .sql 3.23 vers 5.0 (mysql)
liens html sous animation inactif[resolu] liens hypertexte inactif sous Mozilla
Passage de parametre d'une popup vers page principalecréer un liens html en php
Plus de sujets relatifs à : Liens vers include non fonctionnels


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