pseudo frame problème

Petit nouveau ! | 6 Messages

27 déc. 2005, 17:17

Bonjour à tous,

je viens de débuter en php et souhaite refaire mon site grâce à des pseudos frame (pour remplacer les iframes).

Le menu
<a href="index2.php?Page=PageDefaut">Clear</a>
<a href="index2.php?Page=Versions" >Versions</a>
<?php
$PagesValides = array(
'PageDefaut' => 'home/home.php',
'Versions' => 'versions/versions.htm'');

 //--> TEST SI LA PAGE EST VALIDE
if (isset($PagesValides[$_GET['Page']])) {
include ($PagesValides[$_GET['Page']]);
}
else {
[color=red]include ($PagesValides[' PageDefaut ']);[/color]
}
?>
Le problème, c'est que quand j'arriv sur la page index2.php, un message d'erreur apparaît :
Warning: main(): Failed opening '' for inclusion (include_path='/var/www/sdb/f/5/bestofcharmed/include:.') in /var/www/sdb/f/5/bestofcharmed/index2.php on line 73
L'erreur viendrait de la ligne en rouge, mais je n'arrive pas à la cerner :?

Voila...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 déc. 2005, 17:38

Salut,
les doubles quotes c'est fait exprès ?!
=>
 'Versions' => 'versions/versions.htm'');
serait mieux comme ceci:
'Versions' => 'versions/versions.htm');

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2005, 17:40

Salut,

il y a déjà une quote de trop à la fin de cette ligne :
'Versions' => 'versions/versions.htm''); 

Petit nouveau ! | 6 Messages

27 déc. 2005, 17:42

voila, c'est corrigé :roll: mais bon ça ne fonctionne pas non plus.

Le problème vient sûrement de la page par défaut parce que le lien :

http://www.blabla.com/index2.php?Page=PageDefaut

fonctionne !!

Donc je ne vois vraiment pas pourquoi ça ne marche pas :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 déc. 2005, 17:49

tu n'as pas le meme message d'erreur ?!

le chemin est correct ?

juste pour tester affiche $PagesValides[$_GET['Page']] avant l'inclusion.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

27 déc. 2005, 21:20


Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2005, 21:30

Et en enlevant les espaces avant et après PageDefaut ?
include ($PagesValides[' PageDefaut ']); 
Je suis d'accord avec Truc, fais des echo de contrôle pour savoir où tu es dans ton test, ce que tu inclus

Petit nouveau ! | 6 Messages

27 déc. 2005, 22:19

J'ai fais ça :
<?php
$PagesValides = array(
'PageDefaut' => 'home/home.php',
'Versions' => 'versions/versions.htm',
'MeContacter' => 'Pages/FormulaireContact.php');

 //--> TEST SI LA PAGE EST VALIDE
if (isset($PagesValides[$_GET['Page']])) {
include ($PagesValides[$_GET['Page']]);
}
else {
$PagesValides[$_GET['Page']] 
include ($PagesValides[' PageDefaut ']);
}
?>


et ça me donne :
Parse error: parse error, unexpected T_VARIABLE in /var/www/sdb/f/5/bestofcharmed/index2.php on line 77

Mammouth du PHP | 1311 Messages

27 déc. 2005, 22:24

salut
tu a oublié un ;

proposition
$PagesValides = array(
'PageDefaut' => 'home/home.php',
'Versions' => 'versions/versions.htm',
'MeContacter' => 'Pages/FormulaireContact.php'); 

if(isset($_GET['page']){
if(in_array($_GET['page'],$PagesValides))
include $PagesValides[$_GET['page']];
else
include 'pagepardefault.php';
}
voila c'est corrigé
Modifié en dernier par jeff le 27 déc. 2005, 22:58, modifié 2 fois.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2005, 22:25

Il manque un point-virgule à l'avant dernière ligne.
Avant dernière ligne qui ne sert à rien d'ailleurs, puisqu'il n'y a pas de echo pour voir la variable.

Tu nous aides pas là...

Petit nouveau ! | 6 Messages

27 déc. 2005, 22:29

Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in /var/www/sdb/f/5/bestofcharmed/index2.php on line 70
:?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 déc. 2005, 22:32

Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in /var/www/sdb/f/5/bestofcharmed/index2.php on line 70
:?
C'est tout ? :shock:
ça correspond à quel code ? C'est quoi la ligne 70 ?

Désolé, mais il va falloir faire quelques efforts, nous on veut bien t'aider mais on est pas extra lucide non plus.
Les parse error ça se corrige bien en cherchant un peu, et j'ai pas l'impression que c'est ce que tu fais en ce moment :roll:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

27 déc. 2005, 22:56

C'est sur essaie d'être le plus précis possible.

Un conseil toujours mettre des echo dans tous les sens pour débugger :wink:

tu as quel code maintenant?
il y a un schmilblick qui s'est glisé dans le code de jeff :
if(isset(£_GET['page'])
un "£" a la place d'un "$".

Apres places dans les deux cas du teste (if) un:
echo $PagesValides[$_GET['Page']];

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Petit nouveau ! | 6 Messages

28 déc. 2005, 00:08

désolé pour mon ignorance XD

http://www.netsources-fr.com/index1.php ... rames_secu

J'ai utlisé la méthode 3 et ça marche très bien

Merci à tous :)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 déc. 2005, 00:12

désolé pour mon ignorance XD
n'en soit pas désolé au moins tu es revenu pour dire que tu as trouvé :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute