Page 1 sur 1

Session PHP

Posté : 24 déc. 2012, 12:24
par jeanmoul
Bonjour,

Je suis ce qu'on peut appeler en débutant en php et je cherche à résoudre ce que ej considère comme une énigme...
J'ai créé un formulaire d'enregistrement qui remplit une BDD nommée ed_users
Suite à celà j'ai un formulaire d'identification qui vérifie si l'utilisateur fait bien partie de cette BDD ed_users
Enfin, j'ai créé une page 'blog' que j'aimerais rendre accessible qu'aux utilisateurs identifiés et là... c'est le drame ça ne marche pas c'est à dire que quand je veux accéder à la page 'blog' même sans avoir rentré mes identifiants, je ne suis pas rejeté... et je ne comprends pas pourquoi.

Voici mes codes :

la page de login

Code : Tout sélectionner

<?php include('connection.php'); if(isset($_POST) && !empty($_POST['username']) && !empty($_POST['password'])) { extract($_POST); // on recupère le password de la table qui correspond au login du visiteur $sql = "SELECT password FROM ed_users WHERE username='".$username."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); if($data['password'] != $password) { include('failure.html'); exit; } else { session_start(); $_SESSION['login'] = $username; include('sucess.html'); } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('login.html'); exit; } ?>
la page de vérif (checksession)

Code : Tout sélectionner

<? session_start(); if(!isset($_SESSION['login'])) { echo 'Vous n\'êtes pas autorise à acceder à cette zone'; include('failure.html'); exit; } ?>
la page blog que je veux rendre accessible aux utilisateurs identifiés

Code : Tout sélectionner

<?php include('checksession.php'); ?> <!doctype html> <html> <head> <title>....
Merci d'avance pour votre aide :-)

Re: Session PHP

Posté : 24 déc. 2012, 12:40
par moogli
salut,


as tu un message d'erreur ?

pour info les tag php, par défaut, cc'est <?php, ceci peux être une source de soucis si les tags courts (<? ?>) ne sont pas pris en compte. dans ce cas ton code est envoyé tel quel au navigateur et la plus part du temps pas affiché car pris pour une balise html inconnue.
Regarde le code source HTML de la page généré pour voir s'il est en haut de la page.
Tu peux mettre le exit en commentaire afind e voir ce qu'il se passe dans ce cas la

sinon coté code, il est préférable d'utilise l'extension mysli plutôt que mysql celle ci étant déprécié et vouée a disparaître.
Pour toi les plus grosses différence c'est d'ajouter un i dans les fonctions et le "dblink" en second paramètre.

Oublie le extract c'est une source d'ennui, tu as déja les infos dont tu a besoin dans le tableau $_POST tu peux l'utiliser directement (et tu ne risque pas de problème d'écrasement variable par exemple).

Dernière chose, l'aspect sécurité, ton code est ouvert aux failles "SQL" (google + injection sql ;) ).
Pour corriger cette faille utilise
mysql_real_escape_string
(ou
mysqli_real_escape_string
;) ) sur toutes les valeurs issues d'une formulaire, url ou cookie (enfin tous ce qui vient de l'utilisateur en fait).

sans plus d'info je ne vois pas

@+

Re: Session PHP

Posté : 24 déc. 2012, 13:21
par jeanmoul
non je n'ai pas de message d'erreur justement. quand je veux acceder à ma page, j'y accède comme si de rien était alors que normalement il devrait me rejeter...

J'ai changé les quelques éléments dont tu as parlé mais ça n'a rien changé... :-(

Re: Session PHP

Posté : 24 déc. 2012, 14:13
par moogli
Si tu ajoute un var_dump($_SESSION); au début du fichier ça affiche quoi ?
C'est bien une page qui finit par .php ?


@+