Problème phpmyyadmin
Résolu
Jwandle
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
En faite, J'ai un problème. Voici mon code d'inscription, déconnexion, index.php ainsi que membre.php.
Membre.php:
inscription.php
index.php:
deconnexion.php:
Ducoup, Quand je vais sur inscription .php, ca m'affiche tout correctement mais quand je fini le formulaire bien, cela me met:
Je sais que c'est parce que je n'ai pas de base de donnée mysql, mais je n'arrive pas à mettre PhpMyAdmin dans laragon.
Sauriez vous comment l'ajouter PhpMyAmin dans laragon ou créer une base de données mysql/mysqli/pdo?
Merci pour toute réponse!
En faite, J'ai un problème. Voici mon code d'inscription, déconnexion, index.php ainsi que membre.php.
Membre.php:
<?php session_start(); if (!isset($_SESSION['login'])) { header ('Location: index.php'); exit(); } ?> <html> <head> <title>Espace membre</title> </head> <body> Bienvenue <?php echo htmlentities(trim($_SESSION['login'])); ?> !<br /> <a href="deconnexion.php">Déconnexion</a> </body> </html>
inscription.php
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['pass'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['login'] = $_POST['login']; header('Location: membre.php'); exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>Inscription</title> </head> <body> Inscription à l'espace membre :<br /> <form action="inscription.php" method="post"> Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br /> <input type="submit" name="inscription" value="Inscription"> </form> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </body> </html>
index.php:
<?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base); // on teste si une entrée de la base contient ce couple login / pass $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.mysql_escape_string(md5($_POST['pass'])).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); mysql_free_result($req); mysql_close(); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; header('Location: membre.php'); exit(); } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; } // sinon, alors la, il y a un gros problème :) else { $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>Accueil</title> </head> <body> Connexion à l'espace membre :<br /> <form action="index.php" method="post"> Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br /> Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br /> <input type="submit" name="connexion" value="Connexion"> </form> <a href="inscription.php">Vous inscrire</a> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
deconnexion.php:
<?php session_start(); session_unset(); session_destroy(); header('Location: index.php'); exit(); ?>
Ducoup, Quand je vais sur inscription .php, ca m'affiche tout correctement mais quand je fini le formulaire bien, cela me met:
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in C:\laragon\www\inscription.php:11 Stack trace: #0 {main} thrown in C:\laragon\www\inscription.php on line 11
Je sais que c'est parce que je n'ai pas de base de donnée mysql, mais je n'arrive pas à mettre PhpMyAdmin dans laragon.
Sauriez vous comment l'ajouter PhpMyAmin dans laragon ou créer une base de données mysql/mysqli/pdo?
Merci pour toute réponse!
8 réponses
Bonjour,
Déjà... non... ce n'est pas un souci avec phpmyadmin.
Phpmyadmin est "juste" un "logiciel" qui te permet d'administrer tes bases de données.
Base de données... de type : mysql.
Une fois cette parenthèse terminée... ton souci vient donc de ton code php.
En effet, pour établir la connexion à ta bdd et faire tes requêtes... tu as utilisé l'ancienne extension mysql_*
Sauf que désormais elle est obsolète !
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Tu dois modifier ton code en utilisant au choix mysqli ou PDO (que je préfère).
par exemple, en PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Je note également que tu as utilisé le MD5 pour "crypter" ( hasher...) tes mots de passe ...... ça ne se fait plus !
A la place, tourne toi vers la fonction password_hash et password_verify
Déjà... non... ce n'est pas un souci avec phpmyadmin.
Phpmyadmin est "juste" un "logiciel" qui te permet d'administrer tes bases de données.
Base de données... de type : mysql.
Une fois cette parenthèse terminée... ton souci vient donc de ton code php.
En effet, pour établir la connexion à ta bdd et faire tes requêtes... tu as utilisé l'ancienne extension mysql_*
Sauf que désormais elle est obsolète !
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Tu dois modifier ton code en utilisant au choix mysqli ou PDO (que je préfère).
par exemple, en PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
.
Je note également que tu as utilisé le MD5 pour "crypter" ( hasher...) tes mots de passe ...... ça ne se fait plus !
A la place, tourne toi vers la fonction password_hash et password_verify
Salut!voila, j'ai modifier mon code mais mon code erreur est le suivant:
Erreur : SQLSTATE[HY000] [1049] Unknown database 'contact'
N° : 1049Veuillez saisir tous les champs
(la 1049 est normale)
mon code html
code php
J'ai bien créer une Pdo, mais le message d'erreur dit que base de données non reconnu, donc ou est stocker la base de donnée...
Le message d'erreur est:
Notice: Undefined variable: db in C:\laragon\www\Test\code.php on line 35
Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\laragon\www\Test\code.php:35 Stack trace: #0 {main} thrown in C:\laragon\www\Test\code.php on line 35
la 1049 est normale...
Merci!
--
Erreur : SQLSTATE[HY000] [1049] Unknown database 'contact'
N° : 1049Veuillez saisir tous les champs
(la 1049 est normale)
mon code html
<form action="code.php" method="POST" class="reg-form input-blocks clearfix" id="reg-form"> <div class="clearfix"> <div class="grid_4 alpha mobile-nomargin"> <!-- First Name --> <div class="field clearfix"> <label for="">Nom </label> <input type="text" name="nom" id="nom"> <span class="error-message"></span> </div> <!-- First Name / End --> <!-- Last Name --> <div class="field clearfix"> <label for="">Prenom </label> <input type="text" name="prenom" id="prenom"> <span class="error-message"></span> </div> <!-- Last Name / End --> <!-- Address --> <div class="field clearfix"> <label for="">Adresse </label> <input type="text" name="adresse" id="adresse" placeholder=""> <span class="error-message"></span> </div> <!-- Address / End --> <!-- City --> <div class="field clearfix"> <label for="">Ville </label> <input type="text" name="city" id="city" placeholder=""> <span class="error-message"></span> </div> <!-- City / End --> <!-- Email --> <div class="field clearfix"> <label for="">Email </label> <input type="email" name="email" id="email"> <span class="error-message"></span> </div> <!-- Email / End --> <!-- Telephone 1 --> <div class="field clearfix"> <label for="">Telephone 1 </label> <input type="text" name="tel1" id="tel1" placeholder=""> <span class="error-message"></span> </div> <!-- Telephone 1 / End --> <!-- Telephone 2 --> <div class="field clearfix"> <label for="">Telephone 2 </label> <input type="text" name="tel2" id="tel2" placeholder=""> <span class="error-message"></span> </div> <!-- Telephone 2 / End --> <!-- Password --> <div class="field clearfix"> <label for="">Mots de Passe </label> <input type="password" name="password" id="password"> <span class="error-message"></span> </div> <!-- Password / End --> <!-- Re-Password --> <div class="field clearfix"> <label for="">Retapez votre Mot de Passe </label> <input type="password" name="repassword" id="repassword"> <span class="error-message"></span> </div> <!-- Re-Password / End --> <!-- -child --> <div class="field clearfix"> <label for="">Nombre d'enfant(s) </label> <input type="text" name="child" id="child"> <span class="error-message"></span> </div> <!-- -child / End --> <!-- -age --> <div class="field clearfix"> <label for="">Age du ou des Enfants </label> <input type="text" name="age" id="age" placeholder="Exemple : 10 ans, 4 ans, 6mois"> <span class="error-message"></span> </div> <!-- -age / End --> <div class="field clearfix"> <b><label for="">Information Suplemantaire *: </label></b> <br/><br/> <textarea name="info" id="info" style="width:200px;height:120px;" placeholder="Vos information"></textarea> <span class="error-message"></span> </div> </div> </div> <input type="submit" value="S'inscrire!" class="button__large" name="submit" id="submit"> </form>
code php
<?php try{ $db = new PDO('mysql:host=localhost;dbname=contact', 'root', ''); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br />'; echo 'N° : '.$e->getCode(); } $nom = $_POST['nom']; $prenom = $_POST['prenom']; $adresse = $_POST['adresse']; $city = $_POST['city']; $email = $_POST['email']; $tel1 = $_POST['tel1']; $tel2 = $_POST['tel2']; $password = $_POST['password']; $repassword= $_POST['repassword']; $child = $_POST['child']; $age = $_POST['age']; $info = $_POST['info']; if(isset($_POST['nom'],$_POST['prenom'],$_POST['adresse'],$_POST['city'],$_POST['email'],$_POST['tel1'],$_POST['tel2'],$_POST['password'],$_POST['repassword'],$_POST['child'],$_POST['age'],$_POST['info'])) { if($nom&&$prenom&&$adresse&&$city&&$email&&$tel1&&$password&&$repassword&&$child&&$age){ if($password==$repassword){ $query = $db->prepare( 'INSERT INTO users ( id,nom,prenom,adresse,ville,email,telephone1,telephone2,password,child,age,info ) VALUES (NULL, :nom, :prenom, :adresse, :city, :email, :tel1, :tel2, :password, :child, :info ' ); $query->bindValue('nom', $_POST['nom'], PDO::PARAM_STR); $query->bindValue('prenom', $_POST['prenom'], PDO::PARAM_STR); $query->bindValue('adresse', $_POST['adresse'], PDO::PARAM_STR); $query->bindValue('city', $_POST['city'], PDO::PARAM_STR); $query->bindValue('email', $_POST['email'], PDO::PARAM_STR); $query->bindValue('tel1', $_POST['tel1'], PDO::PARAM_STR); $query->bindValue('tel2', $_POST['tel2'], PDO::PARAM_STR); $query->bindValue('password', $_POST['password'], PDO::PARAM_STR); $query->bindValue('child', $_POST['child'], PDO::PARAM_STR); $query->bindValue('info', $_POST['info'], PDO::PARAM_STR); $query->execute(); }else echo"les 2 password doivent etre identique"; } else echo"Veuillez saisir tous les champs"; } ?>
J'ai bien créer une Pdo, mais le message d'erreur dit que base de données non reconnu, donc ou est stocker la base de donnée...
Le message d'erreur est:
Notice: Undefined variable: db in C:\laragon\www\Test\code.php on line 35
Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\laragon\www\Test\code.php:35 Stack trace: #0 {main} thrown in C:\laragon\www\Test\code.php on line 35
la 1049 est normale...
Merci!
--
Déjà.. le message d'erreur indique
cela signifie donc... ben que tu n'as aucune base de données nommée 'contact' .....
l'as tu créées dans ta bdd ?? (ça, tu peux le faire via phpmyadmin... )
Dans ton code précédent.. la bdd se nommait membre ...
Je suppose donc que tu as copié/collé bêtement un code trouvé sur le net.... sans chercher à le comprendre !!
Erreur : SQLSTATE[HY000] [1049] Unknown database 'contact'
cela signifie donc... ben que tu n'as aucune base de données nommée 'contact' .....
l'as tu créées dans ta bdd ?? (ça, tu peux le faire via phpmyadmin... )
Dans ton code précédent.. la bdd se nommait membre ...
Je suppose donc que tu as copié/collé bêtement un code trouvé sur le net.... sans chercher à le comprendre !!
Salut, Si, je l'ai fait moi même, mais sauf que je l'ai fait vite fait...
Mais j'avais regardé un tuto, mais c'était pas marqué "créer sa bdd" ducoup toute les erreurs viennent de ca... Mais la bdd, Ou peut on la créer et comment???
Merci!
Mais j'avais regardé un tuto, mais c'était pas marqué "créer sa bdd" ducoup toute les erreurs viennent de ca... Mais la bdd, Ou peut on la créer et comment???
Merci!
Voila, dbb créer...
CREATE DATABASE contact CHARACTER SET 'utf8';
maintenant, l'erreur c'est:
Parse error: syntax error, unexpected 'DATABASE' (T_STRING) in C:\laragon\www\Test\code.php on line 2
...
CREATE DATABASE contact CHARACTER SET 'utf8';
maintenant, l'erreur c'est:
Parse error: syntax error, unexpected 'DATABASE' (T_STRING) in C:\laragon\www\Test\code.php on line 2
...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Désolé d'avoir répondu si tard, mais j'avais école...
Voici le code:
Merci!
Voici le code:
<?php CREATE DATABASE contact CHARACTER SET 'utf8'; try{ $db = new PDO('mysql:host=localhost;dbname=contact', 'root', ''); } catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br />'; echo 'N° : '.$e->getCode(); } $nom = $_POST['nom']; $prenom = $_POST['prenom']; $adresse = $_POST['adresse']; $city = $_POST['city']; $email = $_POST['email']; $tel1 = $_POST['tel1']; $tel2 = $_POST['tel2']; $password = $_POST['password']; $repassword= $_POST['repassword']; $child = $_POST['child']; $age = $_POST['age']; $info = $_POST['info']; if(isset($_POST['nom'],$_POST['prenom'],$_POST['adresse'],$_POST['city'],$_POST['email'],$_POST['tel1'],$_POST['tel2'],$_POST['password'],$_POST['repassword'],$_POST['child'],$_POST['age'],$_POST['info'])) { if($nom&&$prenom&&$adresse&&$city&&$email&&$tel1&&$password&&$repassword&&$child&&$age){ if($password==$repassword){ $query = $db->prepare( 'INSERT INTO users ( id,nom,prenom,adresse,ville,email,telephone1,telephone2,password,child,age,info ) VALUES (NULL, :nom, :prenom, :adresse, :city, :email, :tel1, :tel2, :password, :child, :info ' ); $query->bindValue('nom', $_POST['nom'], PDO::PARAM_STR); $query->bindValue('prenom', $_POST['prenom'], PDO::PARAM_STR); $query->bindValue('adresse', $_POST['adresse'], PDO::PARAM_STR); $query->bindValue('city', $_POST['city'], PDO::PARAM_STR); $query->bindValue('email', $_POST['email'], PDO::PARAM_STR); $query->bindValue('tel1', $_POST['tel1'], PDO::PARAM_STR); $query->bindValue('tel2', $_POST['tel2'], PDO::PARAM_STR); $query->bindValue('password', $_POST['password'], PDO::PARAM_STR); $query->bindValue('child', $_POST['child'], PDO::PARAM_STR); $query->bindValue('info', $_POST['info'], PDO::PARAM_STR); $query->execute(); }else echo"les 2 password doivent etre identique"; } else echo"Veuillez saisir tous les champs"; } ?>
Merci!
Tu ne peux pas créer ta base de donnée à l'arrache juste en écrivant une ligne de code dans ton PHP...
Cette ligne de code est à exécuter soit via une requête SQL en mode console soit en utilisant l'interface de phpMyAdmin.
de plus la création de la base elle-même ne suffit pas il faut également créer la table qui correspond en définissant les champs nécessaire
je suis désolé d'insister là-dessus mais essayer d'écrire du code PHP sans avoir la moindre connaissance du fonctionnement d'une base de données est strictement inutile...
Commence par te former sur l'utilisation d'une base de données l'utilisation du logiciel phpMyAdmin
comment on concoit une base de données ... il faut te former pour ça sur les bases de données relationnelles...
Tu essaies de sauter trop d'étapes ....tu ne pourras jamais t'en sortir comme ça
Cette ligne de code est à exécuter soit via une requête SQL en mode console soit en utilisant l'interface de phpMyAdmin.
de plus la création de la base elle-même ne suffit pas il faut également créer la table qui correspond en définissant les champs nécessaire
je suis désolé d'insister là-dessus mais essayer d'écrire du code PHP sans avoir la moindre connaissance du fonctionnement d'une base de données est strictement inutile...
Commence par te former sur l'utilisation d'une base de données l'utilisation du logiciel phpMyAdmin
comment on concoit une base de données ... il faut te former pour ça sur les bases de données relationnelles...
Tu essaies de sauter trop d'étapes ....tu ne pourras jamais t'en sortir comme ça
Salut!merci de ta réponse! c'est bon, ma base de donnée "contact" est créer, mais après remplir ce formulaire, ca me mais sa...

avec ce code tout en bas: USE `contact`;
/* Erreur SQL (1049) : Unknown database 'contact' */
SHOW /*!50002 GLOBAL */ STATUS;
SHOW FULL PROCESSLIST;
SHOW /*!50002 GLOBAL */ STATUS LIKE 'Com\_%';
.
Mais quand je rempli le formulaire ca me met l'erreur la haut ...
Parse error: syntax error, unexpected 'DATABASE' (T_STRING) in C:\laragon\www\Test\code.php on line 2
avec ce code tout en bas: USE `contact`;
/* Erreur SQL (1049) : Unknown database 'contact' */
SHOW /*!50002 GLOBAL */ STATUS;
SHOW FULL PROCESSLIST;
SHOW /*!50002 GLOBAL */ STATUS LIKE 'Com\_%';
.
Mais quand je rempli le formulaire ca me met l'erreur la haut ...
J'ai supprimé la ligne 2, mais maintenant ca me mais ca:
ducoup, ca ne cherche pas dans heidisql la base de donnée "contact" automatiquement?
(ma bdd est créer dans heidisql)
Erreur : SQLSTATE[HY000] [1049] Unknown database 'contact'
N° : 1049
Notice: Undefined variable: db in C:\laragon\www\Test\code.php on line 38
Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\laragon\www\Test\code.php:38 Stack trace: #0 {main} thrown in C:\laragon\www\Test\code.php on line 38
ducoup, ca ne cherche pas dans heidisql la base de donnée "contact" automatiquement?
(ma bdd est créer dans heidisql)
Question...
As-tu créer la table user dans ta base de données contact ?
Seconde question...
Depuis l'interface heidisql, fais un clic droit sur la base de données contact et tu choisis dans le menu exporter.
renseigne les différents champs de façon à générer un export de ta base de données... École nous c'est export dans la discussion.
As-tu créer la table user dans ta base de données contact ?
Seconde question...
Depuis l'interface heidisql, fais un clic droit sur la base de données contact et tu choisis dans le menu exporter.
renseigne les différents champs de façon à générer un export de ta base de données... École nous c'est export dans la discussion.