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 :

Fatal error call to undefined function prepare


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut Fatal error call to undefined function prepare
    Bonjour,

    je fais actuellement un site pour un projet au lycée.
    Mon site est découpé en plusieurs parties, je rencontre des difficultés pour 2 parties : connexion et inscription.

    Les différentes erreurs pour la partie inscription sont corrigés (il me semble) mais pas pour la parti connexion. Il y a :
    "fatal error call to undefined function prepare".

    J'ai pourtant bien identifié la base de données.
    Je vous remercie d'avance pour ce qui vont prendre le temps de m'aidé ou de me lire ! (possibilité d'envoie du code, etc)

  2. #2
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    peux-tu poster le code de l'erreur et ceux de l'inscription qui pose problème, sans oublier celui de connexion à la Base De Données?
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut les codes
    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
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    <?php
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpassword = 'usbw';
    $dbname = 'casqueconnecte' ;
     
    $link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
     
    if (mysqli_connect_errno()) {
     printf("Échec de la connexion : %s\n", mysqli_connect_error());
     exit();
    }?>
     
     
     <?php
    if ($id=0) erreur(ERR_IS_CO);
    ?>
     
     
    <?php
     
    if (empty($_POST['pseudo'])) 
    {
    	echo "<form method=\"post\" action=\"connexion.php\">
    		<fieldset>
    			<legend>Inscription </legend>
    			<label for=\"pseudo\"> Pseudo :</label>  <input name=\"pseudo\" type=\"text\" id=\"pseudo\" />  <br />
    			<label for=\"password\"> Mot de Passe :</label><input type=\"password\" name=\"password\" id=\"password\" /><br />
    			<label for=\"confirm\"> Confirmation :</label><input type=\"password\" name=\"confirm\" id=\"confirm\" /> <br />
    			<label for=\"email\"> Votre adresse Mail :</label><input type=\"text\" name=\"email\" id=\"email\" /><br />
    			<p> <input type=\"submit\"   name=\"Inscription\"    value=Inscription  /> 	</p>
    		</fieldset> 
    	</form>";
     
     
    }
    ?> 
     
     
     
     
    <?php 
     
    $bdd = 'casqueconnecte' ;
    $bdd = new PDO("mysql:host=localhost;dbname=casqueconnecte;","root","usbw");
    $pseudo = 'pseudo';
    $mdp = 'mdp';
    $email = 'email'; 
     
     
    $req = $bdd -> prepare('INSERT INTO membre(id, pseudo, mdp, email,) VALUES(:pseudo, :mdp, :email, CURDATE())');
    $req->execute(array(  
    	'pseudo' => $pseudo,
    		'mdp' => $mdp,
    		'email' => $email
    	));
     
    ?> 
     
                                                                                  ------------------------------------------------------------------------------------
    if (!isset($_POST['pseudo'])) 
    {
     
    	echo "<form method=\"post\" action=\"connexion.php\">
    	<fieldset>
    	<legend>Connexion</legend>
    	<p>
    	<label for=\"pseudo\"> Pseudo :          </label> <input type=\"text\"     name=\"pseudo\"  id=\"pseudo\" /><br />
    	<label for=\"password\"> Mot de Passe :  </label> <input type=\"password\" name=\"mdp\"     id=\"mdp\" /> <br />
    	</p>
    	</fieldset>
    	<p><input type=\"submit\" value=Connexion /></p></form>
     
    	</div>
    ";
     
    }
     
    else
    {
    	echo $_POST['pseudo'];
    }
     
     
     
     
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpassword = 'usbw';
    $dbname = 'casqueconnecte' ;
     
    $link = mysqli_connect($dbhost, $dbuser, $dbpassword, $dbname);
     
    if (mysqli_connect_errno()) {
     printf("Échec de la connexion : %s\n", mysqli_connect_error());
     exit();
    }
     
     
     
     
    $bdd = new PDO("mysql:host=localhost;dbname=casqueconnecte;","root","usbw");
    $bdd = 'casqueconnecte' ;
    $pseudo = 'pseudo';
    $mdp = 'mdp';
     
     
    mysqli_select_db($link, 'casqueconnecte'); 
     
     
     
     
    $req = $bdd -> prepare('SELECT id FROM membre WHERE pseudo = :pseudo AND password = :mdp');
    $req->execute(array(
        'pseudo' => $pseudo,
        'pass' => $mdp));
     
    $resultat = $req->fetch();
     
    if (!$resultat)
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
     
    else
    {
        session_start();
        $_SESSION['id'] = $resultat['id'];
        $_SESSION['pseudo'] = $pseudo;
        echo"Vous êtes connecté !";
    }
    ?>
    Ce sont les codes pour la partie inscription et la partie connexion.

  4. #4
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    En regardant ton code, je te pose cette question: y'a t-il un autre champ dans la table membre (notamment de type datetime ou timestamp)
    en dehors de pseudo, mdp, email, qui prend comme valeur la date encours lors de l'insertion?
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    Non dans ma table il n'y a que 'id' ; 'pseudo' ; 'mdp' ; 'email'

  6. #6
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Il est mauvais ton code très mauvais je dirais. Tu utilise 02 extensions de connexion différentes! mysqli et PDO au même moment de tord à travers. Commence par mettre ça au clair.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  7. #7
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Je le regarderais à tête reposante et essayerais de mieux l'organiser.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    Merci, tu penses que tu vas le regardé quand ? Je dois m'en servir demain

  9. #9
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Cet après-midi.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    Merci beaucoup

  11. #11
    Invité
    Invité(e)
    Par défaut
    @Nazoïde

    Il est lycéen !
    Ce n'est pas à nous de faire ses devoirs de classe ! (même "à tête reposante" ! )


    Totze :

    • CHOISIS entre mysqli et PDO : c'est l'un ou l'autre !
    • Et corrige toi-même ton code.

  12. #12
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    merci pour l'info @jreaux62
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    ah du coup pas d'aide pour moi ?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Ben si.

    "aider" ne veut pas dire "faire à ta place".
    "Aide-toi, le forum t'aidera."
    On t'a déjà dit quoi faire :

    • CHOISIS entre mysqli et PDO (système de connexion, syntaxe,...)
    • corrige ton code en conséquence, et avec LOGIQUE

    On verra après.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    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
     <body>
     
    <?php
     
    if (!isset($_POST['pseudo'])) 
    {
     
    	echo "<form method=\"post\" action=\"connexion.php\">
    	<fieldset>
    	<legend>Connexion</legend>
    	<p>
    	<label for=\"pseudo\"> Pseudo :          </label> <input type=\"text\"     name=\"pseudo\"  id=\"pseudo\" /><br />
    	<label for=\"password\"> Mot de Passe :  </label> <input type=\"password\" name=\"mdp\"     id=\"mdp\" /> <br />
    	</p>
    	</fieldset>
    	<p><input type=\"submit\" value=Connexion /></p></form>
    	
    	</div>
    ";
     
    }
     
    else
    {
    	echo $_POST['pseudo'];
    }
     
     
    $bdd = new PDO("mysql:host=localhost;dbname=casqueconnecte;","root","usbw");
    $bdd = 'casqueconnecte' ;
    $pseudo = 'pseudo';
    $mdp = 'mdp';
     
     
    mysqli_select_db($link, 'casqueconnecte'); 
     
     
     
     
    $req = $bdd -> prepare('SELECT id FROM membre WHERE pseudo = :pseudo AND password = :mdp');
    $req->execute(array(
        'pseudo' => $pseudo,
        'pass' => $mdp));
     
    $resultat = $req->fetch();
     
    if (!$resultat)
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
     
    else
    {
        session_start();
        $_SESSION['id'] = $resultat['id'];
        $_SESSION['pseudo'] = $pseudo;
        echo"Vous êtes connecté !";
    }
    ?>
     
    	</body>

    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
     
    <body>
     
    <?php
     
    if (empty($_POST['pseudo'])) 
    {
    	echo "<form method=\"post\" action=\"connexion.php\">
    		<fieldset>
    			<legend>Inscription </legend>
    			<label for=\"pseudo\"> Pseudo :</label>  <input name=\"pseudo\" type=\"text\" id=\"pseudo\" />  <br />
    			<label for=\"password\"> Mot de Passe :</label><input type=\"password\" name=\"password\" id=\"password\" /><br />
    			<label for=\"confirm\"> Confirmation :</label><input type=\"password\" name=\"confirm\" id=\"confirm\" /> <br />
    			<label for=\"email\"> Votre adresse Mail :</label><input type=\"text\" name=\"email\" id=\"email\" /><br />
    			<p> <input type=\"submit\"   name=\"Inscription\"    value=Inscription  /> 	</p>
    		</fieldset> 
    	</form>";
     
     
    }
     
    $bdd = 'casqueconnecte' ;
    $bdd = new PDO("mysql:host=localhost;dbname=casqueconnecte;","root","usbw");
    $pseudo = 'pseudo';
    $mdp = 'mdp';
    $email = 'email'; 
     
     
    $req = $bdd -> prepare('INSERT INTO membre(id, pseudo, mdp, email,) VALUES(:pseudo, :mdp, :email, CURDATE())');
    $req->execute(array(  
    	'pseudo' => $pseudo,
    		'mdp' => $mdp,
    		'email' => $email
    	));
     
    ?> 
     
    </body>
    c'est bon comme ça ?

  16. #16
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Toujours dans les panneaux avec les deux extensions. c'est soit l'un ou l'autre.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    erreur j'ai enlevé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mysqli_select_db($link, 'casqueconnecte');

  18. #18
    Invité
    Invité(e)
    Par défaut
    et........ ?

    Info : on ne peut rien tester à ta place... ni voir ton écran, ni lire dans ta tête...
    Si tu ne nous dit pas ce qui se passe, on ne peut pas le deviner.



    [EDIT]

    1/ session_start(); (tout comme les header(...)) se met EN TOUT DEBUT de script, et AVANT toutes balises HTML.
    Donc, là, ça ne va pas.

    2/ Généralement, on met le code de connexion dans un fichier externe (connexion.php, par exemple), qu'on appelle ensuite en début de script par include (ou require) :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php session_start();
    // connexion
    require ('connexion.php');
    //.....

  19. #19
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juin 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juin 2017
    Messages : 12
    Points : 0
    Points
    0
    Par défaut
    ça ne se connecte pas à la bdd, il n'y a pas de message d'erreur le code écrit littéralement

  20. #20
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Quelle erreur?
    Sois plus créatif.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2006, 23h13
  2. [XML] [XSLT] Fatal error: Call to undefined function xslt_create()
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 05/07/2006, 12h34
  3. Réponses: 3
    Dernier message: 13/05/2006, 15h48
  4. Réponses: 3
    Dernier message: 21/03/2006, 14h21
  5. Réponses: 11
    Dernier message: 08/12/2005, 16h54

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