begin process at 2012 05 31 21:06:03
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > EXEMPLE DE CRÉATION D'UN SCRIPT D'AUTHENTIFICATION

EXEMPLE DE CRÉATION D'UN SCRIPT D'AUTHENTIFICATION


 Information sur le tutoriel

Note :
Aucune note

 Description

Dans ce tutoriel, je propose de visualiser la conception d'un script d'authentification simple. Il est donc réservé aux débutants !

Tutorial

Script d'authentification

Introduction :

Depuis le peu de temps que je traine sur PhpCs, j'ai vu beaucoup de demande d'aide pour les scripts d'authentification. Nous allons donc dans ce petit tutoriel dédié aux débutants voir comment crée un script d'authentification avec un minimum de sécurité.

Avant-propos :

On suppose que vous connaissez les méthodes de transmission de données par formulaire

Pour plus de visibilité, on utilisera la méthode GET

On travaillera hors cryptage de mot de passe et récupération par mail.

Le but étant de comprendre un mécanisme d'authentification simple, on se contentera de limiter le nombre de tentative d'accès à un compte utilisateur.

Etape 1 : Création de la table

Pour les besoins du tutoriel nous allons crée une table avec 6 champs :

CREATE TABLE IF NOT EXISTS `table_utilisateur` (

`id`int(3) NOT NULL AUTO_INCREMENT,

`user`varchar(20) COLLATE latin1_general_ci NOT NULL,

`pass`varchar(40) COLLATE latin1_general_ci NOT NULL,

`nbr_connect` tinyint(1) NOT NULL DEFAULT '0',

`dates`datetime NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `user` (`user`));

Etape 2 : config.php

Nous allons crée un fichier config.php, qui contiendra les informations nécessaires pour la connexion à notre base de donnée :

<?php
$DB_serveur = ''; // Nom du serveur
$DB_utilisateur = ''; // Nom de l'utilisateur de la base
$DB_motdepasse = ''; // Mot de passe pour accèder à la base
$DB_base = ''; // Nom de la base

$connection = mysql_connect($DB_serveur, $DB_utilisateur, $DB_motdepasse) // On se connecte au serveur
or die (mysql_error().' sur la ligne '.__LINE__);

mysql_select_db($DB_base, $connection) // On se connecte à la BDD
or die (mysql_error().' sur la ligne '.__LINE__);
?>





Etape 3 : index.php

Ce fichier contiendra le formulaire qui nous permettra d'accéder à notre compte utilisateur :

<form method="get" action="connect.php">
<fieldset><legend>Login : </legend><input type="text" name="login"/></fieldset>
<fieldset><legend>Mot de passe : </legend><input type="password" name="motdepasse"/></fieldset>
<input type="submit" name="submit" value="Se connecter"/>
</form>


Etape 4 : connect.php

C'est ce fichier qui nous permettra d'analyser le login et le mot de passe, pour connecter l'utilisateur vers son compte ou pas.

  • On va crée une condition d'accès à la page

<?php
if(!isset($_GET[‘login’]) && !isset($_GET[‘motdepasse’]))
{
header('Location: index.php');

Exit;
}
else
{

}

?>

Grâce à cette condition, nous redirigeons l'utilisateur vers le formulaire de connexion si les variables 'login' et 'motdepasse' ne sont pas définies. En cas de succès on va pouvoir continuer l'exécution du script.















  • On suppose les variables 'login' et 'motdepasse' existes et nous allons donc les traités

<?php

if(!isset($_GET[‘login’]) && !isset($_GET[‘motdepasse’]))
{
header('Location: index.php');
}
else
{
// On va vérifier les variables
if(!preg_match('/^[[:alnum:]]+$/', $_GET['login']) or
!preg_match('/^[[:alnum:]]+$/', $_GET['motdepasse']))
{
echo 'Vous devez entrer uniquement des lettres ou des chiffres <br/>';
echo '<a href="index.php" temp_href="index.php">Réessayer</a>';
exit();
}
else
{
require('config.php'); // On réclame le fichier

$login = $_GET['login'];
$motdepasse = $_GET['motdepasse'];

}

}

?>

Ici grâce à la fonction pcre : preg_match(), on vérifie si les caractères passées comme login et mot de passe sont des lettres et/ou des chiffres.(CETTE OPERATION N’EST PAS VRAIMENT UTILE)

Dans le cas où un caractère non alphanumérique est trouvé un message d'erreur s'affichera et invitera l'utilisateur à réessayer. Sinon dans le cas contraire, on inclue notre fichier 'config.php' et pour plus d'aisance dans le script on crée les variables « $login »et « $motdepasse ».

  • Laissons un moment notre fichier connect.php et rendons-nous sur le fichier config.php, pour y ajouter une nouvelle constante : _MAX_TENTATIVE à laquelle nous allons affecter une valeur : « 3 » par exemple.

Define(‘_MAX_TENTATIVE’, 3) ;

Cette constante, limitera le nombre de tentative de connexion au compte utilisateur.

  1. Revenons maintenant à notre page connect.php :

Si les deux éléments ne coïncident pas on va enregistrer la tentative.

Si le quota de tentative est atteint on empêche purement l'accès au compte jusqu'au jour suivant :

<?php

if(mysql_num_rows($requete_2)==0)
{
// On va récupérer les résultats
$result = mysql_fetch_array($requete_1, MYSQL_ASSOC);

// On va récupérer la date de la dernière connexion
$lastconnection = explode(' ', $result["dates"]);
$lastjour = explode('-', $lastconnection[0]);

// On va récupérer le nombre de tentative et l'affecter
$nbr_essai = $result["nbr_connect"];

if($lastjour[2]==date("d") && _MAX_TENTATIVE==$nbr_essai)
{
echo 'Vous avez atteint le quota de tentative, essayez demain !<br/>';
exit();
}
else
{
$nbr_essai++;
$update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW()
WHERE id='".$result["id"]."'";

mysql_query($update) or die ( mysql_error() );

echo 'Le mot de passe et/ou le login sont incorrectes <br/>';
echo '<a href="index.php" href="index.php">Réessayer</a>';
exit();
}
}

?>


La ligne en bleu enregistre les tentatives de connexions.

Si les deux éléments coïncident, on réinitialise le nombre de tentative et on met à jour la date de la dernière connexion :

<?php

else
{
$nbr_essai++;
$update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW()
WHERE id='".$result["id"]."'";

mysql_query($update) or die ( mysql_error() );

echo 'Le mot de passe et/ou le login sont incorrectes <br/>';
echo '<a href="index.php" temp_href="index.php">Réessayer</a>';
exit();
}

?>

Puis, on redirige vers le dossier membres par exemple.


  1. Notre fichier complet 'connect.php', nous donne :

<?php
if(!isset($_GET[‘login’]) && !isset($_GET[‘motdepasse’]))
{
header('Location: index.php');
}
else
{
// On va vérifier les variables
if(!preg_match('/^[[:alnum:]]+$/', $_GET['login']) or
!preg_match('/^[[:alnum:]]+$/', $_GET['motdepasse']))
{
echo 'Vous devez entrer uniquement des lettres ou des chiffres <br/>';
echo '<a href="index.php" temp_href="index.php">Réessayer</a>';
exit();
}
else
{
require('config.php'); // On réclame le fichier

$login = $_GET['login'];
$motdepasse = $_GET['motdepasse'];

$sql = "SELECT * FROM table_utilisateur WHERE user='".mysql_escape_string($login)."'";

// On vérifie si ce login existe
$requete_1 = mysql_query($sql) or die ( mysql_error() );

if(mysql_num_rows($requete_1)==0)
{
echo 'Ce login n\'existe pas ! <br/>';
echo '<a href="index.php" temp_href="index.php">Réessayer</a>';
exit();
}
else
{
// On vérifie si le login et le mot de passe correspondent au compte utilisateur
$requete_2 = mysql_query($sql." AND pass='".mysql_escape_string($motdepasse)."'")
or die ( mysql_error() );

if(mysql_num_rows($requete_2)==0)
{
// On va récupérer les résultats
$result = mysql_fetch_array($requete_1, MYSQL_ASSOC);

// On va récupérer la date de la dernière connexion
$lastconnection = explode(' ', $result["dates"]);
$lastjour = explode('-', $lastconnection[0]);

// On va récupérer le nombre de tentative et l'affecter
$nbr_essai = $result["nbr_connect"];

if($lastjour[2]==date("d") && $MAX_essai==$nbr_essai)
{
echo 'Vous avez atteint le quota de tentative, essayez demain !<br/>';
exit();
}
else
{
$nbr_essai++;
$update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW()
WHERE id='".$result["id"]."'";

mysql_query($update) or die ( mysql_error() );

echo 'Le mot de passe et/ou le login sont incorrectes <br/>';
echo '<a href="index.php" href="index.php">Réessayer</a>';
exit();
}
}
else
{
// On va récupérer les résultats
$result = mysql_fetch_array($requete_2, MYSQL_ASSOC);

$nbr_essai = 0;
$update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW()
WHERE id='".$result["id"]."'";

mysql_query($update) or die ( mysql_error() );

// On redirige vers la partie membre
header('Location: membres/index.php');
}
}

}
}

?>


Conclusion :

Il est donc aisé de réaliser un script d'authentification en procédant avec un peu de logique et avec de simple fonction de base.

________________________________________________________________________________________

MISE A JOUR

Le tuto a été réalisé de manière didactique avec des fonctions de bases, mais personnellement je ne trouve pas ceci sexy ^^. Alors je vais vous ‘fournir’ un code plus propre et plus optimiser.

On va modifier le fichier ‘config.php’ et ainsi que le fichierconnect.php’.
Un nouveau fichier sera crée ‘fonctions.php.





Fichier config.php

Fichier fonctions.php







Fichier connect.php





 Historique

18 décembre 2009 21:19:15 :
- Correction de certains caractères
30 mars 2010 18:04:30 :
Correction de texte
21 décembre 2010 00:34:20 :
Porposition d'un code plus propre et optimiser
21 décembre 2010 00:40:08 :
--

Commentaires

Commentaire de Oumbra le 18/01/2010 21:39:23

Bonjour,

Tout d'abord, beau tutorial, rapide et simple de compréhension, toute fois, connaissant un peu le Php, je ne comprend pas ceci :
"{
    header('Location: index.php');
}"
Pourrais tu m'en dire plus ?.

Ensuite, Je vois qu'à la fin de ton script tu initialise la Méta-variable $_SESSION[''].
Je n'arrive pas à m'en servir correctement. J'ai lu moult tutoriaux et exemple, j'ai encore quelque difficulté à m'en servir.
S'agit-il de variable globale propre à une session  ??
Comment utiliser la variable session_id() ??

Commentaire de phpAnonyme le 19/01/2010 00:27:04

Bonjour,

Merci d'avoir porter un piti intérêt à mon tuto :D

Alors pour :
- header('Location: index.php'); *** Cette ligne ou plutôt la fonction "header()" avec l'appel "Location" permet d'effectuer une redirection navigateur un peu comme le javascript le fait avec "document.location", tout comme le html avec le "meta", ou encore le "htaccess", etc... Donc cette ligne redirigera l'utilisateur vers la page d'acceuil du site ou à l'entrée de l'espace membre si les variables 'login' et 'motdepasse' ne sont pas définies. *** Plus de détail : http://fr.php.net/manual/fr/function.header.php

- Pour $_SESSION['data_connect'] = serialize(array($login, $motdepasse)); *** Ici, j'ai placé dans un tableau le mot de passe et le login, puis j'ai linéaliser ce tableau, et pour finir j'ai enregistré la linéalisation dans une session.
D'explication minimaliste la linéalisation permet de transporter des données tout en gardant le type et la structure des valeurs. Cela évitera de créer plus variables de sessions.
Donc pour récupérer les valeurs linéaliser tu doit utiliser sur ta page membre/index.php, par exemple, la fonction unserialise() et créer une nouvelle variable.
Cela donnera donc :
$var = unserialize($_SESSION['data_connect']);

Récupération du login : $var['login'];
Récupération du passe : $var['motdepasse'];  

C'est juste plus pratique !

http://fr.php.net/manual/fr/function.serialize.php
http://fr.php.net/manual/fr/function.unserialize.php
***


- Pour session_id() : Je ne saurais être plus clair que LA DOC, LA BIBLE DU PHP :
http://fr.php.net/manual/fr/function.session-id.php

***
Mais en gros, elle renvoie juste l'identifiant de session...L'identifiant de session est attribué par le navigateur à chaque fois qu'une session est initialisé. Sa durée de vie est celle du navigateur ouvert par défaut c'est-à-dire jusqu'à ce que le navigateur soit fermer. Si tu as deux navigateurs ouverts, tu aura deux identifiants de sessions différents. Le plus souvent et pour ceux qui veulent ajouter un degré de sécurité on y ajoute ce qu'on appel un grain de sel :
http://matthieu.developpez.com/authentification/
***


Voilà en espérant t'avoir aider !

Commentaire de Oumbra le 19/01/2010 01:05:09

Oui tes explications mon éclairées :)

Pour ce qui est de la $_SESSION['variable'] j'ai testé variable par variable mais ta façon de faire me plait beaucoup (tout bon développeur qui se respect doit être le plus feignant possible dans la maintenance :)).

Ensuite pour le session_id(), je verrais dans ma bible de 1300 pages que j'ai la chance d'avoir :).

Et enfin, je vais finir par :  
header('Location: index.php');
Si j'ai bien compris associé à des fonctions et des script javascript on peut vraiment s'amuser :).

Merci encore de ton aide :)

<u>ps:</u> Si tu t'y connais un peu en opendir() sur php, jettes un coup d'oeil à mon poste car j'ai un autre petit soucis :
http://www.phpcs.com/codes/EXEMPLE-DIAPORAMA-PHP_41778.aspx

Commentaire de phpAnonyme le 19/01/2010 01:43:38

Citation : ** tes explications mon éclairées **

Content de t'avoir aider !


Citation : ** Si j'ai bien compris associé à des fonctions et des script javascript on peut vraiment s'amuser **

J'ai envie de dire que oui, mais avec les contraintes qui accompagnent chaque langages utilisés et ce que l'on veux faire !

Pour ton soucis concernant le diapo, je verrai après si j'ai le temps...

Commentaire de Oumbra le 19/01/2010 08:08:56

Citation : *** Pour ton soucis concernant le diapo, je verrai après si j'ai le temps... ***

C'est gentil de ta par :)

Commentaire de halkiller le 20/01/2010 14:52:00

Bonjour !
Je n'ai pas utilisé votre tuto pour mon site, car j'ai un truc "tout fait"
Cependant, je voudrais savoir comment créer un "Se souvenir de moi" ?
Je ne vois pas dans votre code s'il y est, veuillez m'excuser.

Commentaire de kagea le 29/01/2010 16:29:38

Bonjour,

Merci pour ce tuto très bien expliqué avec beaucoup de simplicité..
Il marche du premier coup en plus.

On en redemande :)

Commentaire de phpAnonyme le 31/01/2010 20:42:28

Merci Kagea pour ton commentaire ! :D

Commentaire de NounoursOlivier le 01/03/2010 18:25:12

Bonjour,
Je suis novice dans la création de site en PHP. En effet j'ai déjà fait des site HTML mais j'aurais voulu aller plus loin et utiliser ce code pour mon site qui est hébergé chez free.

Seulement lorsque je rentre le login et le mot de passe le message suivant s'affiche :

Warning: session_start() [function.session-start]: open(/mnt/136/sdd/d/6/emilieetolivier2010/sessions/sess_4a8664f81d35788c708183c352077ca2, O_RDWR) failed: No such file or directory (2) in /mnt/136/sdd/d/6/emilieetolivier2010/connect.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/136/sdd/d/6/emilieetolivier2010/connect.php:11) in /mnt/136/sdd/d/6/emilieetolivier2010/connect.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/136/sdd/d/6/emilieetolivier2010/connect.php:11) in /mnt/136/sdd/d/6/emilieetolivier2010/connect.php on line 13
Table 'emilieetolivier2010.table_utilisateur' doesn't exist
Warning: Unknown(): open(/mnt/136/sdd/d/6/emilieetolivier2010/sessions/sess_4a8664f81d35788c708183c352077ca2, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/136/sdd/d/6/emilieetolivier2010/sessions) in Unknown on line 0


Pourriez-vous m'éclairer sur ce qui cloche je dois avouer que je ne suis pas sûr de mon coups pour le remplissage des champs de la bas SQL.
Merci

Commentaire de malalam le 02/03/2010 10:48:30 administrateur CS

Hello,

c'est pas mal! Didactique, plutôt bien codé, tu fais attention à à peu près tout...c'est bien
J'ai 3 remarques quand même :
- pense à mettre un exit; après tes header() : on peut très bien empêcher la redirection d'un navigateur, ce qui peut avoir des effets fâcheux. Le exit permettra de terminer le script en cas d'incident, et donc de ne pas dérouler une éventuelle suite. Ou balance une erreur avec un gestionnaire d'erreur derrière.
- autant utiliser les comparaisons strictes "===", c'est tjrs plus rapide que les comparaisons non strictes, et donne une bonne habitude. Et parfois, c'est juste vital.
- utilise les exceptions, ou un gestionnaire d'erreur, plutôt que tes "or die()" un peu sauvages...:-) C'est plus propre, et tu auras ainsi un véritable contrôle sur le déroulement de ton script.

Commentaire de phpAnonyme le 02/03/2010 21:42:20

Salut Malalam, merci pour ton commentaire !

- Pour l'exit après un header je le sais t'inquiète ;) C'est juste un oubli sur le premier header(et vu le temps d'affichage des modifications sur les tutos...je n'ai pas corriger, tu remarquera qu'il a bien été insérer ici :) http://www.phpcs.com/codes/EXEMPLE-CREATION-SCRIPT-AUTHENTIFICATION_50996.aspx ) et pour le dernier ben ce n'est pas vraiment nécessaire puisque le script se termine.

- Pour les exceptions oui...MAIS, ce n'est pas un code fourni, c'est un tuto pour débutant et tu remarquera qu'au vu des précédents messages que cela aurait un surplus non ou peu négligeable pour ceux qui découvre le langage ou ayant peu de notions. Je suis resté à l'essentiel.


#############################

Salut NounoursOlivier, et merci pour l'intérêt porter à mon tuto !

Le forum ou un MP (avec ton code) serait plus judicieux !

Cela dit :
- il semblerait que tu aurait une session déjà en fonctionnement d'où l'erreur !
- il te suffit de copier/coller dans phpmyadmin le code de la table(si tu n'y arrive pas) !
- ne pas oublier d'insérer le(s) compte(s) utilisateur(s) et le(s) mot(s) de passe(s) associé(s)
- ne pas oublier d'insérer les identifiants de connections de ta base




Commentaire de JeanSoub le 04/03/2010 09:09:50

Merci phpanonym, c'est exactement le script que je recherchai en tant que débutant pour essayer sur mon site. Je l'ai installé, j'ai créé ma base avec PhpMySql, il n'y a que le "COLLATE" que je n'ai pas su introduire. Lorsque je teste le site maintenant, tout fonctionne apparemment bien quand je met un mauvais mot de passe, mais lorsque je met le bon pseudo et le bon mot de passe, une page blanche apparait au lieu de la page .php où je veux aller et dans l'emplacement de l'URL, on trouve la requete SQL qui apparemment bloque. Peux-tu me dire comment m'en sortir?
merci pour ce bon tutoriel.

Commentaire de NounoursOlivier le 06/03/2010 17:13:10

Merci phpAnonyme
En fait j'avais plusieurs problème :
1. je n'avais pas donné le bon nom de table loupé une lettre.
2. Apparemment j'ai un soucis avec les sessions avec FREE. depuis que j'ai enlever la gestion de la session tout va bien. En effet j'utilise le script uniquement pour que les gens s'identifie, après je redirige sur un site en HTML.
Encore merci et bonne continuation.

Commentaire de amounaups le 14/04/2010 19:53:46

bnj merci pour ce script mais j'ai eu des erreurs au niveau du code
je veux le bon code j'ai bien réfléchi mai j'ai pas trouvé l'erreur
j'ai fais tous les étapes il se bloc au niveau de
header('Location: index.php');

Commentaire de bdebou le 03/05/2010 14:54:23

Parfait tuto!
Fonctionne parfaitement et du premier coup.
Maintenant va falloir que je trouve une idée pour le après authentification.
Mais je vais trouver.

Encore merci

Commentaire de supergrandebutant le 17/05/2010 02:09:09

Merci pour votre script très bien élaboré. j'arrive à comprendre ce que vous faites mais excuser moi de vous poser une question "bête"!!en fait si on doit s'authentifier cela voudrais dire que l'on a déjà une table des inscrits et que l'authentification voudrais qu'on vérifie l'existance du membre dans cette table avant de permettre la connexion au site....je voudrais donc savoir s'il vous plait comment s'y prendre pour lier ces deux tables? comment vérifier que le membres qui veut se connecter existe dans notre table des inscrits au site.

NB: j'ai une table inscription dans mon site et je voudrais intégrer votre script d'authentification. donc votre aide sera la bienvenue. je vous remercie encore pour ce travail d'apollon que vous abattez c'est pas facile.

merci

Commentaire de phpAnonyme le 18/05/2010 04:19:20

Salut,

Ouu sinon juste ajouté les champs du tuto aux champs de ta table existante...il s'agirait de n'ajouter que 2 ou 3 champs suppémentaires à ta table membre (selon la manière dont elle est faite)...

Cordialement,

Commentaire de supergrandebutant le 20/05/2010 01:38:21

Merci PHPANONYME
j'y ai penser (ajouter des champs) mais je voulais en etre sur!! et en plus c'etait meme trop bete ma question puisque qu'on nécessairement travailler avec la table qu'on a déjà. merci encore de votre réponse rapide. big respect pour ce que vus faites!

Svp: Vous n'aurez pas par hasard dans votre trésorerie à PHP, un script sur les sessions et sur les include? car créer un site c'est bien mais quand on a 1000pages (c'est un exemple) cela devient vraiment difficile si l'on ne matrise pas les sessions de PHP en plus j'ai une appli pour mon stage en entreprise que je desire réaliser intégralement en php j'ai besoin de ces tutos si vous en avez. merci encore

Commentaire de cod57 le 17/10/2010 12:52:36

Salut

Tu utilises $_GET dans le tuto il serait plus sage de prendre $_POST pour cacher l'url qui reste dans le cache du navigateur, un petit malin peu allez voir dans le cache navigateur d'une salle info (exemple) et regarder les url saisie sur un pc ... et récuperer les identifiants ...
Autrement le tuto est pleins d'astuces intéressantes et bien commenté

merci

Commentaire de phpAnonyme le 17/10/2010 22:03:23

Salut,

Merci pour ton commentaire !

[commentaire]
Tu utilises $_GET dans le tuto il serait plus sage de prendre $_POST pour cacher l'url qui reste dans le cache du navigateur, un petit malin peu allez voir dans le cache navigateur d'une salle info (exemple) et regarder les url saisie sur un pc ... et récuperer les identifiants ...
[/commentaire]

Ceci dit dans l'avant propos il est dit : "Pour plus de visibilité, on utilisera la méthode GET"

Commentaire de alexy10 le 23/10/2010 11:04:35

bonjour j'ai une question je travaille avec web creator pro 5 et je ne comprend pas quand mettre le script d'authentification

Commentaire de alexy10 le 23/10/2010 13:19:33

CREATE TABLE IF NOT EXISTS `table_utilisateur` (
`id`int(3) NOT NULL AUTO_INCREMENT,
`user`varchar(20) COLLATE latin1_general_ci NOT NULL,
`pass`varchar(40) COLLATE latin1_general_ci NOT NULL,
`nbr_connect` tinyint(1) NOT NULL DEFAULT '0',
`dates`datetime NOT NULL,
PRIMARYKEY (`id`),
UNIQUEKEY `user` (`user`));

en français sa donne quoi stp
car je peux pas mettre sa dans me table

Commentaire de phpAnonyme le 23/10/2010 15:54:52

Bonjour alexy10,

As-tu pris la peine de lire le tuto ?
As-tu déjà fait du PHP ?

Commentaire de alexy10 le 23/10/2010 19:20:39

bonjour phpanonyme

oui j'ai pris la peine de lire le tuto, et oui j'ai des connaissance en php mais j'ai un problème avec wanp sur le moi sa me mes sa:
CREATETABLE`test`.`table_utilisateur` (
`id` INT( 3)NOTNULLAUTO_INCREMENT ,
`user` VARCHAR( 20)CHARACTERSET latin1 COLLATE latin1_general_ci NOTNULL ,
`pass` VARCHAR( 40)CHARACTERSET latin1 COLLATE latin1_general_ci NOTNULL ,
`nbr_connect` TINYINT( 1)NOTNULL ,
`dates` DATETIME NOTNULL ,
PRIMARYKEY (`id`)
) ENGINE=MYISAM ;


Commentaire de phpAnonyme le 23/10/2010 19:59:03

alexy10, prise de contact en M.P.

Commentaire de missdinaci le 14/02/2011 19:11:29

slt franchement s'est super. jè tellement galéré pr une authentification. merci vraiment! sè cool de ns le fèr partager. il m'a bcps aidé.

Commentaire de missdinaci le 14/02/2011 19:31:19

vivement un autre tuto!!

Commentaire de snall le 07/06/2011 00:20:07

:'( j'ai un problem
sa me met, quand je l'essaye sur un navigateur ceci :
'; echo 'Réessayer'; exit(); } else { require('config.php'); // On réclame le fichier $login = $_GET['login']; $motdepasse = $_GET['motdepasse']; $sql = "SELECT * FROM table_utilisateur WHERE user='".mysql_escape_string($login)."'"; // On vérifie si ce login existe $requete_1 = mysql_query($sql) or die ( mysql_error() ); if(mysql_num_rows($requete_1)==0) { echo 'Ce login n\'existe pas !
'; echo 'Réessayer'; exit(); } else { // On vérifie si le login et le mot de passe correspondent au compte utilisateur $requete_2 = mysql_query($sql." AND pass='".mysql_escape_string($motdepasse)."'") or die ( mysql_error() ); if(mysql_num_rows($requete_2)==0) { // On va récupérer les résultats $result = mysql_fetch_array($requete_1, MYSQL_ASSOC); // On va récupérer la date de la dernière connexion $lastconnection = explode(' ', $result["dates"]); $lastjour = explode('-', $lastconnection[0]); // On va récupérer le nombre de tentative et l'affecter $nbr_essai = $result["nbr_connect"]; if($lastjour[2]==date("d") && $MAX_essai==$nbr_essai) { echo 'Vous avez atteint le quota de tentative, essayez demain !
'; exit(); } else { $nbr_essai++; $update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW() WHERE id='".$result["id"]."'"; mysql_query($update) or die ( mysql_error() ); echo 'Le mot de passe et/ou le login sont incorrectes
'; echo 'Réessayer'; exit(); } } else { // On va récupérer les résultats $result = mysql_fetch_array($requete_2, MYSQL_ASSOC); $nbr_essai = 0; $update = "UPDATE table_utilisateur SET nbr_connect='".$nbr_essai."', dates=NOW() WHERE id='".$result["id"]."'"; mysql_query($update) or die ( mysql_error() ); // On redirige vers la partie membre header('Location: membres/index.php'); } } } } ?>

Commentaire de snall le 07/06/2011 00:23:24

pi meme qd je met sa seulement dans connect.php  .. sa me renvoye pas a login et mot de passe


<?php
if(!isset($_GET['login']) && !isset($_GET['motdepasse']))
{
header('Location: index.php');

Exit;
}
else
{

}

?>

Commentaire de sartoz le 23/02/2012 17:22:47

désolé mais ton tuto et plus qu'inclomplet , ya meme pas la page   inscription.php
car tout le monde ne comprend pas a la ,virgule,  pret  le php
donc ton script pour moi est inutile je peux pas m'en servir , car tu as dit que c'est pour les débutants , ba moi je suis débutant et j'arrive pas a le faire fonctionner

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,172 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales