Protéger l'acces par mot de passe
Résolu
hornetovore
Messages postés
84
Date d'inscription
Statut
Membre
Dernière intervention
-
hornetovore Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
hornetovore Messages postés 84 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'aimerai créé un accès protégé par mot de passe mais ça bloque quelque part et mes recherches infructueuses n'ont pas abouties, j'ai utilisé cette méthode:
____________________________________________________________
Code :
<html>
<head>
<title>motdepasse</title>
<link href="../js/pass.js" type="text/javascript">
</head>
<body>
<table width="100%" height="100%">
<tr>
<td align="center" valign="middle">
<form >
Utilisateur: <input type=text name="username" size=10><br><br>
Mot de Passe: <input type=password name="password" size=10><br><br>
<input type=button value="Entrer" onClick="Login(this.form)">
</td>
</tr>
</table>
</body>
</html>
__________________________________________________________________
et le fichier java qui va avec:
__________________________________________________________________
Code :
function Login(form)
{
var username = form.username.value;
var password = form.password.value;
if (username=monlogin && password=monpassword)
{
document.location.href='document si ok'
}
else
{
alert("Mot de Passe Invalide ... ")
}
}
_______________________________________________________________
Lorsque je clic sur le bouton, rien ne se passe et quand je vais voir dans la console d'erreur de firefox, j'ai ce message:
login is not defined!!!
Alors , déjà, je ne suis pas sur que c'est là que je dois mettre monlogin et monpassword, le resultat est le même avec ou sans... et je sais que la methode n'est pas du tout securisée le code source indiquant où trouver le .js et ce dernier ayant le code visible en clair, je reste ouvert à toute proposition différentes!
Merci de votre aide
J'aimerai créé un accès protégé par mot de passe mais ça bloque quelque part et mes recherches infructueuses n'ont pas abouties, j'ai utilisé cette méthode:
____________________________________________________________
Code :
<html>
<head>
<title>motdepasse</title>
<link href="../js/pass.js" type="text/javascript">
</head>
<body>
<table width="100%" height="100%">
<tr>
<td align="center" valign="middle">
<form >
Utilisateur: <input type=text name="username" size=10><br><br>
Mot de Passe: <input type=password name="password" size=10><br><br>
<input type=button value="Entrer" onClick="Login(this.form)">
</td>
</tr>
</table>
</body>
</html>
__________________________________________________________________
et le fichier java qui va avec:
__________________________________________________________________
Code :
function Login(form)
{
var username = form.username.value;
var password = form.password.value;
if (username=monlogin && password=monpassword)
{
document.location.href='document si ok'
}
else
{
alert("Mot de Passe Invalide ... ")
}
}
_______________________________________________________________
Lorsque je clic sur le bouton, rien ne se passe et quand je vais voir dans la console d'erreur de firefox, j'ai ce message:
login is not defined!!!
Alors , déjà, je ne suis pas sur que c'est là que je dois mettre monlogin et monpassword, le resultat est le même avec ou sans... et je sais que la methode n'est pas du tout securisée le code source indiquant où trouver le .js et ce dernier ayant le code visible en clair, je reste ouvert à toute proposition différentes!
Merci de votre aide
A voir également:
- Protéger l'acces par mot de passe
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Protéger un dossier par mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
17 réponses
Je viens de me rendre compte d'une erreur de debutant, mais ça ne solutionne pas, ça precise l'endroit du problème je pense, l'erreur était dans la ligne d'appel du .js, je l'avais mal formulée, c'est plutôt ça qu'il me fallait:
<script language="javascript" type="text/javascript" src="../js/pass.js"></script>
à la place de :
<link href="../js/pass.js" type="text/javascript">
En réessayant, le message dans la console d'erreur est celui ci:
missing ) after condition : if (username=monlogin && password=monpassword) pour le fichier pass.js
et toujours mon
login is not defined pour le fichier pass.html
<script language="javascript" type="text/javascript" src="../js/pass.js"></script>
à la place de :
<link href="../js/pass.js" type="text/javascript">
En réessayant, le message dans la console d'erreur est celui ci:
missing ) after condition : if (username=monlogin && password=monpassword) pour le fichier pass.js
et toujours mon
login is not defined pour le fichier pass.html
suite et fin
soluce trouvée, mon erreur etait celles là:
if (username == "monlogin" && password == "monpaswword")
il fallait ces satanés guillemets, et dans mon cas, c'était & amp (tout attaché), le fofo virait le amp, tout fonctionne nikel en mettant simplement &&, reste que la methode est avec un grand danger niveau securité...
soluce trouvée, mon erreur etait celles là:
if (username == "monlogin" && password == "monpaswword")
il fallait ces satanés guillemets, et dans mon cas, c'était & amp (tout attaché), le fofo virait le amp, tout fonctionne nikel en mettant simplement &&, reste que la methode est avec un grand danger niveau securité...
bonjour,
une protection par mot de passe en javascript ne sert à rien! l'utilisateur peut tout voir grâce à un simple clic-droit ^^
une protection par mot de passe en javascript ne sert à rien! l'utilisateur peut tout voir grâce à un simple clic-droit ^^
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Java et Javascript sont deux langages différents! Javascript est utilisé pour les pages Web et Java c'est plus pour faire des programmes. (Mais beaucoup confondent t'es pas le premier ;) )
Sinon pour la protection par mot de passe tu as deux solutions:
- utiliser une protection par htaccess: ça t'affichera une fenêtre pour te demander un mot de passe quand tu voudras accèder à la page (Pas joli ^^)
- utiliser PHP: là il faut que tu apprennes un peu de PHP et que tu ais un serveur Web ou PHP est installé...
Sinon pour la protection par mot de passe tu as deux solutions:
- utiliser une protection par htaccess: ça t'affichera une fenêtre pour te demander un mot de passe quand tu voudras accèder à la page (Pas joli ^^)
- utiliser PHP: là il faut que tu apprennes un peu de PHP et que tu ais un serveur Web ou PHP est installé...
voilà en PHP:
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
echo "Login et mot de passe corrects!";
}
else
{
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
}
?>
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
echo "Login et mot de passe corrects!";
}
else
{
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
}
?>
vais tenter ça, merci beaucoup donuts08 mais pourquoi c'est plus sécurisé? l'utilisateur peut quand même lire le code source là aussi non?
non car le fichier PHP est forcément interprété si tu as PHP d'installé sur ton serveur
je t'explique:
quand un visiteur veut afficher une page, son navigateur envoi une requête à un serveur Web (le tiens), ce serveur lui renvoi la page qu'il a demandé, et son navigateur affiche la page reçu
mais avec PHP, la page qui est sur ton serveur n'est pas envoyée directement, elle est tout d'abord lu par PHP, qui lit et execute le code, le serveur Web ne fait que récupérer le texte qui a été généré par ton code et l'envoi
quand tu fais un echo, ça génère du texte et l'utilisateur ne voit que ça! tu peux toujours essayer avec un clic droit tu verras ^^
je t'explique:
quand un visiteur veut afficher une page, son navigateur envoi une requête à un serveur Web (le tiens), ce serveur lui renvoi la page qu'il a demandé, et son navigateur affiche la page reçu
mais avec PHP, la page qui est sur ton serveur n'est pas envoyée directement, elle est tout d'abord lu par PHP, qui lit et execute le code, le serveur Web ne fait que récupérer le texte qui a été généré par ton code et l'envoi
quand tu fais un echo, ça génère du texte et l'utilisateur ne voit que ça! tu peux toujours essayer avec un clic droit tu verras ^^
ah ouaiii, joli, niquel en effet, mais je bloque sur un problème là, j'ai le message qui arrive si je rentre le bon mdp mais j'ai essayé de remplacer la phrase par un lien, j'ai donc mis ça en lieu et place de la phrase:
echo "<a href="Mon_lien">
puis essayé ça:
echo "document.location.href='Mon_lien'";
mais ça ne veut pas, comment on insere un lien pour donner une redirection si le mot de passe est ok?
echo "<a href="Mon_lien">
puis essayé ça:
echo "document.location.href='Mon_lien'";
mais ça ne veut pas, comment on insere un lien pour donner une redirection si le mot de passe est ok?
il faut que tu fasse attention aux guillemets ^^
echo "<a href=\"monlien\">texte lien</a>";
N'oublie pas les \ pour protéger les guillemets qui vont apparaitre car sinon PHP croit que tu termines la chaine de caractères et donc te donne une erreur
EDIT:
mets ça tout en haut de ta page (avant le moindre texte) si tu veux rediriger:
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
echo "<a href=\"monlien\">texte lien</a>";
N'oublie pas les \ pour protéger les guillemets qui vont apparaitre car sinon PHP croit que tu termines la chaine de caractères et donc te donne une erreur
EDIT:
mets ça tout en haut de ta page (avant le moindre texte) si tu veux rediriger:
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
Ca fonctionne, mais ça m'affiche le lien, on peut faire en sorte que le fait de cliquer sur le bouton amène directement sur la page voulue?
EDIT: tu as editer entre temps ^^, le texte, je le met où, parce que pour etoffer un peu le forulaire, je l'ai inseré dans une page html avec les balises <html ><head > etc...
EDIT: tu as editer entre temps ^^, le texte, je le met où, parce que pour etoffer un peu le forulaire, je l'ai inseré dans une page html avec les balises <html ><head > etc...
comme ça?
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
}
else
{
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
}
?>
attention car dans ce cas, il ne doit pas y avoir de commande "echo" devant les "header", et il ne doit pas y avoir de texte ni rien d'autre devant la balise <?php, c'est très important (même pas un saut de ligne d'ailleurs)
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
}
else
{
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
}
?>
attention car dans ce cas, il ne doit pas y avoir de commande "echo" devant les "header", et il ne doit pas y avoir de texte ni rien d'autre devant la balise <?php, c'est très important (même pas un saut de ligne d'ailleurs)
arf, j'ai fait ça:
<html>
<head>
<title>pass</title>
<style type="text/css">
.......
</style>
</head>
<body>
<div id="container">
<div id="form">
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "mdp" && $_POST["login"] == "login")
{
echo "<a href=\"../../.html/kit/dontspeak/\">Entrer</a>";
...
Il y a les div, c'est quand même bon?
EDIT: j'ai tenté de faire comme ça pour voir, j'ai mis les deux ligne à la place du echo "<a href=\"url>text</a>
mais je recois cette erreur quand je valide avec les bons login et mdp:
Warning: Cannot modify header information - headers already sent by (output started at /media/sdb3/jo/serveur/.php/secure/pass.php:5) in /media/sdb3/serveur/.php/secure/pass.php on line 55
Warning: Cannot modify header information - headers already sent by (output started at /media/sdb3/jo/serveur/.php/secure/pass.php:5) in /media/sdb3/serveur/.php/secure/pass.php on line 56
<html>
<head>
<title>pass</title>
<style type="text/css">
.......
</style>
</head>
<body>
<div id="container">
<div id="form">
<?php
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "mdp" && $_POST["login"] == "login")
{
echo "<a href=\"../../.html/kit/dontspeak/\">Entrer</a>";
...
Il y a les div, c'est quand même bon?
EDIT: j'ai tenté de faire comme ça pour voir, j'ai mis les deux ligne à la place du echo "<a href=\"url>text</a>
mais je recois cette erreur quand je valide avec les bons login et mdp:
Warning: Cannot modify header information - headers already sent by (output started at /media/sdb3/jo/serveur/.php/secure/pass.php:5) in /media/sdb3/serveur/.php/secure/pass.php on line 55
Warning: Cannot modify header information - headers already sent by (output started at /media/sdb3/jo/serveur/.php/secure/pass.php:5) in /media/sdb3/serveur/.php/secure/pass.php on line 56
non, il ne faut absolument rien devient les "header"
d'ailleurs ne mets aucun code HTML car de toutes manières tu vas rediriger l'utilisateur, il n'a donc pas besoin de voir quoi que ce soit...
tu vas me dire "mais alors si le mdp est faux il faut bien que j'affiche quelque chose?" et dans ce cas je te répondrai ceci:
<?php
$mdpok = false;
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
$mdpok = true;
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
}
?>
<html>
<head>
</head>
<body>
<?php
if( !$mdpok )
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
?>
</body>
</html>
d'ailleurs ne mets aucun code HTML car de toutes manières tu vas rediriger l'utilisateur, il n'a donc pas besoin de voir quoi que ce soit...
tu vas me dire "mais alors si le mdp est faux il faut bien que j'affiche quelque chose?" et dans ce cas je te répondrai ceci:
<?php
$mdpok = false;
if(isset($_POST["mdp"]) && isset($_POST["login"]) && $_POST["mdp"] == "monmotdepasse" && $_POST["login"] == "monlogin")
{
$mdpok = true;
header( "Status: 301 Moved Permanently");
header("Location: http://www.votresite.com/unepage.htm");
}
?>
<html>
<head>
</head>
<body>
<?php
if( !$mdpok )
echo "<form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form>";
?>
</body>
</html>
Parfais... pas d'autre mot, reste que je n'ai pas tout compris, les header surtout et le if( !$mdpok ).
Que je ne vienne pas redemander pour un truc avoisinant un autre jour ;)
Que je ne vienne pas redemander pour un truc avoisinant un autre jour ;)
en fait, quand un fichier est créé, il y a une entête et un contenu pour ce fichier, or, une fois qu'il y a du contenu (que tu mets une ligne ou n'importe quoi d'autre), tu ne peux plus modifier l'entête
header, c'est une fonction PHP qui permet de générer une partie de l'entête du fichier, ici on lui dit que le fichier est une redirection mais seulement si le mot de passe est invalide, si il est valide on change pas l'entête comme ça le fichier reste un document HTML
tu comprends donc que tant qu'on ne sait pas si le mdp est valide, on ne peut se permettre de mettre du contenu
ensuite pour le if($mdpok), c'est pour que le code soit plus clair, sinon tu aurais pu faire un énorme "echo" (mais c'est très moche je trouve ^^)
echo "<html><head></head><body><form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form></body></html>";
header, c'est une fonction PHP qui permet de générer une partie de l'entête du fichier, ici on lui dit que le fichier est une redirection mais seulement si le mot de passe est invalide, si il est valide on change pas l'entête comme ça le fichier reste un document HTML
tu comprends donc que tant qu'on ne sait pas si le mdp est valide, on ne peut se permettre de mettre du contenu
ensuite pour le if($mdpok), c'est pour que le code soit plus clair, sinon tu aurais pu faire un énorme "echo" (mais c'est très moche je trouve ^^)
echo "<html><head></head><body><form method=\"post\" action=\"\" name=\"form\"><input type=\"text\" name=\"login\" /><input type=\"text\" name=\"mdp\" /><input type=\"submit\" /></form></body></html>";