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

PHP & Base de données Discussion :

Base de données exécution


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut Base de données exécution
    Bonjour, je suis entrain de réaliser une page pour un login avec une base de données
    dès que je compile mon projet voici mon erreur :

    Voici mon code : (login.php)
    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
    <?php
    	if(isset($_POST['btn'])) {
    		extract($_POST);
    		global $db;	
     
    		if(!empty($ident) && (!empty($pswd))){
    			$q = $db->prepare("SELECT * FROM membre WHERE pseudo = :pseudo");
    			$q->execute(['pseudo'=>$ident]);
    			$result = $q->fetch();
     
    			if($result == true) // vérifie que l'identifiant existe bien dans la BDD !!!
    			{
    				echo "le compte existe";
    				if(password_verify($pswd, $result['pswd'])) // vérifie si mdp est bien dans la BDD !!!
    				{
    					echo "mdp bon, connection en cours !";
    				}
    				else
    				{
    					echo "mdp incorrect !";
    				}
    			}
    			else
    			{
    				echo "le compte portant le pseudo". $ident . "n'existe pas !";
    			}
    		}
    		else
    		{
    			echo "Veuillez completer l'ensemble des champs";
    		}
    	}
    ?>
    database.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    	define('HOST', 'localhost');
    	define('DB_NAME', 'sncf');
    	define('USER', 'root');
    	define('PASS', '');
     
    	try{
    		$db = new PDO("mysql:host=" . HOST . ";DB_NAME" . DB_NAME, USER, PASS);
    		$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    		echo "connecté";
    	}catch(PDOExecption $e){
    		echo $e;
    	}
    ?>
    Avez vous des idées ?

    Merci de votre temps.
    Images attachées Images attachées  

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    d'où vient la variable $db dans le fichier login.php ?
    montrez nous le fichier qui est appelé dans le navigateur.

  3. #3
    Membre régulier
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut
    Le $db viens d'ici ligne 26
    index2.php ->Fichier opérateur
    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
    <!DOCTYPE>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title></title>
    			<link rel="stylesheet" href="includes/style.css">
    	</head>
    	<body>
    		<form method="post">
    			<div class="login-box">
    				<h1>Login</h1>
    				<div class="textbox">
    					<i class="fas fa-user"></i>
    					<input type="text" name="ident" id="ident" placeholder="Username" required>
    				</div>
    				<div class="textbox">
    					<i class="fas fa-lock"></i>
    					<input type="password" name="pswd" id="pswd" placeholder="Password" required>
    				</div>
    				<input type="submit" name="btn" id="btn" class="btn" value="Sign in">
    			</div>
    		</form>
     
    		<?php 
    			include 'includes/login.php'; 
    		  	global $db;	
    		?>
    	</body>
    </html>

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

    1- Sauf erreur, tu as oublié d'inclure le fichier database.php au début de ton script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require(__DIR__.'/includes/database.php');
    -> chemin à adapter à ton arborescence

    D'autre part, global $db; n'a d'intérêt QUE dans une fonction.


    2- A EVITER !
    N'utilisez pas extract() sur des données non sûres comme les entrées utilisateur (ex. $_GET, $_FILES).
    Tu connais le nom des variables, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ident = (isset($_POST['ident']))? $_POST['ident'] : '';
    $pswd = (isset($_POST['pswd']))? $_POST['pswd'] : '';
    Dernière modification par Invité ; 04/11/2019 à 14h15.

  5. #5
    Membre régulier
    Femme Profil pro
    Consultant communication & réseaux
    Inscrit en
    Novembre 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant communication & réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2019
    Messages : 9
    Par défaut
    je modifie donc la ligne 4 par vos 2 lignes ?
    et database.php je l'inclus dans quel fichier ?

    et si j'enlève la ligne 2 de login.php j'ai un message d'erreur.

  6. #6
    Invité
    Invité(e)
    Par défaut
    1- Oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    require(__DIR__.'/includes/database.php'); // chemin à adapter à ton arborescence
    // -------
    if(isset($_POST['btn'])) 
    {
    	$ident = (isset($_POST['ident']))? $_POST['ident'] : '';
    	$pswd = (isset($_POST['pswd']))? $_POST['pswd'] : '';
     
    	if(!empty($ident) && (!empty($pswd))){
    ...
    2- database.php permet de définir la variable $db.
    Il faut donc l'inclure au début de chaque script qui nécessite une connexion à la base de données.

Discussions similaires

  1. Problème base de donnée
    Par dispa dans le forum Windows Forms
    Réponses: 1
    Dernier message: 22/01/2008, 22h13
  2. problème base de donnée access
    Par Phiss dans le forum ASP
    Réponses: 6
    Dernier message: 21/11/2007, 21h15
  3. Problème base de données Microsoft Jet
    Par lilo415 dans le forum Access
    Réponses: 2
    Dernier message: 10/10/2007, 23h23
  4. Problème Base de donnée
    Par quedudev dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/09/2007, 12h44
  5. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59

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