Proteger une page par login/password

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 539 fois - Téléchargée 36 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
5 août 2006 à 00:28
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
4 août 2005 à 11:39
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
5 août 2004 à 15:31
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
7 juin 2004 à 17:40
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
12 juil. 2003 à 04:15
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.