Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

"REDIRECTION" TRÈS SIMPLE EN PHP


Information sur la source

Catégorie :Astuces Niveau : Débutant Date de création : 18/05/2004 Vu : 14 246

Note :
4,5 / 10 - par 4 personnes
4,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Je cherchais un truc aussi simple en PHP qu'en Javascript ou en VBSCript pour rediriger une page vers une autre, lors de l'identification réussie d'un utilisateur sur IIS (dans le cadre d'un intranet).

La table Mysql (admin) a 4 champs :

No (incrément auto)
Login
mdp
Niveau (pour savoir qui est admin ou autre)

Je vous livre donc les sources :

 

Source

  • -> index.htm
  • <center>
  • <form name=login action="logon.php" method="GET">
  • <table align="center" valign="center">
  • <tr><td>Login :</td><td><input type="text" name="Login"></td>
  • <tr><td>Password:</td><td><input type="password" name="password"></td></tr>
  • <tr><td colspan=1 align=center>
  • <input type="submit" value="Login!"></td></tr>
  • </table>
  • </form>
  • </center>
  • -> Conn.php (permet de se connecter à ma base MySQL) :
  • <?php
  • $host = "localhost";
  • $user = "root";
  • $pass = "MonMotDePasse";
  • $bdd = "MaBaseDeDonnees";
  • @mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données");
  • @mysql_select_db("$bdd") or die("Impossible de se connecter à la base de données");
  • ?>
  • -> logon.php
  • <?php
  • $Login=$_GET["Login"];
  • $pwd=$_GET["password"];
  • if (Login=="")
  • {
  • echo "Votre CPPOSS $CPPOSS n'est pas valide";
  • exit();
  • }
  • if ($pwd=="")
  • {
  • echo "Veuillez saisir un mot de passe.";
  • exit();
  • }
  • require "../Fonctions/Conn.inc.php";
  • $sqlFete="select * from Admin where login=$Login and mdp=\"$pwd\";";
  • $result = mysql_query($sqlFete);
  • $nb=mysql_numrows($result);
  • if ($nb==0)
  • {
  • echo "Mot de passe ou CPPOSS erroné";
  • exit();
  • }
  • mysql_close();
  • session_name("Recommandes");
  • session_start();
  • require "MaPage.htm";
  • ?>
-> index.htm

    <center>
    <form name=login action="logon.php" method="GET">
    <table align="center" valign="center">
    <tr><td>Login :</td><td><input type="text" name="Login"></td>
    <tr><td>Password:</td><td><input type="password" name="password"></td></tr>
    <tr><td colspan=1 align=center>
    <input type="submit" value="Login!"></td></tr>
    </table>
    </form>
    </center>


-> Conn.php (permet de se connecter à ma base MySQL) :

<?php
	$host = "localhost";
	$user = "root";
	$pass = "MonMotDePasse";
	$bdd = "MaBaseDeDonnees";
	@mysql_connect($host,$user,$pass) or die("Impossible de se connecter à la base de données"); 
	@mysql_select_db("$bdd") or die("Impossible de se connecter à la base de données");
?>

-> logon.php

<?php
	$Login=$_GET["Login"];
	$pwd=$_GET["password"];
	if (Login=="")
	{
		echo "Votre CPPOSS $CPPOSS n'est pas valide";
		exit();
	}
	if ($pwd=="")
	{
		echo "Veuillez saisir un mot de passe.";
		exit();
	}
	require "../Fonctions/Conn.inc.php";
	$sqlFete="select * from Admin where login=$Login and mdp=\"$pwd\";";

	$result = mysql_query($sqlFete);
	$nb=mysql_numrows($result);
	if ($nb==0)
	{
		echo "Mot de passe ou CPPOSS erroné";
		exit();
	}
	mysql_close();
	session_name("Recommandes");
	session_start();
	require "MaPage.htm";
?>

Conclusion

Si l'utilisateur saisit un Login et mot de passe valide, PHP intègre la page MaPage.htm.

et ça marche sous IIS !!

Voilààààààààààààààààà à ++
 

Commentaires et avis

signaler à un administrateur
Commentaire de koko le 19/05/2004 07:26:58

je ne vois pas de redirection

signaler à un administrateur
Commentaire de glad le 19/05/2004 08:07:18

Bin l'astuce est que le "require" sert de "redirection" !
Sous IIS, Header/location ne fonctionne pas (ou je n'ai pas su l'utiliser !). J'ai trouvé d'autres méthodes plus compliquées... Je trouve que celle là à le mérite d'être simple, et de fonctionner...

Il y a une petite erreur :
$sqlFete="select * from Admin where login=$Login and mdp=\"$pwd\";";

est pas bon, il faut mettre :

$sqlFete="select * from Admin where login=\"$Login\" and mdp=\"$pwd\";";

En effet, chez moi, le login était un code agent numérique....

A+

signaler à un administrateur
Commentaire de gege217 le 19/05/2004 09:30:19

Un conseil : utilise apache et pas iis : pas de problème de sécurité, pratique à utiliser, en constante évolution et surtout gratuit.

.oOMimiLOo.

signaler à un administrateur
Commentaire de glad le 19/05/2004 09:35:53

Je sais bien gege217, mais j'utilise IIS dans ma boîte, je n'ai pas le choix ... !!

Il ne faut pas dire que Linux/Apache n'a pas de pb de sécurité, il y en a beaucoup moins, c'est plus honnête.
A+

signaler à un administrateur
Commentaire de gege217 le 24/05/2004 12:23:55

&gt;&gt; Je sais bien gege217, mais j'utilise IIS dans ma boîte, je n'ai pas le choix ... !!

C'est le moment de les faire changer !

&gt;&gt; Il ne faut pas dire que Linux/Apache n'a pas de pb de sécurité, il y en a beaucoup moins, c'est plus honnête.

Exact, mais tu avouras quand même que c'est pas normal que quand tu installes IIS, la première chose à faire est d'installer les 50 patchs de sécurité avant de pouvoir travailler... Alors qu'avec apache, tu n'as pas tous ces tracas... :-)

.oOMimiLOo.

signaler à un administrateur
Commentaire de grandvizir le 12/03/2005 22:13:42

L'autre redirection possible est de passer par du JavaScript. On écho ce qui suit et puis voilà:
<script> location = 'page.html'; </script>

Sauf que ça ne redirige pas toujours dans certains navigateurs et dans certaines conditions.

signaler à un administrateur
Commentaire de gege217 le 14/03/2005 09:24:03

>> Sauf que ça ne redirige pas toujours dans certains navigateurs et dans certaines conditions.

Quand javascript n'est pas activé par exemple ...
;-)

Je ne crois pas que ce soit nécéssaire de faire un client serveur juste pour changer de page. Tu perds du temps en terme de rapidité d'execution et d'enchainement de page...

.oOMimiLOo.

signaler à un administrateur
Commentaire de glad le 14/03/2005 10:18:34

Salut,

J'avais un peu oublié cette source !

Maintenant, j'utilise le javascript pour les redirections et ça marche bien :

<script language="javascript">
document.location.href='monfichier.php';
</script>

A ++

signaler à un administrateur
Commentaire de grandvizir le 09/04/2005 11:38:17

Pour répondre à gege217, biensûr que ça ne marche pas si JS n'est pas actif. Ce que je voulais dire, c'est que même s'il est actif, si PHP génère du JS au milieu de l'HTML, le navigateur doit l'interpréter, ce qui n'est pas toujours fait avec FireFox. J'ai eu un petit pb de ce genre avec mon code http://www.phpcs.com/code.aspx?id=29594. Du coup, j'ai fait rajouter petit un lien de redirection...

Sinon, pour rediriger, on peut aussi faire:
header("Location: {$url}");

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.