Authentification en PHP!

Résolu/Fermé
fedus23 Messages postés 4 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011 - 13 nov. 2011 à 19:07
fedus23 Messages postés 4 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011 - 14 nov. 2011 à 18:28
Bonjour tout le monde,

J'aurai besoin de votre aide.

Je suis étudiante en Master 2 communication et multimédia, j'ai un exercice à rendre demain et je trouve du mal à le finir.

J'ai reproduit en HTML5 et CSS3 la première et la deuxième page de facebook (bien sur que l'allure des pages, sans script ni fonctionnalités avancées) et là on me demander d'introduire un code php à mon code html pour pouvoir s'identifier et se connecter.

Le but et de faire un test simple au niveau du login et du mot de passe avant de passer à la page d'accueil de facebook sinon rester sur la même page, je dois le faire sans passer par une base de données.

Voilà mon code (réduit sans la mise en page du formulaire):

	<?php
	$url="\"essai.php\"";
	
	echo'<form action=$url method="post">

		<input type="Text" name="login" > <br>
						 
		<input type="text"  name="mdp" > <br> 
	
		<input type="submit" value="connexion">
					
		</form> ';
		 
		if ($_POST["login"]=="toto" && $_POST["mdp"]=="titi")
				{
					$url="\"essai.php\"";
				}
				else 
				{
					
					$url="\"acceuil.php\"";	
				}
		
	?>



Mon premier soucis c'est au niveau de la variable $url", quand je clique sur le bouton connexion, l'url de destination s'écrit "$url" et non pas essai.php ou accueil.php comme dans mon code.

Et mon deuxième soucis, j'ai un message d'avertissement que j'arrive pas à virer indiquant que $_POST["login"] et $_POST["mdp"] ne sont pas définis et c'est normal puisque les champs texte sont vide au lancement de la page.

Qui peut m'apporter son aide sur ce code?

Merci d'avance.

A voir également:

3 réponses

JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 13/11/2011 à 19:42
Salut ...

1 - Tu dois faire une concaténation, mais je vois pas l'utilité d'utiliser une variable, puis que la page de connexion sera fixe et ne changera jamais ...
action='.$url.' method
Qui donnera toujours ...
action="essai.php" method

2 - C'est normal comme tu l'as dis, quand PHP lit la page pour la premiere fois, les variables POST['login'] et POST['mdp'] n'existent pas encore, mais malgré ça, tu as essayer de les utiliser dans le if, donc tu as essayer d'utiliser quelque chose qui n'existe pas encore, alors ça t'a afficher une erreur ...

Tu peut ajouter une condition ...
if(isset($_POST['login']) AND isset($_POST['mdp']) AND $_POST['login'] == 'toto' AND $_POST['mdp'] == 'titi')

Qui veut dire, si $_POST['login'] existe, et si $_POST['mdp'] existe, et si ... etc

Mettez en résolu quand c'est résolu -.- ...
0
fedus23 Messages postés 4 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011
13 nov. 2011 à 20:39
Bonsoir,

Merci pour votre réponse Joos.
En fait ce que je veux faire c'est soit rester sur la même page "accueil" si je n'introduis pas comme login et mdp "tot" et "titi" soit j'accède à la page d'essai. c'est pour cela j'ai utilisé une variable url qui doit changer suivant les logins.

Là je viens de tester ce que vous avez posté, les avertissement ont effectivement disparu, l'url s'affiche correctement, seulement le test de l'url ne marche pas.
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
13 nov. 2011 à 20:43
Euuux attend ....

Ce que j'ai compris et qui me semble logique ...
Si l'utilisateur entre le bon login et le bon mot de passe, il est redirigé vers (exemple) accueil.php.
Si ce n'est pas le cas, il reste sur la page en cours ...
0
fedus23 Messages postés 4 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011
13 nov. 2011 à 20:43
Re,

En fait, il faut faire le test à l'intérieur du formulaire, c'est pour ça que ça ne marchait pas.

Merci pour l'aide et à bientôt sur les différentes pages du forum.
0
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 13/11/2011 à 20:59
Hmmm, c'est pas comme ça qu'on fait ...

Pour faire une redirection, on utilise la fonction
header ("location: page_voulu.php");


Je te propose alors ça ...

<form action="#" method="post">   
  <input type="Text" name="login" > <br>   
  <input type="text"  name="mdp" > <br>    
  <input type="submit" value="connexion">   
</form>   

<?php   
if(isset($_POST['login']) AND isset($_POST['mdp']) AND $_POST['login'] == 'toto' AND $_POST['mdp'] == 'titi') {   
  header("location: accueil.php");   
}   
?>
0
fedus23 Messages postés 4 Date d'inscription dimanche 13 novembre 2011 Statut Membre Dernière intervention 14 novembre 2011
14 nov. 2011 à 18:28
merci, oui en effet c'est le bon code! parce que avec le mien, la première saisie n'est pas prise en compte.
0