Problème lors du remplacement des frames par des includes [Résolu]

Signaler
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011
-
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011
-
Salut à tous !

Tout d'abord, voici le principe : il s'agit d'un espace perso, autrement dit un utilisateur sur un site avec un compte perso et des fonctionnalités.

Les possibilités de l'utilisateur sont relatives au lien de mon menu : pour chaque lien une action. Par exemple, le premier lien c'est "visualiser ses informations en cours", donc quand il clique, un tableau apparait au centre avec ses infos !

Mon problème est donc que cela marchait avec les frames, le tableau apparaissant dans le bloc central de ma page. Mais à présent par le biais des inclusions, cela me renvoi le tableau dans une nouvelle page toute blanche..

Comment faire pour générer mon tableau au sein de ma partie centrale de la page en cours ?

Voici comment je fais appel à l'exécution du fichier php qui génère le tableau lors du clic :

print("<td class='cellule_menuclient'>Visualiser les informations
</td>");


Merci de votre aide,

Peace


 

25 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Re,

1- Lorsque tu as ce message d'erreur tu es certain que l'url dans la barre d'adresse contient bien les variables ?

http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php?partieCentrale= [un nom de page valide]


Je suis prêt à parier que la partie bleue, ou soulignée, manque.

Le fait que tu ais une adresse comme ça :http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php peut être normal dans la navigation (arrivée sur la page, pas encore cliqué sur un lien, ...) c'est pour cela qu'il te faut définir une page par défaut, comme je l'ai dit plusieurs fois précédemment.

2- A ce propos je re poste une portion de mon message du 19 à 16:36:29 pour lequel je n'ai pas trouvé de réponse :
Euh ... tu retransmets au serveur des données qu'il connait déjà.
Où est l'intérêt ? Tu t'en sert côté client ?
J'ai une petite idée sur ce que tu cherches à faire ... tu devrais utiliser les sessions.

Si, comme j'ai cru le comprendre, l'utilisateur est identifié par un login / pass il n'y a pas à tergiverser => il faut utiliser les sessions, ça te facilitera grandement la tâche.


N'hésite pas à reposter le code si tu ne t'en sors pas, ça m'aidera à y voir plus clair, car là, sans savoir de quoi tu parles exactement ce n'est pas simple.

Cordialement,

Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

... ça fait vraiment léger comme information, non ? :)
Il serait utile de voir le code nécessaire à la compréhension, notamment la partie où tu traites tes variables $_GET et où tu exécutes les include().


Cordialement,


Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Salut !

Donc alors, j'ai tout d'abord un fichier principal qui génère la page (je met que la partie qui nous intéresse) :

<?php

$numctr = $_POST["numctr"];
$ctract = $_POST["ctract"];

$includeAllowed = array(
    'entete-client.php' => 1,
    'banniere_client.php' => 1,
    'menu_client.php' => 1,
    'centre_client.php' => 1,
    'bas_client.php' => 1,
);
include ('entete_client.php');	
include('banniere_client.php');
include('menu_client.php');
include('centre_client.php');
include('bas_client.php');
?>


Ensuite, dans ces fichiers, c'est menu_client qui évidemment gère le menu :

<?php
print("
");
print("\");
print(\"----
\");
print(\"Visualiser les informations
, \");
print(\"|, \");
print(\"Demander un document
, \");
print(\"|, \");
print(\"Quitter
, \");
print(\"\");
print("
");
print("
");
?>


J'aimerais que lorsque je clique sur un des liens ci-dessus, il m'affiche ce qui est exécuté dans le fichier php appelé. En fait, il le fait déjà, mais j'aimerais qu'il me l'affiche pas dans une nouvelle page mais dans le cadre central.

Autrement dit, comment utiliser le principe des frames sans les frames.

Merci d'avance,

Peace

Voilà,
 
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Bon, je pense que je vais tout simplement recréer l'ensemble de mes pages à chaque fois, pour que l'utilisateur est l'impression que seul le cadre central est rechargé !

Après si il y a une solution qui m'évite de tout renvoyer à chaque fois je suis preneur !!^^

Merci d'avance !

Peace
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Tu devrais déjà commencer par corriger ton code HTML en pensant à fermer les balises () Hormis le fait que ça ne soit pas valide ça peut parfois mener à des résultats étranges.

Ensuite je ne vois pas le lien entre la première partie de code et la seconde :

[index.php?partieCentrale=[page à inclure] lien de navigation]

index.php :


[include de l'entête, bannière, etc ...]

// tableau des pages autorisées
$includeAllowed = array(
    'machin',
    'truc'
);

if(isset($_GET['partieCentrale']) // test que la variable GET existe bien dans l'url transmise
        && in_array($_GET['partieCentrale'], $includeAllowed)) { // test si la page est autorisée à l'affichage
    
   include($_GET['partieCentrale'].'.php'); // inclus la page demandée
} else include 'default.php'; // sinon inclus la page par défaut

[include pied de page, ...]

?>
[index.php?partieCentrale=machin machin]
[index.php?partieCentrale=truc truc]
[index.php?partieCentrale=bidule bidule]



Voili voilou, en espérant que ça te mette un peu plus sur la voie.

Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Bon, je pense que je vais tout simplement recréer l'ensemble de mes pages à chaque fois

Tu n'as pas une plus mauvaise idée ?


l'impression que seul le cadre central est rechargé

Si tu veux que ça ne soit même pas une impression mais la réalité tu peux te tourner vers Ajax.


Cordialement,


Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Salut ! Et merci pour ta réponse !

Tout d'abord, je ne peux pas utiliser Ajax, je suis contraint au php par la personne qui me demande de réaliser ce travail.

Sinon, j'ai commencé par refermer mes balises .

Ensuite, je vais rajouté les différents test pour l'includeAllowed. J'étais tombé sur un tuto, mais je m'étais pas encore mit sur cette partie, je voulais d'abord voir pour la gestion de mes liens. Mais merci d'avoir prit le temps de me l'expliquer^^

Sinon, là ou je veux bien un peu plus d'explications, c'est sur le fait que tu me parle de méthode GET ? Pour ma part, je ne pense utiliser que la méthode POST ?!!

Je reprends vite fait :

dans un premier fichier je déclare mes variables, et teste si les identifiants saisies sont bons (je met juste la déclaration) :

<?php

$numctr = "";
$nomctr = "";
$ctract = "";

//après plusieurs test et accès à la base je récupère certaines infos :

$numctr = mysql_result($result,$index,"utilisateur.numctr");
$nomctr = mysql_result($result,$index,"utilisateur.nomctr");
$ctract = mysql_result($result,$index,"utilisateur.ctract");

?>
//si mes flag d'erreurs sont à false, alors j&#8217;inclus et j'exécute le fichier suivant :

<?php
print("<html>");
print("<head>");
print("<title>Test espace perso</title>");
print("<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>");
print("</head>");

print("");

print("<form name='login' method='post' action='/espaceperso/principal.php' target='_top'>");
print("");
print("");
print("");
print("</form>");
print("");

print("</html>");
?>

// et donc l'appel au fichier principal via le form nous fait arriver ce que j'ai donné au début : 

<?php

$numctr = $_POST["numctr"];
$nomctr = $_POST["nomctr"];
$ctract = $_POST["ctract"];

include ('entete_client.php');	
include('banniere_client.php');
include('menu_client.php');
include('centre_client.php');
include('bas_client.php');

//Avec le menu plus loin..
?>


Voilà, je ne fais à aucun moment appel à la méthode GET, alors peut-être que c'est mon utilisation de la méthode POST qui n'est pas correcte.Pourtant mes infos ne sont jamais visibles dans la barre d'adresse. En tout cas je veux bien quelques explications^^

Merci d'avance !!

Peace
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

J'en profite maintenant que j'ai un peu regardé pour les includeallowed ! Je me demande si c'est utile finalement dan mon cas ?!

Mes liens sont dans mon menu et non pas dans mon fichier principal, donc je peux pas faire un truc du genre :

$_GET['partieCentrale']


ET

[index.php?partieCentrale=machin machin]


Je vois pas ce que tu indique grâce à "partieCentrale" ?

Peace
 
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

J'ai un peu plus comprit tes explications sur les includeAllowed, mais je vois pas comment mettre ça en place dans ma situation.

J'ai donc comprit que je pouvais directement inclure l'entete et la banniere. Ensuite c'est là que je commence à perdre pied : la partie avec les autorisations et les différents test, je vois pas à quoi elle peut servir dans mon cas :$ Mon menu je le génère simplement, après c'est le clic sur le lien qui va exécuter mes fonctions et créer l'affichagee des infos dans un tableau..

Enfin la je suis un peu perdu je crois :/

Merci d'avance, et désolé si jamais je ne suis pas clair dans mes explications :$

Peace

 
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

J'ai envi de me pendre...

Je viens de revérifier un autre point, ça me chiffonnait cette histoire de méthode GET, et effectivement mes paramètres passent bien dans l’URL...

En fait, l'identification se fait via la méthode post, et pour les autres exécutions on passe à la méthode GET...

Désolé mais j'avoue que reprendre le travail de quelqu'un d'autre n'a vraiment rien d'amusant.. Et je m'y perd un peu. Et évidemment il n'y a aucun commentaires !

Peace
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Re,

... c'est bien opaque tout ça :)

Il faut poser les problématiques 1 à 1 :
1-
Comment faire pour générer mon tableau au sein de ma partie centrale de la page en cours ? [...]
j'ai tout d'abord un fichier principal qui génère la page


Je comprends que tu as une page principale qui contient le squelette :
entete_client.php
banniere_client.php
menu_client.php
centre_client.php
bas_client.php
et que tu souhaites inclure dans la partie centrale le contenu demandé par l'utilisateur via un clic sur les liens (demandedoc.php, infosclient.php, ...)

Est ce bien cela ??
Si oui tes liens doivent pointer sur la page principale avec en paramètre le contenu à afficher (demandedoc.php, infosclient.php,...) cf mon précédent post.
Au lieu de ça tes liens appelle directement les pages ("

[...]
</form>

"index.php?partieCentrale=truc" postera le formulaire vers ta page principale index.php qui inclura en contenu la page truc.php


En fait, l'identification se fait via la méthode post, et pour les autres exécutions on passe à la méthode GET...

formulaires passés en POST
contenu à afficher passé en GET
... c'est très bien comme ça !! :)

Et juste au passage, au cas où :
Pourtant mes infos ne sont jamais visibles dans la barre d'adresse.

Que ce soit la méthode GET ou la méthode POST aucune n'est sécurisée. Pour un pirate la difficulté de récupération de ces données est la même.
Que ce soit visible dans la barre d'adresse ou pas ne change que peu de chose.


3- sécuriser l'appel des pages
Mes liens sont dans mon menu et non pas dans mon fichier principal

Si tu appelles chaque page en dur et que tu ne suis pas la méthode de "centralisation" que je t'exposais c'est sur que ça ne sert à rien.
C'est uniquement nécessaire lorsque tu fais des includes contenant des données provenant de l'utilisateur.

Cordialement,

Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Re,

Je me suis "peut-être" poser trop de questions en même temps :$^^

1- C'est tout à fait ce que je souhaite faire ! Je suis en train d'essayer de mettre en place les liens. J'ai essayé ça :

print("<td class='cellule_menuclient'>
Visualiser les infos

</td>");
//contenu_espaceperso représente l'id de la DIV dans mon css, et correspond au div central de la page centre_client.php


Pour le moment je reçois le message d'erreur suivant pour mes 3 variables :
Notice: Undefined index: numctr in \\srv\Test\SiteWeb\page\espaceperso\principal_client.php on line 3


En fait, je ne suis pas sur de voir à quoi correspond partieCentrale !! J'ai compris que c'était l'inclusion du fichier de contenu appelé grâce au lien cliqué, mais ça représente quoi dans mes pages ? Est-ce que c'est l'id de la div comment j'ai essayé plus haut ? Ou le nom de ma page qui gère le centre (central_client.php) ?..

Merci une fois de plus, c'est pourtant clair mais j'admets que la je galère un peu. J'ai un peu de mal à me remettre dans le dev.

Je verrais pour la suite une fois que j'aurais résolu cette partie^^

Peace
 
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Pour le moment je reçois le message d'erreur suivant pour mes 3 variables


Tu as une faute de frappe "?" à remplacer par "&"
Visualiser les infos

J'ai compris que c'était l'inclusion du fichier de contenu appelé grâce au lien cliqué, mais ça représente quoi dans mes pages ?


il y a la réponse dans ta question et du coup je ne sais pas trop quoi répondre.
"partieCentrale" (que tu appelles "contenu_espaceperso") représente le nom du fichier qui devra être inclu dans index.php (que tu appelles "principal_client.php")
... après ce qu'il y a dedans c'est à toi de voir.

Un autre exemple :


menu_client.php
[...]
<td class='cellule_menuclient'>
        Visualiser un truc
    
</td>
<td class='cellule_menuclient'>
        Visualiser une autre page
    
</td>


principal_client.php

<?php
// définition du tableau contenant les pages autorisées à l'affichage
$includeAllowed = array(
    'principal_client',
    'connexion',
    'truc',
    'autrePage'
        //, [toutes les autres pages autorisées]
);


/**
 * définition de la page du "contenu changeant" à inclure
 */
if (isset($_GET['contenu_espaceperso']) // test que la variable GET existe bien dans l'url transmise
        && in_array($_GET['contenu_espaceperso'], $includeAllowed)) { // test si la page est autorisée à l'affichage
    // remarque que j'ajoute l'extension ici, plutôt que la faire transiter via l'url 
    $pageContenuChangeant = $_GET['partieCentrale'] . '.php';
} else
    $pageContenuChangeant = 'default.php'; // sinon inclus la page par défaut, peut être connexion.php
?>

<html>
    <head>
        [doctype, metas, etc ...]
    </head>
    
        <?php
        include ('entete_client.php');
        include('banniere_client.php');
        include('menu_client.php');
        //[éventuellement d'autres includes ou du code HTML/JS commun à toutes les pages']


        /**
         * tu peux, ou pas, mettre un div ici, ou plusieurs, ou autre chose dès l'instant ou il s'agit
         * d'éléments communs à toutes les pages; L'id que tu donnes à tes balises HTML
         *  n'a rien à voir avec le nom de la page à inclure
         */
        /**
         * la partie qui change en fonction du lien cliqué
         */
        include($pageContenuChangeant); // inclusion du fichier demandé


        include('bas_client.php');
        //[éventuellement d'autres includes ou du code HTML/JS commun à toutes les pages']
        ?>

    
</html>


infosclient.php
<?php
/**
 * récupération des données postées
 */
if (isset($_POST['login']) && isset($_POST['pass'])) {
    $login = $_POST['login'];
    $pass = $_POST['pass'];

    /**
     *  attention : en fonction de l'usage que tu fais de login et pass
     *  il conviendra sans doute de les traiter pour limiter les failles de sécurité
     */
} else //[si pas de réception de login et pass ...]
?>

[pas de balises head, body, ... puisque déjà présent dans principal_client.php]


    Je suis la page "infosclient.php" qui a été incluse dans principal_client.php, lui même appellé par le formulaire de la 
    page connexion.php ("principal_client.php?contenu_espaceperso=infosclient.php")
    j'ai reçu les données suivante provenant de connexion.php en POST :
    <?php
    echo $login . '
';
    echo $pass . '
';
    ?>

    patati patata, traitement, ...






autrePage.php
[pas de balises head, body, ... puisque déjà présent dans principal_client.php]
<?php
if(isset($_GET['param1'])) {
    $param1 = $_GET['param1'];
} else {
    $param1 = 'oups, je n\'existe pas';
}
?>


    Je suis la page autrePage.php, incluse dans principal_client.php qui a été 
    appellée via un clic sur le lien "Visualiser une autre page"
    j'ai reçue cette donnée en GET :
    
    echo $param1;





connexion.php
[pas de balises head, body, ... puisque déjà présent dans principal_client.php]


    <form method='POST' action='principal_client.php?contenu_espaceperso=infosclient'>
        
        >
        
    </form>
    [...]





Ce n'est qu'un exemple fait à la va vite pour tenter de mieux me faire comprendre.
Tu as une page principale qui contient les éléments commun à toutes les pages et qui se charge
d'inclure le "contenu changeant" : principal_client.php
Une page connexion.php qui poste des données vers la page infosclient
Un lien 'Visualiser une autre page' qui inclus autrePage.php dans la page principale et qui transmet en get la
variable param1 à autrePage.php


Autre chose :
//après plusieurs test et accès à la base je récupère certaines infos :

$numctr = mysql_result($result,$index,"uti[...];


Ok ...

//si mes flag d'erreurs sont à false, alors j’inclus et j'exécute le fichier suivant :

print("<form name='login' method='post' action='/espaceperso/principal.php' target='_top'>");
print("");
print("");
print("");
print("</form>");


Euh ... tu retransmets au serveur des données qu'il connait déjà.
Où est l'intérêt ? Tu t'en sert côté client ?
J'ai une petite idée sur ce que tu cherches à faire ... tu devrais utiliser les sessions.

Cordialement,

Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Salut !!

Bon, j 'ai commencé par corrigé l'erreur de ? en &.

Ensuite, j'ai modifié mes fichiers comme suit :

principal.php:
<?php

$numctr = $_POST["numctr"];
$nomctr = $_POST["nomctr"];
$ctract = $_POST["ctract"];

$pageContenuChangeant ="";

$includeAllowed = array(
    'principal_client',
    'entete_client',
    'banniere_client',
    'menu_client',
    'centre_client',
    'bas_client',
    'infosclient',
    'demandeinfos'
);

if (isset($_GET['centre_client'])
    && in_array($_GET['centre_client'], $includeAllowed)) {
    $pageContenuChangeant = $_GET['centre_client'] . '.php';
}

include ('entete_client.php');
include ('banniere_client.php');
include ('menu_client.php');
include ($pageContenuChangeant);
include ('bas_client.php');

?>


Et menu_client.php :

<?php
print("
");
print("\");
print(\"----
\");
print(\"Visualiser les dossiers
, \");
print(\"|, \");
print(\"Quitter
, \");
print(\"\");
print("
");
print("
");
?>


Pour l'instant ça me renvoi le message d'erreur suivant :

Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:\User\Application\Php') in \\srv\Test\SiteWeb\page\espaceperso\principal_client.php on line 36

Je comprend que c'est l'include de la variable qui lui pose problème, mais j'ai l'impression qu'il ne trouve pas un fichier, du coup je dirais qu'il trouve pas "centre_client.php", mais pourtant il est bien présent..

Sinon, parce que c'est encore flou sur le même point : partieCentrale

"partieCentrale" (que tu appelles "contenu_espaceperso") représente le nom du fichier qui devra être inclu dans index.php (que tu appelles "principal_client.php")


if (isset($_GET['contenu_espaceperso'])
&& in_array($_GET['contenu_espaceperso'], $includeAllowed)) {
$pageContenuChangeant = $_GET['partieCentrale'] . '.php';
} else
$pageContenuChangeant = 'default.php';


Donc ce que je comprend c'est que contenu_espaceperso = partieCentrale (même chose, il s'agit finalement de la page centre_client.php ??). Si on peut utiliser centre_client ça m'aiderait bien, parce que là je me mélange les pinceaux :S
A moins que contenu_espaceperso et partieCentrale représente 2 pages différentes et dans ce cas il me manque une page^^

Merci d'avance,

Peace
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
arf, c'est rudement compliqué pour un truc simple


je me mélange les pinceaux

C'est ce que je me disais aussi

Donc ce que je comprend c'est que contenu_espaceperso = partieCentrale (même chose, il s'agit finalement de la page centre_client.php ??)

Oui et non.

Tentons de synthétiser les différents éléments qui nous intéresse :
[list]
[*] contenu_espaceperso = partieCentrale = centre_client = le nom de la variable GET contenant le nom de la page à inclure. Son seul but est de faire transiter le nom de la page à afficher dans l'espace perso via l'url (GET) :
index.php?centre_client =[la page à inclure dans index.php]

Que tu récupères ensuite via $_GET['centre_client']

Tu peux utiliser n'importe quel nom, ça n'a aucune importance.
Pour ne pas compliquer je ne parlerai plus que de centre_client

[*]id de la div : on s'en fiche carrément, ça n'a rien à voir avec la problématique

[*]$includeAllowed : tableau contenant les noms, sans extension, des pages qui sont autorisées à l'affichage.
Il évite à un utilisateur malveillant d'entrer ce genre de truc dans l'url :
principal_client.php?contenu_espaceperso= /administration/mapageAdmin
/list


A moins que contenu_espaceperso et partieCentrale représente 2 pages différentes et dans ce cas il me manque une page^^

Je l'ai déjà dit plus mais je me répète volontairement pour tenter de mieux me faire comprendre :
Le contenu de la variable GET "contenu_espaceperso" (c'est juste un nom de variable, rien de plus ) sert à faire transiter le nom de la page demandée dans l'url (index.php?contenu_espaceperso =[nom de la page à inclure dans index.php])
Elle peut prendre toutes les valeurs que tu as définies dans le tableau $includeAllowed.
Toute autre valeur inclura default.php (dans mon exemple) ... ou la page que tu veux évidemment.


Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.;C:\User\Application\Php') in \\srv\Test\SiteWeb\page\espaceperso\principal_client.php on line 36

=> impossible d'inclure le fichier de nom '' (vide) dans principal_client.php à la ligne 36
... tout simplement :
la variable $_GET['centre_client'] n'existe pas, ou existe mais n'est pas présente dans le tableau des pages autorisées.
=> l'url qui a appelée la page est celle ci :
principal_client.php?centre_client=dossierclient.php[...]

Donc $_GET['centre_client'] devrait bien exister ... sauf que :
"dossierclient.php
" ne fait pas partie des pages autorisées.
Tu devrais mettre une page par défaut comme je l'ai fais.

Donc il suffit d'ajouter "dossierclient" aux pages autorisées, et de virer l'extension dans le lien.
Tu pourrais également passer systématiquement l'extension dans l'url en modifiant le script en conséquence mais ça ne servirait vraiment à rien.

Pour ce qui est du tableau des pages acceptées il est inutile de mettre les pages incluses "en dur" dans principal_client.php, (ni principal_client) Ce que l'on cherche à vérifier ici sont les noms des pages à inclure qui sont demandées par le client.
'entete_client', 'banniere_client','menu_client', etc ... ne devraient en aucun cas se retrouver affichées en tant que contenu changeant.

Cordialement,

Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Okey.. Effectivement, c'est rudement compliqué pour un truc simple..:$^^

Bon, j'ai fait quelques modifs : le "dossierclient" existait bien dans le tableau des pages autorisés, c'est moi qui fait une erreur qd je t'ai mit les infos. Par contre j'ai supprimé l'extension php dans mon lien.

Quand je clique sur mon lien, je récupère enfin mon tableau dans ma page ^^(pas au bon endroit, il se décale à droite vu qu'il na pas assez de places^^), mais ça je devrais pouvoir le gérer :) L'important est qu'il soit dans la div du centre :p

Donc un gigantesque merci pour ton aide , et surtout pour ta patiente :D

Sinon, pour ce message d'erreur :

Warning: include() [function.include]: Failed opening '' for inclusion ...principal_client.php on line 30

Il est déclenché lors des inclusions php pour la création de la page de l'espace perso, et bloque sur cette ligne :
include ($pageContenuChangeant);


Pourtant, j'ai vérifié en reprenant ta logique :
impossible d'inclure le fichier de nom '' (vide) dans principal_client.php à la ligne 36
... tout simplement :
la variable $_GET['centre_client'] n'existe pas, ou existe mais n'est pas présente dans le tableau des pages autorisées.


Ma page est bien présente, et j'ai pas fait d'erreur de faute de frappes. De plus, l'inclusion se fait bien puisque mon lien fonctionne et que la partie centrale est créée ?!
Je comprends pas ce qui gêne finalement

Merci,

Peace
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
en voilà une bonne nouvelle.
C'est toujours agréable d'aider lorsque qu'il y a une réelle motivation des demandeurs, ce qui n'est pas toujours le cas hélas

Si il te met "Failed opening ''" il n'y a pas 36 solutions :
- la variable GET n'existe pas
- le fichier n'est pas autorisé dans le tableau (attention à la casse)
- le fichier n'existe pas (attention à la casse)

Quel est le nom exacte du fichier de création de l'espace perso ?
Quel est le lien complet ?

Attention aux éventuels caractères spéciaux, espaces ... dans le nom du fichier.

De plus, l'inclusion se fait bien puisque mon lien fonctionne et que la partie centrale est créée ?!

Je reste dubitatif là ...


Cordialement,

Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Bon alors, le nom exact du fichier de création de l'espace perso c'est "principal_client.php" ! Il exécute les includes des autres fichiers php.

Le lien complet : http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php

Si c'est bien ce que tu me demande :$

Au passage j'ai cliqué sur l'erreur et j'ai eu une page 404 :

The requested URL /domaine_fra/page/espaceperso/function.include was not found on this server.

Sinon j'ai bien vérifié la casse des noms de fichier, et dans le tableau, mais c'est bon de se coté là !

Merci,

Peace

 
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
The requested URL /domaine_fra/page/espaceperso/function.include was not found on this server.

Mauvaise configuration du serveur qui ne redirige pas vers le bon domaine ... de là à me rappeler de tête la variable à définir
'faudrait j'ter une oeil plus attentif ^^
En tous cas ça n'a pas d'importance, puisqu'en plus, en production, aucune erreur n'est affichée au client.

Bon alors, le nom exact du fichier de création de l'espace perso c'est "principal_client.php" ! Il exécute les includes des autres fichiers php.

Je ne te suis plus, ce n'est pas le fichier principal ça ?
Celui qui contient le squelette du site et qui est commun à toutes les pages appelées via :


Il ne peut pas être à la fois fichier "squelette" et fichier à inclure, ça n'a aucun sens. Ca veut dire que tu as une page avec les balises <html><head>, metas, entêtes, pied de page, menu, etc ... que tu inclues dans elle même ... gloups

http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php

Ca fait bien partie des raisons que j'évoquais =>
- la variable GET n'existe pas

Hummm, nous sommes bien d'accord hein, cette variable n'existe pas ?


Si la création de ton espace perso passe par un formulaire, etc... tu le mets dans un fichier appelé comme tu veux, disons creation_espace.php, tu ajoutes 'creation_espace' à ton tableau d'autorisations, et tu l'appelles comme les autres pages :
http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php?centre_client=creation_espace

Pour ce qui est de récupérer les données POST du formulaire suffit de procéder comme je l'ai indiqué dans un précédent post.


... après j'ai peut être mal compris ton dernier message, ou le lien que tu as donné est erroné.


Cordialement,

Kohntark -
Messages postés
129
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
26 juillet 2011

Re,

j'avais effectivement un doute sur la réponse à t'apporter, et ce qu tu m'a demandé !

Effectivement principal_client.php est la page qui contient le squelette, mais j'ai cru que c'était ce que tu me demandais quand tu me parlais du fichier de création de l'espace perso --> pour moi il construit l'espace perso en générant la page d'accueil de l'espace perso via les includes...

Du coup, qu'elle est la page que tu me demande ? Celle qui est incluse lorsque l'on clique sur le lien ?

Dans ce cas, c'est dossierclient.php, et le lien après avoir cliqué :

http://siteweb.domaine.int/domaine_fra/page/espaceperso/principal_client.php?partieCentrale=dossierclient¶m1=test¶m2=nnn

Je n'avais pas bien compris tes dernières questions donc je m'excuse pour cette réponse qui fait perdre un peu de temps :$

Merci,

Peace