PHP et redirect - Page 2
Résolu
Précédent
- 1
- 2
fichier connexion.php :
<?php
//Avoir les infos
//$hostname = "localhost";
$hostname = "10.6.186.33";
$user = "----";
$pass = "----";
header ( "Location: ./erreur.php" );
?>
fichier index.php
<?php
//include le fichier de connexion
require_once("connexion.php");
//connecter a la BD
$conn = mysql_connect($hostname,$user,$pass);
//choisir la bd
mysql_select_db ("leclerc_Donnee",$conn);
//Faire un bon query
$result = mysql_query("select * from News order by id desc limit 10");
//traitement
while($row = mysql_fetch_array($result))
{
echo "<tr><td>";
echo $row['Date'];
echo "</td><td>";
echo $row['Text'];
echo "</td></tr>";
}//while
//fermer la connexion
mysql_close($conn);
?>
<?php
//Avoir les infos
//$hostname = "localhost";
$hostname = "10.6.186.33";
$user = "----";
$pass = "----";
header ( "Location: ./erreur.php" );
?>
fichier index.php
<?php
//include le fichier de connexion
require_once("connexion.php");
//connecter a la BD
$conn = mysql_connect($hostname,$user,$pass);
//choisir la bd
mysql_select_db ("leclerc_Donnee",$conn);
//Faire un bon query
$result = mysql_query("select * from News order by id desc limit 10");
//traitement
while($row = mysql_fetch_array($result))
{
echo "<tr><td>";
echo $row['Date'];
echo "</td><td>";
echo $row['Text'];
echo "</td></tr>";
}//while
//fermer la connexion
mysql_close($conn);
?>
oui c'est normal...
Alors j'ai réfléchit et effectivement il faut peut être laisser tomber le header pour connexion.php
Tu pourrai utiliser une variable qui te permetterai "l'autorisation d'acceder à certaines pages"
je m'explique: tu crée une variable index qui est le nom de ta page.
par exemple index.php?index=index pour ta page principale
..................connexion.php?index=connexion pour ta page connexion
Alors tu vérifie ta variable index
if( isset($_GET['index']) && !empty($_GET['index']) )
{
$index = $_GET['index'].".php" ; //tu récupere le nom du chemin que tu met ds une variable php
}
else $index = "index.php"; //comme ça si la variable index n'existe pas elle sera initialiser à ta page principale
if ($index=='index.php' || $index=='tesAutresPages.php') //bien sûr tu ne met pas connexion.php
include($index);
else
{
include(erreur.php);
}
tu peux essayer cela, c'est un peu long à mettre en place mais comme ça tu gere pages que l'utilisateur peut voir.
Il ne faudra pas oublier de fournir index pour chacune de tes pages sinon tu tombera sur la page erreur.
Alors j'ai réfléchit et effectivement il faut peut être laisser tomber le header pour connexion.php
Tu pourrai utiliser une variable qui te permetterai "l'autorisation d'acceder à certaines pages"
je m'explique: tu crée une variable index qui est le nom de ta page.
par exemple index.php?index=index pour ta page principale
..................connexion.php?index=connexion pour ta page connexion
Alors tu vérifie ta variable index
if( isset($_GET['index']) && !empty($_GET['index']) )
{
$index = $_GET['index'].".php" ; //tu récupere le nom du chemin que tu met ds une variable php
}
else $index = "index.php"; //comme ça si la variable index n'existe pas elle sera initialiser à ta page principale
if ($index=='index.php' || $index=='tesAutresPages.php') //bien sûr tu ne met pas connexion.php
include($index);
else
{
include(erreur.php);
}
tu peux essayer cela, c'est un peu long à mettre en place mais comme ça tu gere pages que l'utilisateur peut voir.
Il ne faudra pas oublier de fournir index pour chacune de tes pages sinon tu tombera sur la page erreur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En effet, c'est un peu long, mais au moins je suis sur que ça va marcher!
Merci de ton aide et ta patience ;)
Je vais essayer ça ce soir (heure du Québec) et redonner des nouvelles sur le post.
Merci de ton aide et ta patience ;)
Je vais essayer ça ce soir (heure du Québec) et redonner des nouvelles sur le post.
Finalement, j'ai repensé à mon affaire pendant le restant de la journée et j'ai vérifier s'il existait une fonction qui vérifiait si le header a été définit. Je me suis rappeler du warning que j'obtenais quand j'exécutais la fonction header en plein milieu du code HTML.
J'ai trouvé la fonction header_sent() qui vérifie si les éléments du header ont été envoyés. Donc j'ai mit le code suivant dans le fichier connexion.php :
if(header_sent())
{
header( "Location: ...");
}
Si les headers ne sont pas envoyer, il fait le redirect. Je mets le include 'connexion.php' en plein milieu de mon code. Dans ce cas il ne fait pas le redirect.
Je trouve cette solution un peu plus clean et moins difficile et moins longue. Je n'ai rien à modifier dans les autres fichiers qui utilisent le fichier connexion.php. La seule chose à faire c'est de ne pas faire le include au début du fichier (avant les balises head HTML)
Merci quand même pour ton aide!
J'espère que ça pourra t'aider ou n'importe qui dans une situation semblable!
J'ai trouvé la fonction header_sent() qui vérifie si les éléments du header ont été envoyés. Donc j'ai mit le code suivant dans le fichier connexion.php :
if(header_sent())
{
header( "Location: ...");
}
Si les headers ne sont pas envoyer, il fait le redirect. Je mets le include 'connexion.php' en plein milieu de mon code. Dans ce cas il ne fait pas le redirect.
Je trouve cette solution un peu plus clean et moins difficile et moins longue. Je n'ai rien à modifier dans les autres fichiers qui utilisent le fichier connexion.php. La seule chose à faire c'est de ne pas faire le include au début du fichier (avant les balises head HTML)
Merci quand même pour ton aide!
J'espère que ça pourra t'aider ou n'importe qui dans une situation semblable!
Précédent
- 1
- 2