Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

proteger une page par mot de passe

Envoyé par sylvain 
proteger une page par mot de passe
jeudi 22 août 2002 15:08:39
Proteger l'accès à une page par un mot de passe:

J'ai trouvé un truc sur un site, mais cela me semble incomplet.
regardez par vous même:

1 ere page: le formulaire

<form name="formmdp" method="GET" action="verifmdp.php"><br><br><br><br>
<p align="center">Pour pouvoir acceder à cette page<br>
Saisissez votre mot de passe :<br>
<input type="text" name="mp">
<input type="submit" name="Submit" value="Valider">
<br>
</p>
</form>


2ème page:nomée verifmdp.php

<?
if ($mp=="motdepasse"winking smiley {
echo "<H3> vous avez le bon mot de passe !</H3>";
} else {
echo "<H3> Ce n'est pas le bon mot de passe !</H3>";
}
?>


même si le mot de passe est faux, on accede tout de même à la page verifmdp.


oukil est le truc qui manque?
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 15:35:25
"même si le mot de passe est faux, on accede tout de même à la page verifmdp..." c'est normal puisque l'action c'est verifmdp.php..... yawning smiley)) sauf que le message est différent selon le mot de passe saisi. en fait le gars qui a écrit ça voulait simplement démontrer le mécanisme de verifmdp.php..... si tu veux aller + loin avec ce script, tu vas devoir te mettre aux "headers"...

<?
if (isset($go)){
if ($mp=="motdepasse"winking smiley
{
header("location:inserer2.php"winking smiley;
}
else {
echo "<H3> Ce n'est pas le bon mot de passe !<H3>";
}
}
?>
<html>
<body>
<form name="formmdp" method="post" action="<?$PHP_SELF;?>"><br><br><br><br>
<p align="center">Pour pouvoir acceder à cette page<br>
Saisissez votre mot de passe :<br>
<input type="text" name="mp">
<input type="submit" name="go" value="Valider">
<br>
</p>
</form>
</body>
</html>
j'ai honte
jeudi 22 août 2002 17:27:03
Vraiment j'ai très honte.
Surtout que j'ai l'impression d'être l'emmerdeur de service pour toi.

Ca marche pas.

Voici le code de ma page 1:
- - - - - - - - - - --

<html>
<header>
<TITLE>saisir une annonce</TITLE>
</header>
<body>
<form name="formmdp" method="post" action="<?$PHP_SELF;?>"><br><br><br><br>
<p align="center">Pour pouvoir acceder à cette page<br>
Saisissez votre mot de passe :<br>
<input type="text" name="mp">
<input type="submit" name="go" value="Valider">
<br>
</p>
</form>

</body>
</html>
- - - - - - - - - -- - - -

et celui de ma page 2 nommée verifmdp

- - - - - - -- -
<html>
<header>
<title>accueil</title>
</header>

<body>
<div align="center"><center>
<?
if (isset($go)){
if ($mp=="motdepasse"winking smiley
{
header("location:inserer2.php"winking smiley;
}
else {
echo "<H3> Ce n'est pas le bon mot de passe !<H3>";
}
}
?>
</center></div>
</body>
</html>

Quand je valide sur le bouton de la page 1, j'ai dans la barre d'adresse:
[localhost];
Et dans le texte de la page:
You don't have permission to access /occas2/< on this server.

J'avais pourtant l'impression d'avoir fait ce que tu m'avait dit.
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 18:34:22
mais non t'es pas "l'emmerdeur de service".... et mais non c'est pas comme ça qu'il fallait tester le code que j'ai modifié... il faut tester le code seul que j'ai refait puisque à lui seul il regroupe les 2 que tu m'avais montrés yawning smiley)
>>>>>>>
ne touche pas au code que j'ai retouché, fais simplement un copier-coller et nomme le comme tu veux avec l'extension .php et teste-le....... un copier-coller sans rien ajouter avant ni aprés !
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 18:46:08
Il me repond:


Warning: Cannot add header information - headers already sent by (output started at c:\easyphp\www\occas2\essai.php:1) in c:\easyphp\www\occas2\essai.php on line 5


la ligne 5 c'est:

header("location:inserer2.php"winking smiley;
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 19:13:17
!!!!!! est-ce que ta page en .php ressemble à ça, rien qu'à ça et seulement qu'à ça :

<?
if (isset($go)){
if ($mp=="motdepasse"winking smiley
{
header("location:inserer2.php"winking smiley;
}
else {
echo "<H3> Ce n'est pas le bon mot de passe !<H3>";
}
}
?>
<html>
<body>
<form name="formmdp" method="post" action="<?$PHP_SELF;?>"><br><br><br><br>
<p align="center">Pour pouvoir acceder à cette page<br>
Saisissez votre mot de passe :<br>
<input type="text" name="mp">
<input type="submit" name="go" value="Valider">
<br>
</p>
</form>
</body>
</html>
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 19:18:02
Oui, j'ai fait un copier/coller sans rien ajouter.
J'écoute....

Quand je ne saisi pas de mot de passe ou bien erroné, il me dit bien que ce n'est pas le bon, mais quand je saisis:
motdepasse
dans le champ, il me dit
Warning: Cannot add header information - headers already sent by (output started at c:\easyphp\www\occas2\essai.php:1) in c:\easyphp\www\occas2\essai.php on line 5
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 19:28:24
vérifie qu'il n'y ait rien entre le début de ton fichier et la première balise d'ouverture php, il faut qu'il n'y ait rien, même pas un espace, même pas un retour à la ligne....
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 19:35:52
il y avait un #*¤"# d'espace !!!

CA MARCHE

Ca veut dire que je ne met pas non plus de titre, ni de head, etc?

a default d'un chèque, je t'enverrais bien un paquet de bonbon.


Dans le même temps, je m'acharne toujours sur la création d'une page qui permettrai de visualiser au moins les id des annonces, puis de pouvoir en choisir une pour effacer l'annonce.

Pour l'instant, j'en suis juste à afficher les id.
(en fait, j'ai tout repris de l'autre page, et j'ai virer ce qui n'était pas l'id,
mais alors pour la suite.........)

Mais je t'ai tellement casser les pieds que je devrai peut être aller gonfler quelqu'un d'autre sur un autre forum!!

En attendant, sur ce coup, tu m'as sauvé la vie.
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 19:51:00
no souci yawning smiley)) pour le head et le titre, tu peux en mettre mais aprés la balise de fermeture du code php...
Re: prtoteger une page par mot de passe
jeudi 22 août 2002 20:13:07
yawning smiley))

Merci

Pour mon autre truc, j'en suis là
- - - - - -
<html>
<head>
<title>supprimer</title>
</head>
<BODY> <div align="center"><center>

<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;

$requete = mysql_query("SELECT id from occasions"winking smiley;
print"<table>";

while ($resultat = mysql_fetch_array($requete))
{print "<table border=1 width=100 bordercolor=#008000>
<tr>
<td><B>N°:&nbsp;&nbsp</B>$resultat[id]<br></td>
</tr>
<tr>
<td><input type=\"submit\" name=\"effacer\" value=\"Effacer\" />
</td>
</tr>

";
} print"</table>";
mysql_close();
?>
</center></div>
</body>
</html>

- - - - - - --

Mais mon bouton, il ne fait rien, bien sur, puisque l'id n'est pas sélectionnée.
Puis je me perd dans les bouquins pour arriver à comprendre comment lui faire supprimer l'id concernée et l'annonce qui va avec.

On ne peux pas attribuer une action de ce genre à un bouton?

Enfin... je vais manger.
Je te souhaite bon appétit.

Et encore MERCI !!!
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 00:17:59
et bien tu crées un input type="text" name="choix" et tu crées un script php qui va, si tu as bien un $id qui est égal à $choix, supprimer la ligne d'enregistrement contenant ce $id...
pour supprimer
$supprime="DELETE FROM ma_table WHERE $id='$choix'";

juste un truc sur ta boucle while... tu mets ton bouton submit dans ta boucle, ce qui veut dire que s'il y a 36 $id, tu vas avoir 36 boutons.......

deuxième truc, qui dit bouton de submit, dit formulaire, j'en ai pas vu... et c'est ton formulaire soumis par ton bouton submit qui va actionner le code php $supprime........
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 09:11:16
Bon, je reprends depuis le début: "Il y avait des dinosaures..."
Non, ca va être trop long...

Voila ce que j'ai fait


------------------------------

<HTML>
<HEADER>
<TITLE>supprimer une annonce</TITLE>
</HEADER>
<BODY> <div align="center"><center>

<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;

$requete = mysql_query("SELECT id,modele,annee,kilometrage,couleur,description,prix,image from occasions"winking smiley;
print"<table>";
while ($resultat = mysql_fetch_array($requete))
{print "<table border=1 width=20 bordercolor=#008000>
<tr>
<td><B>N°:&nbsp;&nbsp</B>$resultat[id]</td>
<td width=5><input type=\"checkbox\" name=\"choixid\" value=\"choix\" /></td>
</tr>
";
} print"</table>";
mysql_close();
?>

<form action="supprimer.php" name="choixid" method="GET">
<input type="submit" name="choix" value="Supprimer l'annonce" />
</form>


<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;
mysql_query("delete from occasions where id =' '"winking smiley;
mysql_close();
?>
</center></div>
</body>
</html>
-------------------

En fait, je voudrais que l'on puisse cocher une case à coté de l'id de l'annonce, puis cliquer sur le bouton supprimer l'annonce.

Alors tu as l'état des lieux au dessus. Ca peux marcher selon toi?
Par contre, je ne sais pas quoi mettre dans where id ='ICI'"winking smiley;
sur la ligne
mysql_query("delete from occasions where id =' '"winking smiley;

Après, dans l'ideal, il faudrait une alerte pour confirmer la suppression......
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 10:09:44
pourquoi tu veux faire compliqué avant même de savoir faire simple ???
>>>>>>>>>>>> fais ça d'abord...
"Date: 23/08/2002 00:17

et bien tu crées un input type="text" name="choix" et tu crées un script php qui va, si tu as bien un $id qui est égal à $choix, supprimer la ligne d'enregistrement contenant ce $id...
pour supprimer
$supprime="DELETE FROM ma_table WHERE $id='$choix'"; "
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 11:23:39
Si j'ai bien un i$d qui est égal à $choix ???
Bein j'en sais rien.
id, c'est un champ de ma table???

J'ai fait ca:
--------------------------
<HTML>
<HEADER>
<TITLE>supprimer une annonce</TITLE>
</HEADER>
<BODY> <div align="center"><center>
<form action="supprimer.php" name="choixid" method="GET">
<input type="TEXT" name="choix" value="Supprimer l'annonce" />
</form>

<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;
mysql_query($supprime="DELETE FROM occasions WHERE $id='$choix'"winking smiley;
mysql_close();
?>

</center></div>
</body>
</html>
-------------------------
ps: si je ne mets pas de parenthèse à
WHERE $id='$choix'"winking smiley;
Il me mets une parse error sur cette ligne.

Et avec le code du dessus
il m'affiche seulement le champ de texte contenant "supprimer l'annonce".

Tu as affaire à un crétin tu sais!!!
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 11:35:37
en html on dit <head> pas <header>.....


<form action="<?$PHP_SELF;?>" name="choix" method="post">
<input type="TEXT" name="choix" value="Supprimer l'annonce" />
</form>

<?
$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;
mysql_query="DELETE FROM occasions WHERE $id='$choix'";
mysql_close();
?>
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 20:24:00
J'ai essayé ce que tu m'as dit.

En fait, comme je te le disais dans mon precedent message, je ne comprends pas quand tu me dit
"si tu as bien un $id qui est égal à $choix"
Bein j'en sais rien.
id, c'est un champ de ma table (c'est celui qui s'incrémente tout seul)

J'ai acheté un bouquin que tu conseilles sur le php.

J'aimerai mieux pouvoir finir ce truc, et ensuite, faire les exercices du bouquin dans l'ordre pour apprendre normalement.


Bon week end
Re: prtoteger une page par mot de passe
vendredi 23 août 2002 20:36:34
autant pour moi, il n'y a pas de $id yawning smiley((
c'est une bonne chose yawning smiley)) pour les bouquins.....
en fait si tu veux, tu dois afficher la liste de tous tes id donc 1,2,3,4,5 etc
mettons que tu veuilles virer le 3, tu tapes 3 dans l'input $choix qui va accueillir le n°, et à partir de là tu codes
<?
....connexion à ta base....
if (isset($choix)){ //si $choix est renseigné
$supprime="delete from ta_table where id='$choix'";
}
?>
Re: prtoteger une page par mot de passe
lundi 26 août 2002 12:43:25
Je m'en suis sorti avec:
----------------------------

<HTML>
<HEAD>
<TITLE>SUPPRIMER UNE ANNONCE</TITLE>
</HEAD>
<BODY> <div align="center"><center>

<?$db = mysql_connect('localhost','occas') or die ("erreur de connexion"winking smiley;
mysql_select_db('occas',$db) or die ("erreur de connexion base"winking smiley;

$requete = mysql_query("SELECT id from occasions"winking smiley;

if ($id_a_supprimer) {
mysql_query("DELETE from occasions where id=$id_a_supprimer"winking smiley or die ("impossible"winking smiley;

print "<B>Annonce effacée !!!</B>";
mysql_close();
exit;
}

print "<table border=2 width=300 bordercolor=#FF0000>";
print '<form>';
while ($resultat = mysql_fetch_array($requete))
{
print "
<tr>
<td><B>N°:&nbsp;&nbsp</B>$resultat[id]<br></td>
<td rowspan=1 width=200><B><input type=\"checkbox\" name=\"id_a_supprimer\" value=\"$resultat[id]\" />&nbsp;&nbsp;Sélectionner l'annonce </td>
</tr>
";

}

print '<input type="submit" name="EFFACER" value="Supprimer">';
print '</form>';
print"</table>";

mysql_close();
?>
<br>
<p><font color="#FF0000">Cochez une case avant de cliquer sur le bouton supprimer</font></p>

</center></div>
</body>
</html>
Re: prtoteger une page par mot de passe
lundi 26 août 2002 13:53:57
et moi je dis bravo yawning smiley))
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter