page accueil ne s'affiche pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : page accueil ne s'affiche pas

Re: page accueil ne s'affiche pas

par Alucard68 » 28 avr. 2012, 09:33

Bonjour,

Je revient vers vous car j'ai réencodé un peu mon site il fonctionne parfaitement
Voici le code :
	<?php
	$pageOK = array('charte' => 'charte.php','aide' => 'aide.php','inscription' => 'inscription.php','accueil' => 'accueil.php','news' => 'news.php','contact' => 'contact.php','echec' => 'echec.php','error' => 'error.php','succes' => 'succes.php',);
	  if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) {
	  include($pageOK[$_GET['page']]);
	} else {
	  include('accueil.php');
	}
	?>
Alors voila avec mon ancien codage si je supprimai une page et que j'oubliai d'enlever le lien sa renvoyai sur la page error.php
Je voudrais faire la même chose avec se code mais je ne vois pas comment m'i prendre...
Merci de votre aide future.
Cordialement.

Re: page accueil ne s'affiche pas

par Alucard68 » 31 mars 2010, 20:33

Bonsoir,
et bien que dire de plus a part un GRAND MERCI a vous pour l'aide :D:D:D et en particulier a AB
Encore merci
Cordialement Alucard68

Re: page accueil ne s'affiche pas

par AB » 31 mars 2010, 16:37

Bien sûr, tu as raison :wink:

Re: page accueil ne s'affiche pas

par Nours312 » 30 mars 2010, 23:44

$page = is_file($page)? $page : 'error';
Excuses moi AB, mais ne serait-ce pas :
$page = is_file($page.'.php')? $page : 'error';
?? :D

Re: page accueil ne s'affiche pas

par AB » 30 mars 2010, 23:40

A ce niveau là du premier bloc de code
$page = in_array($page,$pages_autorisees)? $page : 'accueil';
nous avons une page autorisée car elle fait partie du tableau de page autorisées (défini dans $pages_autorisees).
Effectivement si tu as supprimé une page sur le serveur et que tu n'a pas mis ton tableau à jour il y aura une erreur de redirection.
Pour éviter ça il te suffit de vérifier que ta page existe bien sur le serveur avec la fonction is_file
Donc juste à la suite de cette ligne tu peux écrire :
$page = is_file($page.'.php')? $page : 'error';
et si le fichier n'existe pas le visiteur sera dirigé vers error.php

Note que j'utilise des opérateurs ternaires pour définir mes conditions. Si tu ne comprend pas comment cela fonctionne il y a ce petit tuto

Re: page accueil ne s'affiche pas

par Alucard68 » 30 mars 2010, 13:29

Bonjour,
Merci AB pour se bout de code sa fonctionne parfaitement :D

Autre chose imaginons que j'enlève une page du genre photo.php et que j'oublie d'enlever le lien dans mon menu. comment faire pour que quand l'internaute clic sur le lien au lieu que sa soit la page accueil.php d'affiche sa soit la page error.php dans la quel il y aurai le message suivant :

Code : Tout sélectionner

<p> La page que vous tentez actuellement de visualiser n'existe pas ou n'est pas encore disponible. Si vous avez entré l'adresse à la main, vérifiez qu'elle est correcte. Si vous accédez à cette page par un lien du site, c'est que la page est en construction. Veuillez nous excuser pour la gène occasionnée. Si le problème persiste, contactez le webmaster par le biais du formulaire prévu à cet effet: "Contact". </p> <p> Merci de votre compréhension. </p>
Merci d'avance
Cordialement Alucard68

Re: page accueil ne s'affiche pas

par AB » 30 mars 2010, 00:25

Dans ton code php tu récupères la variable $_GET['page'] envoyée par le lien de ton menu sinon tu affiches la page d'index

MAIS IL FAUT VERIFIER LES PAGES TRANSMISES PAR LA VARIABLE $_GET['page'] SINON C'EST UN GROS TROU DE SECURITE => Piratage très probable

Exemple
<?php
//Tu met dans un tableau toutes les pages qui pourrons être appelées avec leur nom  (exemple avec trois pages)
$pages_autorisees = array('accueil','presentation','contact');

//Tu récupères la variable $_GET['page'] si elle existe, sinon tu lui assignes la valeur null
$page = isset($_GET['page'])? $_GET['page'] : null;

//Tu vérifies que c'est une variable attendue donc qui est contenue dans ton tableau, sinon tu lui assignes la page d'index, ex 'accueil'
$page = in_array($page,$pages_autorisees)? $page : 'accueil';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Exemple</title>
</head>

<body>
<div>
Menu 
<a href= "index.php?page=accueil">Accueil</a>
<a href= "index.php?page=presentation">Présentation</a>
<a href= "index.php?page=contact">Contact</a>
</div>
<div>
<?php 
require_once ($page.'.php');
?>
</div>
</body>
</html>
C'était pour détailler mais dans le code php tu pourrais ne faire qu'une ligne après la déclaration de ton tableau en faisant
$page = isset($_GET['page']) && in_array($_GET['page'],$pages_autorisees)? $_GET['page'] : 'accueil';

Re: page accueil ne s'affiche pas

par Invité » 29 mars 2010, 23:39

Bonsoir, AB en se qui concerne l'affichage c'est bon avec phpedit

en revhanche j'ai de nouveau réencoder tout lol je sais sa devien compliquer a me suivre... :P

alors voila le nouveau code de ma page index.php

Code : Tout sélectionner

<?php require_once ( 'head.php' ); ?> <?php require_once ( 'menu.php' ); ?> <div id="right"> <div class="right-bloc"> <div class="right-titre"><h2>Vampire Land</h2></div> <div class="right-marges"> <?php require_once ($_GET['page'].'.php'); ?> </div> <div class="right-bottom"></div> </div> </div> </div> <?php require_once ( 'footer.php' ); ?>
la page accueil ne s'affiche pas quel variable ajouter ou a changer pour que sa fonctionne tout le reste fonctionne sauf cette parti

Code : Tout sélectionner

<?php require_once ($_GET['page'].'.php'); ?>
bon c'est sur que si je met require_once ('accueil.php'); sa fonctionnera mais pas pour le reste de la navigation.
Merci d'avance
Cordialement Alucard68

Re: page accueil ne s'affiche pas

par AB » 29 mars 2010, 20:50

Si php n'est pas interprété sur le serveur distant peut être que ton serveur distant n'interprète pas le php ou dans certaines conditions.

Si tu testes en local il faut avoir easy.php ou wamp de démarré.

Re: page accueil ne s'affiche pas

par Invité » 29 mars 2010, 20:25

Bonsoir, alors AB j'ai renommer ma page index.html en index.php mais il y a toujours un problème quand j'affiche ma page via firefox il n'y a que le code source de la page qui s'affiche :x d'ou sa peu venir ai-je oublié une variable quelque part (surment oui mais ou ?)

Cordialement Alucard68
Merci d'avance

Re: page accueil ne s'affiche pas

par AB » 28 mars 2010, 14:44

Bonsoir alors j'ai refait tout mon codage d'une autre façon.
Finalement tout se que je veux c'est que mon menu soit a part pour éviter de modifier chaque page html a chaque fois que je rajoute une page et vis versa.
Donc j'ai créé une page menu.php dans laquel se trouve toute ma navigation.
puis dans ma page index.html je fait apel a ma page menu.php mais sa ne fonctionne pas et j'ai pas de message d'erreur je comprend pas pourquoi
voila le bout de code de ma page index.html

Code : Tout sélectionner

<?php include('menu.php'); ?>
Si ta page se nomme index.html alors elle ne peut pas interpréter du php. Il faudrait qu'elle se nomme index.php pour pouvoir interpréter du code php

Re: page accueil ne s'affiche pas

par Alucard68 » 27 mars 2010, 22:53

Bonsoir alors j'ai refait tout mon codage d'une autre façon.
Finalement tout se que je veux c'est que mon menu soit a part pour éviter de modifier chaque page html a chaque fois que je rajoute une page et vis versa.
Donc j'ai créé une page menu.php dans laquel se trouve toute ma navigation.
puis dans ma page index.html je fait apel a ma page menu.php mais sa ne fonctionne pas et j'ai pas de message d'erreur je comprend pas pourquoi
voila le bout de code de ma page index.html

Code : Tout sélectionner

<?php include('menu.php'); ?>
et ma page menu.php se trouve de cette manière

Code : Tout sélectionner

<?php mon menu... ?>
si quelqu'un a une suggestion je suis preneur.
merci d'avance.
Cordialement Alucard68

Re: probleme site

par macgawel » 26 mars 2010, 13:02

Bonjour.

1. error_reporting( 0 ); => mauvaise idée.
Déjà, je ne suis pas sûr que le zéro soit géré, mais en plus la temps de développer ton site il faut au contraire afficher toutes les erreurs.
=> error_reporting( E_ALL );

2. Tu as du mal avec les require_once :
index.php appelle la page html.php, qui appelle index.php...

3. Dans html.php, tu utilises des fonctions qui prennent en paramètre $page, et derrière tu définis $page comme une variable globale.
C'est incohérent...

Sinon, le html dans le corps d'une fonction php ce n'est pas top.
En général, on utilise plutôt un fichier qui contiendra le html.
Par exemple pour ta fonction html_head :
function html_head ( $page ) {
   include ('header.php');
}
avec le fichier header.php qui contient uniquement le html :
< html xmlns = "http://www.w3.org/1999/xhtml"; xml:lang =
"fr" lang = "fr" dir = "ltr" > < head > < title >Vampire Land</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
Tu peux faire un tour sur phpdébutant pour un bon tutoriel sur l'utilisation des "pseudo-frames"...

Re: probleme site

par Truc » 26 mars 2010, 08:32

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

Re: probleme site

par AB » 24 mars 2010, 01:18

Découpe ton code en morceaux ainsi tu verras mieux l'origine du problème. C'est un principe élémentaire pour le débugage.

Par exemple tu dis que rien n'est inclus. Essaies dans une page vierge de faire ton include avec le même fichier à inclure pour vérifier si le pb est à ce niveau là.
Et l'autre avantage d'isoler le pb est aussi qu'en cas de besoin on y verra plus clair pour t'aider sans avoir à déchiffrer l'ensemble de ton code :wink: