Securité et historique des connexions avec mysql

Description

voila une petite securite et de log d'acces qui interoge une base de donnée mysql
vous pouvez soit rajouter du code derriere la securite soit mettre la page securite en include
cette securite permet aussi d'avoir le nom du user la date et l'ip a laquelle il s'est logger
Vous pouvez aussi cacher les mot dde passe ou les crypter en md5 grace a la fonction md5(.........)
et pareil pour decrypter

commentaire a l'interieur du code

amicalement julien

Source / Exemple :


<?php
$serveur = "........";   // adresse du serveur ex: sql.free.fr
$utilisateur = ".......";// nom d'utilisateur de la base mysql
$pass = ".......";       //pass d'utilisateur de la base mysql
$nom_db = ".......";     //nom de la base de donnée

$connexion = mysql_connect($serveur , $utilisateur , $pass)or die("pas pu se connnecter a la base mysql"); //on se connecte a mysql
$selection_db = mysql_select_db($nom_db , $connexion)or die("pas pu se connecter a leneo42");              //on se connecte a la base de donnée      

$adresse_ip_visiteur = $HTTP_SERVER_VARS[REMOTE_ADDR]; //on recupere l'adresse de l'hote qui vien snous voir
if( !isset($PHP_AUTH_USER) ) // si le user a deja ete entré on verifie juste
{
	header("WWW-Authenticate: Basic realm=\"Micro Application\"");
	header("HTTP/1.0 401 Unauthorized");
	echo "Accès refusé \n";
 	exit;	
} 
else //sinon on fais une requete pour voir si il existe dans la base
{
	$sql = "SELECT mot_de_passe,nom_utilisateur FROM utilisateurs where mot_de_passe = '$PHP_AUTH_PW' AND nom_utilisateur = '$PHP_AUTH_USER'";
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$nbresult = mysql_num_rows($req);
	if($nbresult == 0) //si il n'y est pas on refuse l'acces
	{
		header("WWW-Authenticate: Basic realm=\"Veuillez vous identifier\"");
		header("HTTP/1.0 401 Unauthorized");
		echo "Accès refusé \n";
		exit;
	}
	else //si c bon il a acces a la page et on le log dans la base de donnnée historique
	{
		$requete = "INSERT INTO historique_connexions (identifiant_utilisateur, date, IP) values ('$identifiant_utilisateur',NOW(),'$adresse_ip_visiteur')";
		$resultat = mysql_query($requete,$connexion);
	}
}
}
/////////////////////////////////////////
//mettre le code a proteger ici        //
//ou alors mettre cette page en include//
/////////////////////////////////////////
?>

Conclusion :


--
-- Structure de la table `historique_connexions`
--

CREATE TABLE `historique_connexions` (
`id` tinyint(4) NOT NULL auto_increment,
`identifiant_utilisateur` smallint(6) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`IP` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;

--
-- Structure de la table `utilisateurs`
--

CREATE TABLE `utilisateurs` (
`nom_utilisateur` varchar(25) NOT NULL default '',
`mot_de_passe` varchar(25) NOT NULL default '',
`nb_participant` int(10) NOT NULL default '0',
`nom_participants` varchar(255) NOT NULL default '',
`mail` varchar(255) NOT NULL default '',
`numerique` varchar(255) NOT NULL default '',
UNIQUE KEY `nom_utilisateur_2` (`nom_utilisateur`)
) TYPE=MyISAM;

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.