Version complète: sur le forum Webmaster Hub : php login dynamique
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
nolog
j'arrive a transmettre le nom par URL mais pour la verification du pass
j'ai un souci voila mon script si quelqu'un peut m'eclairer merci beaucoup

<?php
if ($HTTP_POST_VARS['valider']=="ok")
{
$pass=$_post['pass'];
if(strlen($_post['pass'])>0)
{
switch ($pass)
{
case $row_rsinitfiche['pass']:
header (location:"modifier.php");
break;
default:
echo "mot de passe erroné";
break;
}
}
}
?> blink.gif
NorSeb
Bonjour,

Dans ton script tu utilises indifférement $HTTP_POST_VARS et $_POST (attention aux majuscules).

Il ne me semble pas que tu peux utiliser les deux à la fois... Cela dépend de la configuration et de la version de PHP.

Essaye avec $_POST et tiens nous au courant. smile.gif

PS : utilise les balises [code] pour poster ton code, ca aide à la lisibilité.
nolog
merci norseb
avec la correction des majuscules c'est mieux mais maintenant dès que je tape le mot de passe les deux champs se vident et je reste tjs sur la meme page!!
alors que normalement ca devait fonctionner comme suite
le client qui souhaite changer ses données clique sur "modifier"
la il arrive sur une page login ou son nom est passe par url
il doit juste tapez son mot de passe pour acceder a la page modifier.php
rat-du-net
Et pourquoi ne pas utiliser les variables de SESSION ?
Tu met son login ou son id dans la session et tu fais un update du password pour l'id que tu as en SESSION
nolog
je vais essayer ca merci beaucoup pour la reponse rat du net!
nolog
bonjour;

pour proteger un repertoire par login mdp, je cree un formilaire dans lequel j'insere un tab (login:champ de texte, mdp:champ de texte, bouton:valider)

j'ai le script suivant, apres mon formulaire:

CODE
<?php
if ($HTTP_POST_VARS['valider']=="ok")
{
if (($HTTP_POST_VARS['login']=="toto") AND ($HTTP_POST_VARS['pass'])=="aaa")
    {
    header("location:gerer_evenement.php");
    }else    {
 $erreurlog=1;
     }
}
?>

mais des que saisie "toto","aaa"
je reste ala meme page avec le message d'erreur:

Warning: Cannot modify header information - headers already sent by (output started at c:\sites\music\admin\login.php:6) in c:\sites\music\admin\login.php on line 49

une reponse de votre part m'aiderai beaucoup
Dan
C'est parce que ton fichier a déjà envoyé ne fût-ce qu'un caractère au navigateur avant l'appel à la fonction header().

Vérifie que tu n'as pas laissé par exemple une ligne blanche au dessus de ton code php. Il faut que ce code vienne tout au début de ta page.

Dan
nolog
IMSTP3.gif super gentil, merci enormement ca marche !
je n'avais pas placé le script au debut de ma page.

j'aurai une deuxieme question si cela ne te derange pas
concernant la protection d'acces avec .htacess
il faut le placer ou ce dernier par rapport au repertoire ou la page a proteger? blush.gif
IMSTP3.gif
Dan
Tu le places où tu veux, mais de préférence dans le répertoire qui contient la page.
Et pour le fichier mot de passe, tu peux le mettre hors de l'espace web... c'est plus "sûr".
Vas voir l'article sur le Hub: Le fichier .htaccess

Dan
nolog
je l'ai lu ce tuto et son premier cours sur .htaccess
j'"essaye de l'appliquer:
j'ai donc mis unfichier.htaccess dans mon repertoire /admin

CODE
AuthUserFile   /home/login/sites/restreint/.htpasswd
AuthGroupFile /dev/null
AuthName "Espace Administrateur"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>


mais quand je verifie en local si mon repertoire demande un login mdp
ce n'est pas le cas
est ce que je dois créer une page index dans le repertoire admin qui contient un formulaire login mdp? ou ca dois ce faire automatiquement avec .htaccess?
et pour .htpasswd, malgré le fait que j'ai enlevé l'extention .rtf avec mon ftp des que je fais couper/coller dans sites/restreint/:il me la remet?est ce normal
merci d'avance de m'aider
Dan
Non, ce n'est pas normal. Le fichier doit porter le nom que tu auras défini dans la directive AuthUserFile du fichier .htaccess

S'il te rajoute l'extension .rtf, j'imagine que tu es sous Windows, et dans ce cas le chemin /home/login/sites/restreint/.htpasswd ne sera pas bon...

C'est toujours le problème des fichiers .htaccess en utilisation locale si on n'est pas sous Linux.

Assures-toi aussi que le fichier soit bien au format "texte seul" ... sans les sauts de ligne générés par Word ou tout autre traitement de texte. Le mieux est d'utiliser "notepad.exe", et penser à l'envoyer par ftp en mode "ASCII" et non pas en mode "BINARY".
nolog
En fait je travail sous dreamweaver et j'ai installé wamp5 en localhost
je viens de reécrire les fichiers .htaccess (dans dreamweaver j'arrive a enlever l'extension) mais pour .htpasswd il prend l'extension .txt!!
est ce que l'invitation de la fenetre login mdp se fait automatiquement sinon?
nolog
du fait que je suis sous windows ,ca ne marcherais pas le protection de mon repertoire??
nolog
je suis sous windows xp et je teste en local avec wamp5

j'ai du changer dans httpd.conf

AllowOverride (none) en (all)
et apres creation de .htaccess et .htpasswd
j'arrive a voir la fenetre d'identification
mais quand je saisie le login et le mot de passe je ne parviens pas a acceder au repertoire!!
CODE
AuthName "zone réservée"
AuthType Basic
AuthUserFile "c:\wamp\apache\.htpasswd"
require user adil dam


pour le .htpasswd
il prend toujours l'extension .txt dans c:\wamp\apache\
est ce acause de ca que ca bloque??
si un initié peut me filer un coup de main ca serai sympa
Dan
Crée le fichier au départ de DreamWeaver... enregistre-le et nomme-le .htpasswd.

C'est windows XP qui rajoute une extension, et c'est à cause de cette extension en .txt que cela ne marche pas.
nolog
comment puis je faire pour que ca marche stp
Antoine Cailliau
Supprimer l'extension .txt wink.gif

Pour que ton fichier fonctionne, il faut que le fichier se nomme .htaccess et non .htaccess.txt wink.gif
nolog
le s fichiers .htaccess et .htpasswd kje les creent avec le bloc note en suite le htaccess comme il dans le repertoire du site sous dream came permt de changer l'extention (enlever le .txt) mais pour le .htpasswd comme il est en dehors de dreamweaver je n'arrive pas a enlever l'extention.txt al'aide
Antoine Cailliau
sous windows, dans les options de la fenetre, tu peux (si mes souvenirs sont bons... je ne suis pas sous Windows donc, je ne peux te le certifier) choisir d'afficher les extensions. Tu affiches les extensions et tu renome ton fichier en virant le .txt wink.gif
nolog
je ne sais pas comment faire !
si tu peut me detailler la marche a suivre merci
wacko.gif
Dan
CITATION(nolog @ samedi 14 janvier 2006, 13h01)
le s fichiers .htaccess et .htpasswd kje les creent avec le bloc note en suite le htaccess comme il dans le repertoire du site sous dream came permt de changer l'extention (enlever le .txt) mais pour le .htpasswd comme il est en dehors de dreamweaver je n'arrive pas a enlever l'extention.txt al'aide
*

Merci de rédiger en français correct !
CITATION(Dan @ samedi 14 janvier 2006, 12h50)
Crée le fichier au départ de DreamWeaver... enregistre-le et nomme-le .htpasswd.

C'est windows XP qui rajoute une extension, et c'est à cause de cette extension en .txt que cela ne marche pas.
*

Je t'ai dit de le faire au départ de Dreamweaver !
webadev
CITATION(Antoine Cailliau @ samedi 14 janvier 2006, 12h59)
Supprimer l'extension .txt wink.gif

Pour que ton fichier fonctionne, il faut que le fichier se nomme .htaccess et non .htaccess.txt wink.gif
*


Tu peux changer l'extension avec ton client ftp préféré.
- Tu upload ton fichier
- ensuite tu le renome

Hervé
nolog
j'ai fini par trouver comment afficher les extensions mais des que j'enleve le point txt j'ai le message:
vous devez specifier un nom de fichier
j'arrive a effacer le .txt seulement si j'enleve le point du " ."htpasswd
aidez moi svp
nolog
au depart de dreameaver ca serait sympa de prciser car moi je ne vois pas ce que tu veux dire par la!!
Dan
Tu ouvres dreamweaver, cliques (clic-droit) sur le nom du fichier .htpasswd dans la liste des fichiers du site, et choisis "renommer". Là tu pourras le renommer sans l'extension .txt
nolog
merci herve
comme je test en local je ne peut enlever le.txt avec ftp je pense.
nolog
mon fichier e.htaccess est placer en dehors du dossier site en cours (dans dreamweaver),dan crois tu que c'est faisable ?
webadev
Tu peux changer le nom de ton fichier par l'invite de commande.

demarrer >> executer...

tu tapes >> cmd

tu te places dans le repertoire de ton htpasswd.txt

exemple: cd repertoire/sous-rep/

ensuite tu tapes la commande:

ren htpasswd.txt .htpasswd

Hervé
nolog
merci beaucoup hervé enfin un fichier .htpasswd
j'ai un second probleme: de ma page identification je ne peux toujours pas acceder a ce fameux repertoire !- )

voici mes 2 progs
CODE
AuthName "zone réservée"
AuthType Basic
AuthUserFile "c:\wamp\apache\.htpasswd"
require user adil dam toto


placé dans le repertoire a proteger


.htpasswd

adil: adil
dam: dam
toto: toto
nolog
et j'ai le message suivant aussi:

Authorization Required
This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn't understand how to supply the credentials required.


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

Apache/1.3.33 Server at localhost Port 80
nolog
y a t il encore quelqu'un ,une lumiere dans m'eclairer??!!
Dan
Nolog,

Si tu avais lu l'article sur le fichier .htaccess, tu saurais que les mots de passe DOIVENT être encryptés.
Tu aurais même trouvé dans ce même article un outil te permettant d'encoder les mots de passe.

Merci de faire attention à au moins exécuter ce qu'on te recommande, sinon ce n'est même pas la peine de poser les questions.

Merci aussi d'éviter de faire remonter ton post, et de respecter les règles du forum.

Dan
nolog
Dan,
je suis ici pour me faire epauler, pas pour me faire "gronder" par toi
avec tout mes respect
concernant les mot de passe dans un article ils disait le contraire
et pour "remonter mon post" je ne comprend pas ce que ca veut dire!!!
merci comme meme pour ton aide jusque la
Dan
Faire "remonter le post" c'est ce que tu as fait en postant à 20H04 en écrivant :
CITATION(nolog @ samedi 14 janvier 2006, 20h04)
y a t il encore quelqu'un ,une lumiere dans m'eclairer??!!
*

Probablement parce que tu devais penser qu'on n'était pas assez rapides à te répondre.
C'est contraire aux règles du Hub, que je te suggère de lire.

Quant-à "te faire gronder", il suffit de respecter ces règles et cela n'arrivera plus.

Dan
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.