Lien php dans tableau virtuel

cs_malione Messages postés 3 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 17 juillet 2011 - 11 juil. 2011 à 20:26
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 17 juil. 2011 à 23:04
Bonjour a tous ;
je un souci avec mes liens php, j'ai crée une page sur le quel se trouve un 'titre' un 'menu' et le 'corps' mes lien du 'menu' sur le 'corps' tout les sujet sont dans des div et positionner en css par de souci la ou je bloque s'est lorsque j'appel un deuxième 'menu2' sur le corps en code sa donne sa :

le lien du menu est '/index?page=sousmenu.php'
ce lien m'affiche une page dans le corps

sur la page du sousmenu.php j'appel une page avec mes 'menu2' et un 'souscorps' avec des liens pour que les thème s'affiche en dessous du menu2
et j'ai fait le même principe de code que pour le menu mais a la place d'appeler un get[page] j'appel un get[souspage]
et le lien du menu2 donne ceci : 'index?souspage= sujet.php'

et mon souci est que j'ai un retour false car en rechargent la page je bloque sur le script d'identification de page sur le 'corps'


schématiquement: je voudrais que m'on lien me permette d'afficher ma page index?page=sousmenu.php -> ?souspage=sujet.php

merci a tous si vous me trouver la réponse

6 réponses

cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
13 juil. 2011 à 13:45
J'ai pas tout compris mais ceci, 'index?souspage= sujet.php'.
Il y a un espace entre le = et le s de sujet.
L'erreur ne vient pas de là ?
0
cs_malione Messages postés 3 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 17 juillet 2011
14 juil. 2011 à 13:38
merci stay pour ta réponse mais le problème venais pas de la ; mais si tu as un réponse pour raccourcir le script je suis preneur :)

la solution que j'ai trouver est celle ci :
<!-- Le corps -->


<!-- contenu du corps -->
<?php


$page = $_GET["pp"];
$bette = $_GET["bb"];
// page du menu principal
if($page)
{

if(file_exists($page)){
include($page);
echo($page);
}
elseif($page)
{
if(file_exists('p_animaux/'.$page)){
include('p_animaux/'.$page);
echo('p_animaux1 '.$page);
}
elseif($page)
{
if(file_exists('p_map/'.$page)){
include('p_map/'.$page);
echo('p_map2 '.$page);
}
elseif($page)
{
if(file_exists('p_faq/'.$page)){
include('p_faq/'.$page);
echo('p_faq3 '.$page);
}
elseif($page)
{
if(file_exists('p_guide/'.$page)){
include('p_guide/'.$page);
echo('p_guide4 '.$page);
}
elseif($page)
{
if(file_exists('p_item/'.$page)){
include('p_item/'.$page);
echo('p_item5 '.$page);
}
elseif($page)
{
if(file_exists('p_perso/'.$page)){
include('p_perso/'.$page);
echo('p_perso6 '.$page);
}
elseif($page)
{
if(file_exists('p_quete/'.$page)){
include('p_quete/'.$page);
echo('p_quete7 '.$page);
}
elseif($page)
{
if(file_exists('p_sujet/'.$page)){
include('p_sujet/'.$page);
echo('p_titre8 '.$page);
}
else
{
include('intro.php');
echo('false avec pp nitro '.$page);
}
}
}
}
}
}
}
}
}
}
//sous menu bestiale
elseif($bette)
{
if(file_exists($bette)){
include($bette);
echo($page);
}
elseif($bette)
{
if(file_exists('p_animaux/'.$bette)){
include('p_sujet/titre_best.php');
include('p_animaux/'.$bette);
echo('p_animaux nitro '.$bette);
}
else
{
include('intro.php');
echo('false avec bb sous bete '.$bette);
}
}
else
{
include('intro.php');
echo('false avec bb '.$bette);
}
}
else
{
include('intro.php');
echo('false sans pp ni bb '.$bette .$page);
}
?>



ma recherche maintenant est de rétrécir le script et de faire une boucle pour faire une recherche sur chaque répertoire
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
16 juil. 2011 à 12:26
Tu pourrais ajouter une variable, folder.

J'ai pris le temps de le faire.
J’espère ne pas avoir fait d'erreurs.

<!-- Le corps -->


    <!-- contenu du corps -->
    <?php
    $page = $_GET["pp"]; // page du menu principal
    $bette = $_GET["bb"]; // sous menu bestiale 
    $folder = $_GET["ff"]; // le dossier
    if ((! empty($folder)) && (file_exists($page))) {
        include $page;
        echo $page;
    } elseif (! empty($page)) {
        switch ($page) {
            case (file_exists($folder . '/' . $page)):
                include $folder . '/' . $page;
                echo $folder . ' ' . $page;
                break;
            default:
                include ('intro.php');
                echo ('false avec pp nitro ' . $page);
                break;
        }
    } elseif (! empty($bette)) {
        switch ($bette) {
            case (file_exists($folder . '/' . $bette)):
                include 'p_sujet/titre_best.php';
                include 'p_animaux/' . $bette;
                echo 'p_animaux nitro ' . $bette;
                break;
            default:
                include 'intro.php';
                echo 'false avec bb (sous bete) ' . $bette;
                break;
        }
    } else {
        include 'intro.php';
        echo 'false sans pp ni bb ' . $bette . $page;
    }
    ?>


0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
16 juil. 2011 à 12:48
J'ai fait une erreur sur la première condition.
$folder doit être vide.

if ((empty($folder)) && (file_exists($page))) {
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_malione Messages postés 3 Date d'inscription dimanche 12 juin 2011 Statut Membre Dernière intervention 17 juillet 2011
17 juil. 2011 à 21:27
super s'est exactement ce que je cherchais,
le seul truc qui m’embête s'est que sa m'oblige a mettre le nom du dossier dans mon lien alors que mon souhait était de le cachet d’où mon script a rallonge :) hors j'ai appris entre temps que le php ne savais pas faire de recherche autonome si on lui disais pas ou chercher, donc vu qu'il faut lui tenir la main au php me suis dit à la place de mettre le nom en clair du dossier, on donne dans mon lien pour le dossier un numéro
<?
$num = $_get['ff']; //on récupère le numéro 
?>

après je déclare une variable pour convertir le $num en nom du dossier correspondant
<?
$folder array ( array($num'1', $dossi = 'p_animaux'),
   array($num ='2', $dossi = 'p_map'),
   array($num ='3', $dossi = 'p_faq'),
   array($num ='4', $dossi = 'p_guide'));
?>


et la sa marche pas j'arrive pas a déclare ma variable pour que chaque array($num ='1', $dossi = 'p_animaux') ; me revois le dossier correspondant
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 juil. 2011 à 23:04
Salut,

Je ne suis pas certain d'avoir tout compris et j'ai lu un peu en diagonale, seulement "raccourcir le script", "m'oblige a mettre le nom du dossier dans mon lien alors que mon souhait était de le cachet", ... url rewriting, non ?

Quant au script qu'a gentiment écrit Stay pour toi attention aux failles (graves) de sécurité qu'il présente !
On ne doit en aucun cas laisser l'utilisateur choisir le fichier qu'il veut ouvrir !!
... imagine par exemple que je passe index?pp=administration.php&ff=admin

=> j'accède directement à ta page d'administration !!

Tu pourrais peut être te dire qu'il faut déjà trouver le nom du dossier et celui du fichier, certes, mais c'est souvent d'une facilité déconcertante (un petit bot) et dans bien des cas d'autres indices permettent de trouver.



"hors j'ai appris entre temps que le php ne savais pas faire de recherche autonome si on lui disais pas ou chercher, donc vu qu'il faut lui tenir la main au php [...]"
... heu, oui, comme n'importe quel autre langage, comme n'importe quelle recherche de fichier que tu effectues quotidiennement sur ta machine.
Tu devrais peut être jeter un oeil à set_include_path() mais en tout état de cause ce n'est vraiment pas recommandé dans ce cas.

Cordialement,


Kohntark -
0
Rejoignez-nous