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é

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 ?
ç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

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
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é
