IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Empêcher l'accès direct à une page avec les sessions


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Empêcher l'accès direct à une page avec les sessions
    Bonjour,

    j'ai un problème, je veux que les utilisateurs de mon site ne puissent pas arriver directement sur une page de mon site.

    Genre : ils ne peuvent pas directement arrivé sur la page www.monsite.be/site/page.php

    En fait, une fois connecter, il peuvent prendre des Bonus en suivant un système de paiement Allopass. Une fois qu'il on enter le code valide, ils sont redirigés vers une page qui exécute une requête SQL et leur compte sont approvisionnés. Mais s'ils vont directement sur cette page, sans être passé par le formulaire de paiement, leur requête est encore exécutée, même avec le script que Allopass fournis.

    Je sais qu'il faut faire çà avec les SESSIONS mais je sais pas comment procéder.

    Donc, s'ils écrivent le lien dans la barre des URL directement, il peuvent exécuter ce script autant de fois qu'ils le veulent, c'est pourquoi je cherche de l'aide pour çà...

    Merci !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 229
    Points : 87
    Points
    87
    Par défaut
    Salut,

    tu dois demander à ta base données si l'utilisateur a rechargé son compte, si oui, tu remplis une variable session, sinon, tu rediriges vers la page de paiement.

    Tu n'as plus qu'à tester sur ta page en question si la variable session est bien présente et si elle contient ce que tu lui as affecté.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour,
    merci de votre réponse!

    Mais je sais pas comment je pourrais faire avec les sessions...

    Donner une variable de session dans la page où se trouve le forumulaire, genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    session_start();
    $_SESSION['connect'] = '50php12';
    ...
    ?>

    Ensuite, dans la page où il y a la requête SQL, il faudrait dire que :

    si la variable de session ['connect'] qui vaut 50php12 existe, alors, on exécute la requête, sinon, non.

    Merci quand même de votre aide!

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 48
    Points : 48
    Points
    48
    Par défaut
    Bah en fait c'est assez simple!Je m'explique:
    1. Il faut inserer dans la page de paiement allopass une variable de session du genre:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      <?php session_start(); 
      $_SESSION['allopass']=1;
      ?>
    2. Puis dans la page ou qui sert a effectuer la requếte sql, il sufiit de mettre:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      <?php session_start();
      if($_SESSION['allopass']==1)
      {
      // et la tu met tout le code de ta page dont ta requête sql
      }
      ?>

    J'éspére t'avoir aider!

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 452
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 452
    Points : 4 601
    Points
    4 601
    Par défaut
    pour enrichir le debat, je dirais meme ceci :
    Citation Envoyé par djisse
    Il faut inserer dans la page de paiement allopass une variable de session du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php session_start(); 
    $_SESSION['allopass']=1;
    ?>
    ok, mais s'il s'est deconnecte apres son rechargement, il doit pouvoir avoir acces a la page, puisque son compte a ete recharge

    dans tes pages a securiser, je te conseillerais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
    session_start();
    if(empty($_SESSION["allopass"]))//pour reprendre l'idee de djisse
    {
    //si la variable de session allopass est vide (donc n'a pas ete rensigne) cela signifie que le user n'est pas alle sur la page de rechargement allopass
     
    //on va faire une requete pour verifier si son compte n'est pas a sec
    mysql_connect();
    mysql_select_db();
    //etc...
     
    if(son_compte_est_vide)
    exit("Rechargez votre compte");
    }//fin if empty allopass
    else
    {//$_SESSION["allopass"] a ete renseigne
    //la page protegee
    //apres, il faut verifier le credit du compte etc...
    }
    ?>
    grossierement, je pense que ce serait pas mal
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. Empêcher l'accès direct à une page JSF
    Par TheJoe dans le forum JSF
    Réponses: 7
    Dernier message: 03/08/2012, 13h22
  2. [PHP-JS] interdire l'accès direct à une page php
    Par clem037 dans le forum Langage
    Réponses: 10
    Dernier message: 17/03/2008, 22h04
  3. Enlever accès direct aux pages avec struts
    Par Verboz dans le forum Struts 1
    Réponses: 7
    Dernier message: 09/05/2007, 15h29
  4. [MySQL] Afficher une page avec les données de la base de données... Assez compliqué
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 19/05/2006, 10h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo