Page 1 sur 1

pseudo frame problème

Posté : 27 déc. 2005, 17:17
par eric251
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...

Posté : 27 déc. 2005, 17:38
par Truc
Salut,
les doubles quotes c'est fait exprès ?!
=>
 'Versions' => 'versions/versions.htm'');
serait mieux comme ceci:
'Versions' => 'versions/versions.htm');

Posté : 27 déc. 2005, 17:40
par ouckileou
Salut,

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

Posté : 27 déc. 2005, 17:42
par eric251
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 :?

Posté : 27 déc. 2005, 17:49
par Truc
tu n'as pas le meme message d'erreur ?!

le chemin est correct ?

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

Posté : 27 déc. 2005, 21:20
par eric251

Posté : 27 déc. 2005, 21:30
par ouckileou
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

Posté : 27 déc. 2005, 22:19
par eric251
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

Posté : 27 déc. 2005, 22:24
par jeff
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é

Posté : 27 déc. 2005, 22:25
par ouckileou
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à...

Posté : 27 déc. 2005, 22:29
par eric251
Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or '$' in /var/www/sdb/f/5/bestofcharmed/index2.php on line 70
:?

Posté : 27 déc. 2005, 22:32
par ouckileou
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:

Posté : 27 déc. 2005, 22:56
par Truc
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']];

Posté : 28 déc. 2005, 00:08
par eric251
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 :)

Posté : 28 déc. 2005, 00:12
par Truc
désolé pour mon ignorance XD
n'en soit pas désolé au moins tu es revenu pour dire que tu as trouvé :wink: