|
|
|
|
Bonjour,
Comme l'indique ce titre, j'ai cette erreur qui s'affiche depuis que j'ai du supprimer ma BDD. Depuis, je pense l'avoir refaite comme elle était, mais lorsque j'arrive sur la page de connexion (et de déconnexion), elle m'affiche cette erreur là :
"Notice: Undefined variable: page in C:\wamp\www\Forces-Opposantes\menu.php on line 132"
Elle m'en affiche plusieurs en plus. J'ai vérifier, je n'ai aucune variable à ces lignes là, à part une variable $i qui compte les ligne, et une variable $page qui est définie par moi-même après une suite de conditions. Que faire ?
Merci d'avance !
Configuration: Windows XP Opera 9.64
<?php
if (isset($_SESSION['connecte']) AND $_SESSION['connecte'] == true)
{
mysql_connect("localhost", "root", "");
mysql_select_db("forces-opposantes");
$retour = mysql_query("SELECT * FROM membres WHERE ID = '".$_SESSION['ID']."'");
$donnees = mysql_fetch_array($retour);
include("session.php");
mysql_close();
$nomPage = $_SERVER['PHP_SELF'];
$nomPage = preg_replace("#^/[A-Za-z-]{1,}/([a-z_]{1,}.[a-z]{1,4})$#", "$1", $nomPage);
if ($nomPage == "accueil_membre.php")
{
$page = 1;
}
elseif ($nomPage == "marche.php")
{
$page = 2;
}
elseif ($nomPage == "banque.php")
{
$page = 3;
}
elseif ($nomPage == "groupe.php")
{
$page = 4;
}
elseif ($nomPage == "forum.php")
{
$page = 5;
}
$i = 1;
while ($i <= 5)
{
if ($i == $page)
{
?>
<div class="element_menu_centre">
<?php
}
else
{
?>
<div class="element_menu">
<?php
}
?>
<table>
<tr>
<td>
<?php
if ($i == 1)
{
?>
<a href="accueil_membre.php">Planque</a>
<?php
}
elseif ($i == 2)
{
?>
<a href="marche.php">Marché</a>
<?php
}
elseif ($i == 3)
{
?>
<a href="banque.php">Banque</a>
<?php
}
elseif ($i == 4)
{
?>
<a href="groupe.php">Groupe</a>
<?php
}
elseif ($i == 5)
{
?>
<a href="forum.php">Forum</a>
<?php
}
?>
</td>
</tr>
</table>
</div>
<?php
$i++;
}
?>
<?php
}
else
{
$nomPage = $_SERVER['PHP_SELF'];
$nomPage = preg_replace("#^/[A-Za-z-]{1,}/([a-z]{1,}.[a-z]{1,4})$#", "$1", $nomPage);
if ($nomPage == "index.php")
{
$page = 1;
}
elseif ($nomPage == "news.php")
{
$page = 2;
}
elseif ($nomPage == "inscription.php")
{
$page = 3;
}
elseif ($nomPage == "faq.php")
{
$page = 4;
}
elseif ($nomPage == "contact.php")
{
$page = 5;
}
$i = 1;
while ($i <= 5)
{
if ($i == $page) // Ligne 132
{
?>
<div class="element_menu_centre">
<?php
}
else
{
?>
<div class="element_menu">
<?php
}
?>
<table>
<tr>
<td>
<?php
if ($i == 1)
{
?>
<a href="index.php">Accueil</a>
<?php
}
elseif ($i == 2)
{
?>
<a href="news.php">Journal</a>
<?php
}
elseif ($i == 3)
{
?>
<a href="inscription.php">Inscription</a>
<?php
}
elseif ($i == 4)
{
?>
<a href="faq.php">F.A.Q.</a>
<?php
}
elseif ($i == 5)
{
?>
<a href="contact.php">Contact</a>
<?php
}
?>
</td>
</tr>
</table>
</div>
<?php
$i++;
}
}
?>
|
Ce code là ne vas pas :
$nomPage = $_SERVER['PHP_SELF'];
$nomPage = preg_replace("#^/[A-Za-z-]{1,}/([a-z_]{1,}.[a-z]{1,4})$#", "$1", $nomPage);
if ($nomPage == "accueil_membre.php")
{
$page = 1;
}
elseif ($nomPage == "marche.php")
{
$page = 2;
}
elseif ($nomPage == "banque.php")
{
$page = 3;
}
elseif ($nomPage == "groupe.php")
{
$page = 4;
}
elseif ($nomPage == "forum.php")
{
$page = 5;
}
Je pense que ce que tu veux faire c'est que quand l'utilisateur tape http://www.example.org/forum.php tu affiches la page n°5. Mais ce que tu as fait ne marche pas car PHP_SELF récupère le nom de fichier réel (qui autrement dit est toujours le même). Conclusion : $nomPage n'a pas une valeur que tu attends, et du coup $page vaut NULL ! Remplace ton cafouilli pour inclure la bonne page en utilisant la redirection ou la réécriture d'URL (cf Google). Par exemple l'appel à /groupe.php sera réécrit ou redirigé en/sur /index.php?page=4 L'urgent est fait, l'impossible est en cours, Pour les miracles, prévoir un délai ... |
J'ai regardé la valeur de nomPage, et elle affiche bien ce que je cherche.
|
J'ai pas cherché à comprendre la suite du code mais pfiou la vache, quel truc compliqué pour faire pas grand chose ^^
|