Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2007, 17h21   #1
Invité de passage
 
Inscription : février 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 9
Points : 3
Points : 3
Par défaut problème page de login

Bonjour,
Voici mon probleme, je suis en train de faire la sécurisation d'un site pour le cadre de mon stage et je but sur un probleme:
je vous explique le fonctionnement de mon site:
on arrive sur la page accueil.php qui si on est pas authentifier (via le test du fichier session.php), propose le formulaire de connexion (html)
ce formulaire html envoie en POST les 2 variables utilisateur et passwd.
Si dans session.php il detecte que les variables utilisateur et passwd ont était envoyé par POST alors il tente la connexion a sql et vérifie la personne, si c'est bon alors il crée une variable de session (valid_user).
cette variable de session determine si il y a besion d'afficher ou pas le fichier login.php (le formulaire login/pass).

MON PROBLEME étant que je doit faire fonctionner se systeme sous wampserver et qu' auparavant je l'ai dévelloper sous uniformserver et que cela marche nickel.
malheureusement je ne puis garder sous unifrmserver mais obliger sous wampserver qui avec, je n'arrive pas a faire fonctionner.
wampserver 1.3.3
uniformserver3_2a
attention pour les fichiers: sous wampserver, le compte sql n'a pas de password et sous uniformserver c'est root / root

pour être plus clair je vous met les sources php en lien.

accueil.php fait appel a sessions.php pour vérifier l'authentification et faire l'authentification si besion ai.
login.php pour afficher le formulaire de saisie de login/pass si pas authentifier.
logout.php detruit la session en cours et reviens a accueil.php qui naturelement affiche login.php.
sessions.php fichier de vérification si authentifier ou pas et consultation de la base sql avec valeurs recuperé en post de login.php.

j'ajoute aussi ma base de donné en .sql, nom de la base: base1
Fichiers attachés
Type de fichier : php accueil.php (383 octets, 5 affichages)
Type de fichier : php login.php (650 octets, 3 affichages)
Type de fichier : php logout.php (80 octets, 3 affichages)
Type de fichier : php session.php (1,7 Ko, 3 affichages)
Type de fichier : sql base1.sql (1,2 Ko, 2 affichages)
cyril911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2007, 17h26   #2
Membre éclairé
 
Avatar de johweb
 
Inscription : décembre 2003
Messages : 332
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : décembre 2003
Messages : 332
Points : 316
Points : 316
Déjà, remplace tous tes par car je sais que Wampserver est assez restrictif... ^^
johweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2007, 12h00   #3
Invité de passage
 
Inscription : février 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 9
Points : 3
Points : 3
probleme reglé,
je donnerai dans la journée les .php correct qui pourra servir pour d'autres personnes.
Vu que la limite des fichiers poster est de 5, je ferai surement un .zip sur ma page perso.
ou le mettre aussi en message a la suite.

Je rappel le but de mon systeme:

identification d'une personne par login/password avec restriction d'acces a certaines pages selon son niveau (simple utilisateur , administrateur ...) via une variablede session en plus de celle du nom de l'utilisateur.
De plus il se base aussi sur la date du debut et expiration du compte de l'utilisateur, donc possibilité de crée des comptes temporaires dans le temps.

là je vé manger et ensuite je publirai.

message pour johweb: merci pour ton info mais j'ai carrement refait les script de vérifs.
cyril911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2007, 16h14   #4
Invité de passage
 
Inscription : février 2007
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 9
Points : 3
Points : 3
Par défaut Voici les fichiers qui marche maintenant

Désolé pour le retard et aussi désolé pour le code programmé un peu cochon.

voici donc les fichiers


Structure du site :
Code X :
1
2
3
4
5
6
7
8
9
10
11
12
www -accueil.php
	-login.php
	-logout.php
	-session1.php
	-session2.php
	-session3.php
	-sessionbis.php
	-verif.php
	- /errors/	-error3.php
	- /errors/	-error3.html
	- /images/	-authentification.png
	- /images/	-singe.gif

Page accueil avec appel de login.php :
Code accueil.php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
//gestion retour erreurs connexion
if(isset($_GET['auth']) && $_GET['auth'] == "error3" ) { header("Location: ./errors/error3.php");break;}
?>
<? require('sessionbis.php'); ?>
<? if (session_is_registered("valid_user")){
//SI LA PERSONNE EST AUTHENTIFIER ELLE PEUX VOIR LA SUITE
//SINON RETOUR SUR ACCEUIL ET DEMANDE D4AUTHENTIFICATION
?>
<?php
require('sessionbis.php'); ?>
<?php
require('./connectbase.php');
$login = $_SESSION['valid_user'];
$niveau = $_SESSION['niveau'];
?>
 
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>
<!-- $_SESSION['niveau']     OU    $niveau    revient au meme mais en pratique il est preferable d'utiliser $niveau en ayant créer la variable  ( methode :  $niveau = $_SESSION['niveau'];  )-->
<?php if($_SESSION['niveau'] >= 1){ ?><H3><center><b>Bienvenue<?php echo " $login "; ?> sur le site de blablabla</b></center></H3><HR><?php } ?>
<?php if($niveau == 1){ ?><H3><center><b>marche aussi, Vous avez un niveau d'autorisation 1</b></center></H3><HR><?php } ?>
<?php if($_SESSION['niveau'] >= 2){ ?><H3><center><b>Vous avez un niveau d'autorisation 2 ou  3</b></center></H3><HR><?php } ?>
<?php if($_SESSION['niveau'] >= 3){ ?><H3><center><b>Vous avez un niveau d'autorisation 3 ou plus</b></center></H3><HR><?php } ?>
</body>
</HTML>
<?php } ?>

Code login.php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<table>
	<tr>
		<td height="100" align="center" valign="center" >
		<center><img src="./images/authentification.png"><!-- juste une image symbole d'une demande d'authentification NON OBLIGATOIRE--></center>
		</td>
	</tr>
    <tr>
		<td height="50" align="center" valign="center"><b><H1><center>Identifiez vous !</center></H1></b></td>
	</tr>
</table>
<form name="identification" action="verif.php"  method="post">  
<table>
	<tr>
	<td height="100" align="center" valign="center">
		<center>
			<b>Login:</b> <input name="login" type=text size=8>
			<b>Password:</b> <input name="pass" type=password size=8>
			<input name="submit" type=submit value="Connexion" >
		</center>
	</td>
</tr>
</table>
</form>
</body>
</html>

Code logout.php :
1
2
3
4
5
6
<?
// Ferme la session de l'utilisateur et retour a l'accueil, et affichage de la demande login/pass car pas de session
session_start();
session_destroy();
header("Location: ./accueil.php");
?>

Code verif.php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
/*SCRIPT DE VERIFICATION QUE LA PERSONNE EXISTE BIEN DANS LA BASE*/
$login = $_POST['login'];
$pass = $_POST['pass'];
session_start();
	/* connexion à la base de donnée */ 
	$dbhost = "localhost";
	$user = "root";
	$password = "";
	$usebdd = "general"; //nom de la base de donnees a remplacer par la votre
	$connexion = mysql_connect($dbhost,$user,$password) or die ("Impossible de se connecter");
	$db = mysql_select_db($usebdd, $connexion) or die ("Impossible de sélectionner cette base de données");
	$identification = "SELECT * FROM utilisateur where `login`='$login' and `pass`='$pass' "; //identification sur le couple login/pass
	$result = mysql_query($identification) or die ("execution de la requete impossible");
	// VARIANTE AVEC MOT DE PASSE CRYPTE
	// ." and pass=password('$passwd')" ,$connexion); 
		if($result && mysql_num_rows($result) >0 )
		{
		// SI OUI alors c'est que la personne a reussi a s'authentifier
		$valid_user = $login;
		session_register("valid_user");
		//niveau d'autorisation de la personne
		$niveau = mysql_result($result,0,"niveau");
		session_register("niveau");
		$code = mysql_result($result,0,"password");
		session_register("password");
		}
		if($result && mysql_num_rows($result) ==0 ) {header("Location: accueil.php?auth=error3"); break;}
	// Si authentifier alors retour sur accueil en fermant la connexion mysql
	mysql_close($connexion);
	header("Location: accueil.php");
?>

Code sessionbis.php :
1
2
3
4
5
6
7
8
9
10
<?php
session_start();
if(!session_is_registered("valid_user")){
//si la personne arrive pour la 1ere fois sur le site:
//détéction du 1er passage, marquage de la variable $auth
if( !isset($_GET['auth']   ) ){ header("Location: accueil.php?auth=0"); }
//si la personne a deja passer alors marquage de la variable auth=0 alors appel de login.php
if($_GET['auth'] == 0 ) { require('./login.php'); }
}
?>

Code session1.php :
1
2
3
4
5
6
7
8
9
10
11
<?
/* a integrer au tout debut de chaque page qui doit être sécurisé
pour l'integrer c'est tres facile
<?php require('session2.php'); ?> a vous de mettre le bon chemin
*/
// autorise l'acces au reste de la page SI la personne a un niveau au moins de 1
session_start();
if (!session_is_registered("valid_user")  )
{ header("Location: ../accueil.php"); }
if  ( $_SESSION['niveau'] == 1 || $_SESSION['niveau'] == 2 || $_SESSION['niveau'] == 3 ){}
?>

Code session2.php :
1
2
3
4
5
6
7
8
9
10
11
<?
/* a integrer au tout debut de chaque page qui doit être sécurisé
pour l'integrer c'est tres facile
<?php require('session2.php'); ?> a vous de mettre le bon chemin
*/
// autorise l'acces au reste de la page SI la personne a un niveau au moins de 2
session_start();
if (!session_is_registered("valid_user") || $_SESSION['niveau'] != 3 )
{ if ( $_SESSION['niveau'] != 2 ){
header("Location: ../accueil.php"); } }
?>

Code session3.php :
1
2
3
4
5
6
7
8
9
10
<?
/* a integrer au tout debut de chaque page qui doit être sécurisé
pour l'integrer c'est tres facile
<?php require('session2.php'); ?> a vous de mettre le bon chemin
*/
// autorise l'acces au reste de la page SI la personne a un niveau au moins de 3
session_start();
if (!session_is_registered("valid_user") || $_SESSION['niveau'] != 3)
{ header("Location: ../accueil.php"); }
?>

Code error3.php :
1
2
3
4
5
6
/*ce referencer au tout début de la page accueil si retour de variable error*/
 
<SCRIPT LANGUAGE="JavaScript">
window.open ('error3.html', 'Avertissement!', config='height=145, width=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no, top=250, left=380')
</SCRIPT>
<meta http-equiv="refresh" content="0; url= ../accueil.php" />

Code error3.html :
1
2
3
4
5
6
7
8
9
10
11
<html>
<head><title></title></head><body BGCOLOR="#31659c"><center>
<b>Erreur! Login ou Password !</b>
<!-- image rigolote d'un singe qui hoche la tete pour dire NON! -->
<br><center><img border="0" align=center src="../images/singe.gif"></center><br>
<FORM>
<INPUT TYPE="BUTTON" VALUE="Fermer la fenêtre" ONCLICK="window.close()">
</FORM>
</center>
</body>
</html>
cyril911 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h05.


 
 
 
 
Partenaires

Hébergement Web