8792 sujets

Développement web côté serveur, CMS

Salut tous Smiley cligne
J'essaye doucement d'apprendre le php, et pour mes essai en local ca fonctionne très bien, or dès que j'utilise mon FAI il y a des choses qui ne fonctionne pas,je soupconne l'adresse de mes chemins relatif ou absolue mais je ne sais pas lequel prendre : voiçi l'adresse de mon site avec le script :
http://lagache.chez-alice.fr/index.php?page=accueil[/url] en cliquant sur Connecter vous devriez voir apparaître un petit formulaire, mais y'à rien Smiley decu et sur photos ,3 vignettes, mais rien aussi Smiley decu elle sont a la racine du site : je place aussi le code source des pages :
Ca c'est l'index qui appel les autres.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<script type="text/javascript" src="photosall.js"></script>
<title>Notre nouveau site</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<link rel="stylesheet" type="text/css" media="screen, projection" title="Original" href="essai2.css">
<link rel="alternate stylesheet" type="text/css" media="screen" title="Black" href="">
</head>
<body>
<div id="conteneur">Conteneur
<h1 id="entete"><a href="index.php" title="mon nouveau site - Acceuil"><span>Retour à  l'acceuil du site</span></a></h1>
<?php
  include('menu.html');   // J'appel le menu
?>
<div class="contenu">
<div id="frame"><pre>
<?php 
if (!isset($_GET['page'])) $page= 'index'; else $page= $_GET['page']; 
 switch($page)
{
case 'accueil': include ('accueil.php');break;
case 'news': include ('news.php');break;
case 'connexion':include ('connexion.html');break;
case 'photos':include ('photos.html');break;
} 
?>


</pre>
</div>
</div>
<div id="pied">
<?php
  include('pied.php');   // J'appel la page "pied.php"
?>
</div>
</div>

</body>

</html>

Ici la page html photos :
<div id="galerie">
<ul id="galerie_mini">
  <li><a href="neige1.jpg" title="Neige !!"><img style="border: 0px solid ; width: 50px; height: 50px;" src="neige1.png" alt="Neige1 !!"></a></li>
  <li><a href="neige2.jpg" title="Neige !!"><img style="border: 0px solid ; width: 50px; height: 50px;" src="neige2.png" alt="Neige2 !!"></a></li>
  <li><a href="neige3.jpg" title="Neige !!"><img style="border: 0px solid ; width: 50px; height: 50px;" src="neige3.png" alt="Neige3 !!"></a></li>
</ul>
<dl id="photo">
  <dt>Photos For All</dt>
  <dd><img id="big_pict" src="" alt=""></dd>
</dl>
</div>

Et enfin celle du formulaire en *.html :
<input type="password" name="Chris" value="" />
<h2>Remplissez ce formulaire !</h2>
<form action="analyse.php" method="post"></form>

Merci de votre aide Smiley smile
Modifié par Express (31 Mar 2006 - 17:25)
salut,

je ne suis pas trop sur mais les deux instructions.

celle liée au if

$page= 'index';


et celle liée au else

 $page= $_GET['page'];


elles devraient être mise entre accolades {}

non ?
J'ai changé une partie du code pour :
 {if (isset($_GET["page"])) $page = $_GET["page"];
 else $page = 0; }


 switch($page)
{
case 1: include ('news.php');break;
case 2:include ('connexion.html');break;
case 3:include ('photos.html');break;
default:include('accueil.php'); break;
} 
?>

Mais rien, il ne prend pas en compte mon paramètre ?page ....... Smiley decu

Et dans le menu :
<ul><li><a href="?page=0">Accueil</a><br /></li>
  <li><a href="?page=1">News</a><br /></li>
    <li><a href="?page=2">Formulaire</a><br /></li>
    <li><a href="?page=3">Photos</a><br /></li></ul>
Bonjour,
Es-tu sûr que tes pages appelées en include se trouvent à la racine du serveur ? en tapant news.php j'obtiens un erreur404…
Chez moi ca fonctionne .. Smiley lol mais je vérifie au cas ou ..... mais ca fonctionne très très bien en local ...... Smiley eek
zzzazzz a écrit :
Bonjour,
Es-tu sûr que tes pages appelées en include se trouvent à la racine du serveur ? en tapant news.php j'obtiens un erreur404…


Les fichiers à inclure sont bien à la racine.

à Express, oulala c'est bizarre ton code. Moi j'aurais écrit ça tout simplement :

if (!isset($_GET['page'])) {
$page= 'index';
}

else {
$page= $_GET['page'];
} 
clb56 a écrit :


Les fichiers à inclure sont bien à la racine.

à Express, oulala c'est bizarre ton code. Moi j'aurais écrit ça tout simplement :
...


Eh ben voilà ce que j'ai trouvé
a écrit :
Il serait alors en effet possible à quiconque de saisir sa propre valeur pour $page pour pouvoir faire exécuter par VOTRE serveur un bout de code écrit par une autre personne (et pouvant donc contenir des instructions préjudiciables à la bonne santé de votre site). Ce "hacker en herbe" peut au choix préciser dans $page l'URL d'une page de l'un de ses sites qui retourne un bout de code PHP ou bien, plus vicieux, il peut faire pointer $page sur un des fichiers de VOTRE site mais, fichier, dont il peut altéré le contenu (ex: fichier stockant un livre d'or, fichier de log, etc...) et donc y insérer du code PHP.
C'est pas bon ?? C'est pour cela que j'ai suivis d'autres indications, et comme ce futur site à besoin de sécurité,j'en ai profité.Parcontre si vous avez d'autres idées à me soumettre....
Modifié par Express (28 Mar 2006 - 18:13)
Personnellement, j'utilise un tableau avec les pages autorisées pour l'include.
Ça donne un truc du genre :

    				
<?php
              //on définit un tableau contenant les pages autorisées			
      	$pageOK = array(
	//les pages autorisées
                    'accueil' => '.accueil.php',
	            'boutique' => 'boutique.php',
                    'liens' => 'liens.php',
                    'etc' => 'etc.php');

										
      // on teste si un lien du menu est activé et si la page est autorisée    
       if (isset($_GET['page']) AND isset($pageOK[htmlentities($_GET['page'])])){
       include($pageOK[htmlentities($_GET['page'])]);//on inclut la page autorisée demandée.
       }
       //dans les autres cas on inclut la page d'accueil.
       else {
       include("./pages/act/accueil.php");
       }
?>