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

EDI, CMS, Outils, Scripts et API PHP Discussion :

ESPACE MEMBRE PHP PDO


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut ESPACE MEMBRE PHP PDO
    Bonjour à tous,
    j'ai besoin svp , que vous m'aidiez à resoudre un probleme auquel je suis confronté.
    j'ai téléchargé un script permettant de créer un espace membre en me basant sur un tuto du même auteur.
    l'organisation de ce script est le suivant :
    creer un BD comprenant une table
    • un fichier dbconfig
    • fichier index
    • un fichier class.user
    • un fichier home


    j'ai reproduit à l'identique et suivi à la lettre toutes les instruction du tuto , mais malheureusement pour moi,
    j'arrive pas à depasser l'étape du login. c'est à dire à me connecter et à afficher la page accueil du membre.

    je vous envoie les différents scripts que j'ai utilisé

    • création de la BD
      Code sql : 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
      CREATE TABLE representation (
      user_id int(3) NOT NULL AUTO_INCREMENT,
      rep_ChefMission varchar(50) NOT NULL,
      rep_Pays varchar(50) NOT NULL,
      rep_Etat varchar(50) NOT NULL,
      rep_Ville varchar(50) NOT NULL,
      rep_District varchar(50),
      rep_Quartier varchar(50),
      rep_Adresse varchar(50) NOT NULL,
      rep_Tel int(12) NOT NULL,
      rep_Fax int(12),
      rep_Email varchar(25),
      user_name varchar(25) NOT NULL,
      user_password varchar(25) NOT NULL,
      rep_Latitude int(12),
      rep_Longitude int(12),
      rep_Photo int(12),
      PRIMARY KEY (`user_id`)
      )


    Fichier dbconfig
    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
    21
    22
    23
    24
    25
    26
    27
     
    <?php
    class Database
    {   
        private $host = "localhost";
        private $db_name = "dblogin";
        private $username = "root";
        private $password = "";
        public $conn; 
        public function dbConnection()
    	{
     
    	    $this->conn = null;    
            try
    		{
                $this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
    			$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);	
            }
    		catch(PDOException $exception)
    		{
                echo "Connection error: " . $exception->getMessage();
            }
     
            return $this->conn;
        }
    }
    ?>
    fichier class.user
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?php
     
    require_once('dbconfig.php');
     
    class USER
    {	
     
    	private $conn;
     
    	public function __construct()
    	{
    		$database = new Database();
    		$db = $database->dbConnection();
    		$this->conn = $db;
        }
     
    	public function runQuery($sql)
    	{
    		$stmt = $this->conn->prepare($sql);
    		return $stmt;
    	}k
     
    	public function register($uname,$umail,$upass)
    	{
    		try
    		{
    			$new_password = password_hash($upass, PASSWORD_DEFAULT);
     
    			$stmt = $this->conn->prepare("INSERT INTO users(user_name,user_email,user_pass) 
    		                                               VALUES(:uname, :umail, :upass)");
     
    			$stmt->bindparam(":uname", $uname);
    			$stmt->bindparam(":umail", $umail);
    			$stmt->bindparam(":upass", $new_password);										  
     
    			$stmt->execute();	
     
    			return $stmt;	
    		}
    		catch(PDOException $e)
    		{
    			echo $e->getMessage();
    		}				
    	}
     
     
    	public function doLogin($uname,$umail,$upass)
    	{
    		try
    		{
    			$stmt = $this->conn->prepare("SELECT user_id, user_name, user_email, user_pass FROM users WHERE user_name=:uname OR user_email=:umail ");
    			$stmt->execute(array(':uname'=>$uname, ':umail'=>$umail));
    			$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
    			if($stmt->rowCount() == 1)
    			{
    				if(password_verify($upass, $userRow['user_pass']))
    				{
    					$_SESSION['user_session'] = $userRow['user_id'];
    					return true;
    				}
    				else
    				{
    					return false;
    				}
    			}
    		}
    		catch(PDOException $e)
    		{
    			echo $e->getMessage();
    		}
    	}
     
    	public function is_loggedin()
    	{
    		if(isset($_SESSION['user_session']))
    		{
    			return true;
    		}
    	}
     
    	public function redirect($url)
    	{
    		header("Location: $url");
    	}
     
    	public function doLogout()
    	{
    		session_destroy();
    		unset($_SESSION['user_session']);
    		return true;
    	}
    }
    ?>
    fichier index
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    Index
     
    <?php
    session_start();
    require_once("class.user.php");
    $login = new USER();
     
    if($login->is_loggedin()!="")
    {
    	$login->redirect('home.php');
    }
     
    if(isset($_POST['btn-login']))
    {
    	$uname = strip_tags($_POST['txt_uname_email']);
    	$umail = strip_tags($_POST['txt_uname_email']);
    	$upass = strip_tags($_POST['txt_password']);
     
    	if($login->doLogin($uname,$umail,$upass))
    	{
    		$login->redirect('home.php');
    	}
    	else
    	{
    		$error = "Wrong Details !";
    	}	
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Coding Cage : Login</title>
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
    <link rel="stylesheet" href="style.css" type="text/css"  />
    </head>
    <body>
     
    <div class="signin-form">
     
    	<div class="container">
     
     
           <form class="form-signin" method="post" id="login-form">
     
            <h2 class="form-signin-heading">Log In to WebApp.</h2><hr />
     
            <div id="error">
            <?php
    			if(isset($error))
    			{
    				?>
                    <div class="alert alert-danger">
                       <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error; ?> !
                    </div>
                    <?php
    			}
    		?>
            </div>
     
            <div class="form-group">
            <input type="text" class="form-control" name="txt_uname_email" placeholder="Username or E mail ID" required />
            <span id="check-e"></span>
            </div>
     
            <div class="form-group">
            <input type="password" class="form-control" name="txt_password" placeholder="Your Password" />
            </div>
     
         	<hr />
     
            <div class="form-group">
                <button type="submit" name="btn-login" class="btn btn-default">
                    	<i class="glyphicon glyphicon-log-in"></i> &nbsp; SIGN IN
                </button>
            </div>  
          	<br />
                <label>Don't have account yet ! <a href="sign-up.php">Sign Up</a></label>
          </form>
     
        </div>
     
    </div>
     
    </body>
    </html>
    fichier home
    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
    include_once 'dbconfig.php';
    if(!$user->is_loggedin())
    {
     $user->redirect('index.php');
    }
    $user_id = $_SESSION['user_session'];
    $stmt = $DB_con->prepare("SELECT * FROM users WHERE user_id=:user_id");
    $stmt->execute(array(":user_id"=>$user_id));
    $userRow=$stmt->fetch(PDO::FETCH_ASSOC);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css"  />
    <link rel="stylesheet" href="style.css" type="text/css"  />
    <title>welcome - <?php print($userRow['user_email']); ?></title>
    </head>
    voici donc les codes dont je me suis servi pour essayer de créer mon espace membre. mais je bute sur un probleme, le fait qu'apres avoir créé la passe ide,tification, je n'arrive pas à aller sur la page home.
    merci pour tout

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 191
    Points : 263
    Points
    263
    Par défaut
    Bonjour,
    je n'arrive pas à aller sur la page home.
    "Ceci est un peu court jeune homme !"

    Sérieusement, est ce que tu peux nous en dire plus. Tu as une erreur qui s'affiche ? "Wrong Details" ? Une erreur 404 ?

    quel est le résultat que tu obtiens ?

  3. #3
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Salut Toumax.
    Et c'est quoi le tuto que tu essaies d'adapter ? tu as un lien ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Question simple : comprends-tu le code, ou pas ?

    • un peu ?
    • beaucoup ?
    • passionnément ?
    • ... ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2017
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 502
    Points : 770
    Points
    770
    Par défaut
    Bonsoir, quand on est débutant, on commence par le bas de l'échelle. Tu vas beau faire du copier-coller, tu seras toujours au milieu des bugs et d'erreurs.
    Commence par comprendre ce qui se passe.
    Par exemple, tu comprends le modèle MVC ? Tu comprends la PDO ?
    Commence par bien lire avant de faire des Ctrl+C et des Ctrl+V

    Cordialement.

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bonjour messieurs,
    je vous remercie pour votre réponse spontanées et vos critiques. pour commencer, je vous dirai que je suis une formation en licence pro analyste concepteur des systèmes d'informations.
    alors le code pour moi n'est pas nouveau , j'arrive à l’interpréter assez aisément, il est vrai aussi que je suis pas un expert averti en code.
    je dirai pour répondre a jreaux 62 que je comprends beaucoup ce code. c'est pourquoi j'ai fait du copier coller.
    je pense aussi qu'on peut pas faire du copier coller sans comprendre et interpréter le code source.

    voici le lien du script http://www.codingcage.com/2015/04/ph...ript-with.html

    PDO est API composé de classe qui gère la connexion entre un SGBDR et l'application frontale.
    MVC c'est un modelé de développement caractérisé pour les appli web.

    j'ai pu solutionner mon probleme, PHPMyAdmin m'a indiqué directement la source de l'erreur .
    j'essaie maintenant de réadapter ce code en y ajoutant des rôles pour chaque utilisateur.

    Merci beaucoup à tous de prendre de votre temps pour repondre . et désolé d'avoir un peu de temps à repondre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Spip] Intégrer un espace membre PHP
    Par rolls dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 26/03/2018, 10h32
  2. Fonction de connexion d'un espace membre (PHP objet).
    Par Fredodo77 dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2015, 22h16
  3. [MySQL] Création d'un espace membre PHP, PDO
    Par reverb94 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 18/05/2013, 19h07
  4. espace membre php
    Par roro84 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2012, 21h26
  5. Réponses: 8
    Dernier message: 26/03/2006, 15h09

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