Proteger une page par login/password

Soyez le premier à donner votre avis sur cette source.

Snippet vu 26 969 fois - Téléchargée 34 fois

Contenu du snippet

Il y a bcp de questions sur la protection de pages dans le forum. Voici un bout de code qui fonctionne parfaitement, à vous de l'adapter à votre sauce =)
le code contient 2 pages, une avec un formulaire et l'autre avec l'identification.
bonne prog' !

Source / Exemple :


PAGE 1 :
<form name="identification" action="modules/verif.asp" method=post>
  <table width="450" border="0" cellspacing="0" cellpadding="0" align="center">
    <tr> 
      <td colspan="2" bgcolor="#99CCFF"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">&#149; 
        <u>Identifiez - vous</u> : </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Login 
          : </font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <input type="text" name="idlog">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">Password 
          : </font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp; 
        <input type="password" name="idpass">
        </font></td>
    </tr>
    <tr bgcolor="#FFFFFF"> 
      <td valign="bottom" width="60%"> 
        <div align="right"><font face="Arial, Helvetica, sans-serif" size="2" color="#000000"> 
          <input type="reset" name="button2" value="Effacer">
          &nbsp;&nbsp;</font></div>
      </td>
      <td width="40%"> <font face="Arial, Helvetica, sans-serif" size="3" color="#000000"> 
        &nbsp;&nbsp; 
        <input type="submit" name="Submit" value="Identifier">
        </font></td>
    </tr>
  </table>
</form>

---------------------------------------------------------------------------------------------
PAGE 2 :

<%
<%
'chaine de connection avec dsn
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "mabase"

'on recupere les champs du formulaire (method post : nom visible ds l'url, pas de querystring!!!)
Dim idlog
idlog=Request.Form("idlog")
Dim idpass
idpass=Request.Form("idpass")

'on cherche si le nom est bien dans la base
'------------------------------------------
SQL = "Select User.* From User Where User.[Nomuser]= '"&idlog&"';"

Set RsId = Server.createObject("ADODB.Recordset")
RsId.Open SQL, Connection, 3

if RsId.RecordCount = 0 then
%>
<script language=javascript>
alert('Utilisateur non enregistré');
history.back();
</script>
<%elseif RsId("Password")= idpass then%>
Bienvenue&nbsp;<%=RsId("Nomuser")%>. Vous êtes bien identifié(e).<br>

<%Session ("Id") = RsId("Nomuser")%>

<a href="../mapage.asp">lien</a>
<%else%>
<script language=javascript>
alert('Mot de passe incorrect');
history.back();
</script>
<%
end if
%>

Conclusion :


pour proteger d'autres pages, faites un test sur la session, si elle est vide, pas de page, sinon affichage normal...

Si vous avez des erreurs, faites attention à vos requetes et à vos variables!
          • IMPORTANT MAJ 21/03/2003: *****

Somei m'a informé que cette source comportait un pb de sécurité : qqn de mal intentionné peut passer outre cette vérification. Pour l'en empecher dans la plupart des cas, il suffit de faire appel à une procédure qui enlevera tous les caracteres spéciaux de vos input text avant le test avec la base de données.
Merci à lui et bonne prog' ;o)

A voir également

Ajouter un commentaire

Commentaires

MopX
Messages postés
8
Date d'inscription
mardi 21 juin 2005
Statut
Membre
Dernière intervention
22 octobre 2005
-
n'oublie pas de détruire tes objets de connection :

'fermeture & destruction du recordset
RsId.close
Set RsId=nothing

'fermeture & destruction d la connection
Connection.close
set connection=nothing
mystery711
Messages postés
1
Date d'inscription
jeudi 4 août 2005
Statut
Membre
Dernière intervention
4 août 2005
-
bravo c'est super le code ;)
par contre quel est le login et le mot de passe ?
faut il le définir? comment?
merci!!!
TARIK395
Messages postés
2
Date d'inscription
mardi 18 novembre 2003
Statut
Membre
Dernière intervention
5 août 2004
-
c bon merci,::) genial continue
cs_Jackboy
Messages postés
757
Date d'inscription
vendredi 7 septembre 2001
Statut
Membre
Dernière intervention
19 juin 2008
-
Peut etre ajouter ceci car tu entre n'importe quoi dans ton psw et sa fonctionne donc....

<%elseif RsId("Password")= idpass and RsId("Nomuser")= idlog then%>
carniraz
Messages postés
3
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
10 novembre 2003
-
Pas mal le script j a ijuste changer un petit truc je le met pour que ce soit nickel
If RsId.BOF = true Then
%>
<script language=javascript>
alert('Utilisateur non enregistré');
history.back();
</script>

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.