htaccess et zone membre

Eléphanteau du PHP | 39 Messages

06 août 2005, 12:42

EDIT: j'ai changé d'avis, j'abandonne pas...
Modifié en dernier par wadzar le 06 août 2005, 12:59, modifié 1 fois.

Eléphanteau du PHP | 39 Messages

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:
Modifié en dernier par wadzar le 06 août 2005, 13:07, modifié 1 fois.

Eléphanteau du PHP | 39 Messages

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?
Modifié en dernier par wadzar le 06 août 2005, 13:20, modifié 1 fois.

Eléphant du PHP | 199 Messages

06 août 2005, 13:19

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

Eléphanteau du PHP | 39 Messages

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.

Eléphant du PHP | 147 Messages

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

Eléphanteau du PHP | 39 Messages

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!

Eléphanteau du PHP | 28 Messages

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

Invité
Invité n'ayant pas de compte PHPfrance

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 =)

Petit nouveau ! | 4 Messages

21 août 2005, 16:07

jette un oeil ici pour les htaccess et free:

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

Eléphant du PHP | 199 Messages

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