Problème phpmyyadmin

Résolu/Fermé
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 - Modifié le 5 sept. 2020 à 09:32
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 8 sept. 2020 à 21:23
Bonjour,

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

jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 sept. 2020 à 17:36
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


0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
Modifié le 5 sept. 2020 à 09:33
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
<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!

--
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 sept. 2020 à 18:05
Déjà.. le message d'erreur indique
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 !!
0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
3 sept. 2020 à 18:09
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!
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 sept. 2020 à 19:03
Vu tes questions... Tu ferais mieux de commencer par suivre des tutos...
0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
3 sept. 2020 à 19:22
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
...
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
3 sept. 2020 à 20:52
Montre ton code.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
Modifié le 5 sept. 2020 à 09:34
Désolé d'avoir répondu si tard, mais j'avais école...
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!
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
4 sept. 2020 à 22:12
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
0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
5 sept. 2020 à 09:05
Ok!
Ducoup, tu sais comment installer phpMyAdmin dans laragon?
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
Modifié le 5 sept. 2020 à 09:33
Dans laragon tu as déjà un logiciel qui permet d'accéder aux bases de données il s'appelle heidisql.
0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
5 sept. 2020 à 20:57
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...
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 ...
0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
5 sept. 2020 à 21:48
Il faut tout simplement que tu supprime la ligne 2 qui n'a rien à faire ici
0
Jwandle Messages postés 52 Date d'inscription samedi 22 août 2020 Statut Membre Dernière intervention 15 octobre 2020 6
Modifié le 6 sept. 2020 à 08:24
J'ai supprimé la ligne 2, mais maintenant ca me mais ca:
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)

0
jordane45 Messages postés 38312 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
8 sept. 2020 à 21:23
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.
0