Redirection de page - PHP - Programmation
Marsh Posté le 02-06-2005 à 10:50:24
fgiuliano a écrit : Bonjour à tous, j'aimerai effectuer une redirection de page lorsqu'un utilisateur entre son login et son mot de passe. Suivant les informations reçues, j'aimerai soit l'autoriser à entrer donc le rediriger sur une certaine page soit lui interdire l'accès et le rediriger sur la page enregistrement qu'il puisse essayer à nouveau. |
la fonction header, tu l'appelles à quel moment?
Marsh Posté le 02-06-2005 à 10:59:28
fgiuliano a écrit : Au tout début de ma page, avant le code html |
hmm, ton code doit être de la forme:
Code :
|
quelque chose comme ça quoi
Marsh Posté le 02-06-2005 à 11:06:37
En fait, en le faisant comme ça, l'erreur suivante s'affiche:
Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\web2\accesprive.php:23) in c:\program files\easyphp1-8\www\web2\accesprive.php on line 40
Marsh Posté le 02-06-2005 à 11:13:59
Voilà la partie du test et de la redirection:
<?
error_reporting(E_ALL ^ E_NOTICE);
if((($_POST["pass"] == "toto" ) and ($_POST["login"] == "Serge" ))
{
header("Location: Etats.php" );
}
else
{
header("Location: AccesPrive.php" );
}
?>
Avant, il y a la connexion à ma base de donnée plus du code html normal et après du code html et la fermeture de ma connexion à ma base
Marsh Posté le 02-06-2005 à 11:15:31
fgiuliano a écrit : Voilà la partie du test et de la redirection: |
Il faut rien avant un header.
Marsh Posté le 02-06-2005 à 11:19:54
Sinon utilise le javascript pour la redirection, c'est moins contraignant...
Code :
|
une des solutions..
Marsh Posté le 02-06-2005 à 11:21:22
+1, le JavaScript est une bonne chose, mais sera-t-il activé chez le client ?
Marsh Posté le 02-06-2005 à 11:27:29
ReplyMarsh Posté le 02-06-2005 à 11:30:24
ReplyMarsh Posté le 02-06-2005 à 11:31:31
Bon bah encore une autre des solutions :
Code :
|
Marsh Posté le 02-06-2005 à 11:32:31
cesarr89 a écrit : Il faut rien avant un header. |
ok, j'ai essayé alors de mettre mon code php au tout début de ma page.
Alors là, pas d'erreur, j'arrive sur ma page AccesPrive.php et le formulaire
d'enregistrement s'affiche correctement.
Par contre, il ne fait pas le test et revient sans cesse sur cette page.
Marsh Posté le 02-06-2005 à 11:34:44
Et bah tu fais un test justement avant ton header.
Code :
|
ça marche aussi .
Marsh Posté le 02-06-2005 à 11:50:37
Alors voilà tout le code. Si vous arrivez à comprendre qqch car même moi je suis j'y comprends plus rien.
Spoiler : <? |
Marsh Posté le 02-06-2005 à 11:58:20
ReplyMarsh Posté le 06-06-2005 à 08:42:00
cesarr89 a écrit : Supprime les lignes vides.....on sais jamais |
Me revoilà au boulot après un long week-end...
Par contre, je n'ai toujours pas réussi à rediriger sur une autre page lorsqu'on entre le login et le mot de passe.
J'ai essayé d'enlever les lignes vides mais maintenant, ça ne charche plus la page AccesPrive.php... Il n'y a pas de message d'erreur, elle est en train de se charger mais n'arrive jamais au bout...
Marsh Posté le 06-06-2005 à 09:28:25
Ca viendrais pas de la connection à la BD ?
Tu as vraiment supprimer toutes les lignes vides?
Marsh Posté le 06-06-2005 à 10:19:08
cesarr89 a écrit : Ca viendrais pas de la connection à la BD ? |
J'ai fait une page simplifiée pour juste tester ce point là mais ça fait toujours la même chose.
Je mets le code:
[<?
if(($_POST["pass"] == "toto" ) and ($_POST["login"] == "Serge" ))
{
header("Location: Etats.php" );
}
else
{
header("Location: AccesPrive.php" );
}
?>
<?
$bd="TanALLData"; // identifiant dsn
$user="root"; // login
$password=""; // password
$cnx = odbc_connect( $bd , $user, $password );
if( ! $cnx ) echo "Impossible de se connecter";
?>
<html>
<head>
<title>Accès Privé</title>
</head>
<body bgcolor="#000000">
<table cellspacing="40" bgcolor="#FFFFCC">
<tr>
<td>
<form name="Utilisateurs" method="post">
<div align = "center">
<center>
<table bgcolor="#FFFFCC">
<tr>
<td>Login</td>
<td><input type="text" name="login"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="pass"></td>
<td><input type="Submit" value="Entrer"></td>
</tr>
</table>
</center>
</div>
</form>
</td>
</tr>
<SCRIPT>document.Utilisateurs.login.focus();</SCRIPT>
</body>
</html>
<?
odbc_close( $cnx); // ferme la connection]
Marsh Posté le 06-06-2005 à 10:40:03
fgiuliano a écrit : |
Alors en fait, j'ai testé de soit rediriger sur une autre page soit d'enlever tout simplement le else et dans ces deux cas, il n'y a plus de problème. En fait, c'est lorsqu'il devait recharger la même pas que ça lui posait problème.
Je ne comprends pas vraiment pourquoi mais pour le moment ça marche comme ça, alors je vais regarder par la suite la réponse à ce pourquoi.
Merci pour l'aide.
Marsh Posté le 02-06-2005 à 10:36:27
Bonjour à tous, j'aimerai effectuer une redirection de page lorsqu'un utilisateur entre son login et son mot de passe. Suivant les informations reçues, j'aimerai soit l'autoriser à entrer donc le rediriger sur une certaine page soit lui interdire l'accès et le rediriger sur la page enregistrement qu'il puisse essayer à nouveau.
J'ai essayer avec header mais ça redirige directement au chargement de la page alors que j'aimerai quand même accéder à mon formulaire d'enregistrement. Est-ce que quelqu'un pourrait me venir en aide?
Merci