htaccess et zone membre

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : htaccess et zone membre

par Manio 54 » 21 août 2005, 16:11

tiens je suis free

Code : Tout sélectionner

PerlSetVar AuthFile /admin/.htpasswd AuthName "Acces Restreint" AuthType Basic require valid-user
Et ne crypte pas ton mot de passe dans le .htpasswd

par aphp » 21 août 2005, 16:07

jette un oeil ici pour les htaccess et free:

http://www.phpfrance.com/forums/voir_re ... .php#53212

par Invité » 19 août 2005, 14:18

Mon htaccess est fait de:

Code : Tout sélectionner

AuthName "Page d'administration protégée" AuthType Basic AuthUserFile "/var/www/free.fr/7/0/battleforconquest/admin/.htpasswd " Require valid-user
Bonjour, j'ai fait une recherche mais ne trouve pas de solution. Je débute complétemen en php et j'ai juste quelques bases en html.

Je souhaite protéger mon dossier "gestion" à partir dequel j'utilise mon script de news (qui est fontionnel mais pas vérrouillé encore). Je suis hébergé chez Free, et j'ai lu la F.A.Q. php qui explique comment faire, mais ça ne marche pas. Je ne sais pas ce que je fais de travers.

J'ai essayé plusieurs fois en vain.

Le chemin indiqué est :

Code : Tout sélectionner

$chemin = $_SERVER["DOCUMENT_ROOT"]."/monlogin/gestion/";
Mais ensuite je ne suis pas sûr de savoir comment le mettre dans le .htaccess, j'ai essayé comme ça :

Code : Tout sélectionner

AuthName "Gestion protégée" AuthType Basic $chemin = $_SERVER["DOCUMENT_ROOT"]."/monlogin/gestion/.htaccess"; Require valid-user

Code : Tout sélectionner

AuthName "Gestion protégée" AuthType Basic AuthUserFile "$chemin = $_SERVER["DOCUMENT_ROOT"]."/monlogin/gestion/.htaccess"; Require valid-user
Pouvez-vous m'aider ? Merci =)

par Lpu8er » 06 août 2005, 21:17

Durée de vie d'une variable de session:

Une session reste ouverte, tant que l'utilisateur ne ferme pas son navigateur.
Une session dure un certain temps (j'ignore la durée exacte), que l'on peut changer dans un dossier racine.
Une session reste ouverte tant que l'on utilise pas session_destroy(); .

Voilààààà ^^

Et on peut utiliser une infinité de variables $_SESSION['truc'] et ces variables ont les mêmes conditions que la session elle-même... Ah oui: il existe pour chaque session un numéro id unique que l'n peut obtenir avec une variable spéciale (je ne sais plus laquelle ^^)...


Lpu8er

par wadzar » 06 août 2005, 13:37

Et cette variable change a chaque loggin ou a chaque utilisatuer? sinon on peut la retenir et l'afficher directement pour pas avoir besoin de se logger... enfin c'est sur comme truc ou pas?


J'essaye tout de suite!

par NoNos » 06 août 2005, 13:32

A premièree vu tu as compris, les session servent a garder une variable en memoire tous au long de la navigation d'un utilisateur. Elle est detruite seulement une foi que l'utilisateur ferme sont navigateur

par wadzar » 06 août 2005, 13:22

Eh nan l'administration je la fait par sql.free.fr directement c'est aussi simple. C'est pour les membres, que je voudrait un accés limité sur du php.

par Manio 54 » 06 août 2005, 13:19

pour un site comme toi moi j'utiliserais les sessions et le htaccesspr l'admin

par wadzar » 06 août 2005, 13:07

Donc si j'ai bien compris les sessions (fort peu probable...):

Dans mon index.html je met le formulaire d'identification:

Code : Tout sélectionner

Formulaire d'identification (login.htm) <form action="login.php" method='post'> <table align="center" border="0"> <tr> <td>Login :</td> <td><input type="text" name="login" maxlength="250"></td> </tr> <tr> <td>Password</td> <td><input type="password"name="pass" maxlength="10"></td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="log in"></td> </tr> </table> </form>
ensuite, je met login.php dans le même repertoire et j'y met le code de traitement du login/mdp:
Analyse du formulaire (login.php) 
 
<?
// pensez a ouvrir une connexion vers mysql ici
// voir les exercices dans le menu de droite pour cela.

if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
  // on recupère le password de la table qui correspond au login du visiteur
  $sql = "select pwd from tbl_user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  $data = mysql_fetch_assoc($req);

  if($data['pwd'] != $pass) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('login.htm'); // On inclus le formulaire d'identification
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login;
    
    echo 'Vous etes bien logué';
    // ici vous pouvez afficher un lien pour renvoyer
    // vers la page d'accueil de votre espace membres 
  }    
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('login.htm'); // On inclut le formulaire d'identification
   exit;
}


?>
 
En mettant le code d'identification (ça je sais faire).

Et enfin sur TOUTE les pages de mon espace membre, je met ce code au debut:
<?
session_start();

/* 
si la variable de session login n'existe pas cela siginifie que le visiteur 
n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
acceder à l'espace membres
*/
if(!isset($_SESSION['login'])) {
  echo 'Vous n\'êtes pas autoriser à acceder à cette zone';
  include('login.htm');
  exit;
}
?>  

C'est ça? Et verif là, je le met dans les balises <body> ou <head>?


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


Edit: et pour le formulaire d'inscription, c'est des cases demandant le login, le mdp, l'adresse mail... et avec des INSERT INTO on met ça dans la base de donnée je pense, mais alors comment on fait -c'est nécessaire dans tout les sites de jeux-, une validation par mail?

par wadzar » 06 août 2005, 12:58

Ah ouai, ok...

Le htaccess ça autorise l'accés à UN dossier, mais les pages dedans "savent" pas à quel membre elles ont a faire...


Edit: ouai! au moins j'aurai réussi le htaccess... :roll:

par wadzar » 06 août 2005, 12:42

EDIT: j'ai changé d'avis, j'abandonne pas...

par NoNos » 06 août 2005, 12:12

http://support.free.fr/web/pperso/restr ... acces.html
Va voir sa ils t'explique comment faire un htacces chez free, il faut pas crypter les mots de passe par exemple.

Le mieu est de les mettre dans un dossiei appelé secret par exemple et de restreindre l'acces avec un htacces deny from all

par wadzar » 06 août 2005, 12:07

mon site est: [url]htt://battleforconquest.free.fr[/url], (pas d'index, juste un explorateur), et c'est dans le dossier admin qu'il y a tout les fichiers.

Mon htaccess est fait de:

Code : Tout sélectionner

AuthName "Page d'administration protégée" AuthType Basic AuthUserFile "/var/www/free.fr/7/0/battleforconquest/admin/.htpasswd " Require valid-user

Edit: eh ouai ce lien il est pas mal pour les sessions===>marque-page: merci!

par NoNos » 06 août 2005, 12:03

on peut voir ton htaccess?

Va voir ce lien pour ton espace membre : http://phpdebutant.org/article47.php

par Lpu8er » 06 août 2005, 12:01

Bien.

Htaccess, cela joue avec plusieurs fichiers, et uniquement à la racine du répertoire serveur.
En gros, le visiteur, ou plutôt son système, n'a pas grand chose à faire, en contrepartie, la boîte d'identification est standard.

Autre chose: si tu cryptes les mots de passe par cette méthode, par ex en md5, (recommandée) tu devras faire tout un bardaf pour rentrer les codes corrects.

Avec une table, cela se résume à quelques Requêtes, fouiller dans la BDD. Jusque là, le système change, mais c'est assez équivalent.
Mais là, utilisation des sessions. Le navigateur et le système de l'utilisateur sont utilisés (en quelque sorte).

EDIT: BDD:
Une base de données contient une ou plusieurs tables.
Chaque table a un certain nombre de champs, et un certain nombre d'entrée.
On peut shématiser une table par un tableau à deux entrées.
En gros, ici, on a juste à créer une seule table, avec , par exemple, comme champs:
id, login, password, age (etc...)
Puis chaque entrée correspondrait à une personne, un utilisateur.
Pour une inscription, il suffit de faire un INSERT INTO.
Pour une modification, un UPDATE.
Pour une suppression un DELETE FROM.