PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 Re : MySQL, PostgreSQL, etc... » Problème de connexion à la base de données! » 01-08-2014 06:45:00

quand j'ai ajouté var_dump($_POST); coilà ce qui m'a donné

array (size=14)
  'sexe'array (size=14)
  'sexe' => string 'f' (length=1)
  'login' => string 'el.karima' (length=9)
  'pass' => string '12ABC' (length=5)
  'password' => string '12ABC' (length=5)
  'email2' => string 'email@exemple.fr' (length=16)
  'date' => string '1989-03-14' (length=10)
  'question' => string 'votre ville?' (length=12)
  'reponse' => string 'ville' (length=5)
  'nom' => string '' (length=0)
  'prenom' => string '' (length=0)
  'adresse' => string '' (length=0)
  'ville' => string '' (length=0)
  'code' => string '' (length=0)
  'Envoyer' => string 'Envoyer' (length=7)
Attention, seul les champs facultatifs peuvent rester vide !

#3 Re : MySQL, PostgreSQL, etc... » Problème de connexion à la base de données! » 01-08-2014 06:45:00

Maljuna Kris a écrit :

La première chose serait d'être sûr que le code PHP affiché ici correspond bien au script action du form, soit valide.php.

Est-ce que cette ligne s'affiche :

    echo '<font color="red">Attention, seul les champs <b>facultatifs</b> peuvent rester vide !</font>';

A quoi te sert-il de récupérer mysql_insert_id() puisqu'ensuite tu ne l'utilises pas ?

Oui oui il l'affiche même si les champs sont tous remplis.
mysql_insert_id() je l'ai utilisé pour récupérer l'id du premier utilisateur inscrit puis l'insérer dans la table connexion qui sert à connecter les utilisateurs déjà inscrit.

#4 Re : MySQL, PostgreSQL, etc... » Problème de connexion à la base de données! » 01-08-2014 06:45:00

#Maljuna Kris merci beaucoup, je vais corriger ça. mais pouvez m'aider à régler mon problème j'arrive pas à m'en sortir hmm
D'ailleurs, je veux isérer les infos du form dans deux tables simultanément.

#5 MySQL, PostgreSQL, etc... » Problème de connexion à la base de données! » 01-08-2014 06:45:00

karima
Réponses : 9

Bonjour,
Je viens de réaliser mon site web pour une société, et tout ce qui me reste c'est de terminer la partie d'espace membre.
En fait, je veux que les coordonnées de l'utilisateur seront enregistrer dans une base de données au cours de son inscription au site.
Malheureusement, j'arrive pas à me connecter à la base de données, toujours il fais que le premier test du code php puis il sort, c'est ce que je comprend pas.
J'ai essayé de vérifier mes tests plus les instructions nécessaire pour la connexion à la base de données, mais j'arrive à détecter l'erreur où exactement;
Je sais que j'ai pas bien expliqué le problème, mais je vous serai reconnaissante si quelqu'un accepte à m'aider.
Je vous laisse voire alors avec ce que j'ai fais et j'espère bien qu'il y aura quelqu'un pour m'aider smile
Merci d'avance.
Le code html du formulaire

<?php
  session_start(); // DEMARRE LA SESSION
  // SAUVGARDE LA VARIABLE hits DANS LE FICHIER DE SESSION
  $hits =0;
?>

<!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>
    <title>Mon site</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" href="style.css" />
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <!--[if lte IE 7]>
    <link rel="stylesheet" href="style_ie.css" />
    <![endif]-->
    </head>
    <body>
    <?php include("menu.php"); ?>
    <form action="valide.php" method="POST">
      <fieldset>
        <legend>Authentification</legend>
        <p>Veuillez saisir <b style="color: red;">les informations obligatoires</b> qui permettront de vous authentifier.</p>
        <table>
        <tr>
          <td><label for="sexe">sexe</label></td><td colspan=2><select name="sexe" id="sexe" required><option value="h" selected>Homme</option><option value="f">Femme</option></select></td>
        </tr>
        <tr>
          <td><label for="login">Login</label></td><td><input type="text" name="login" id="login" size=20 maxlength=25 required></td>
          <td style="color: red;">
           
          </td>
        </tr>
        <tr>
          <td><label for="pass">Mot de passe</label></td><td><input type="password" name="pass" id="pass" size=20 maxlength=25 required></td>
          <td style="color: red;">
         
          </td>
        </tr>
        <tr>
          <td><label for="confirm">Confirmation</label></td><td><input type="password" name="password" id="confirm" size=20 maxlength=25 required></td>
          <td style="color: red;">
           
          </td>
        </tr>
        <tr>
          <td><label for="email">Courriel</td><td><input type="email" id="email" required></td>
          <td style="color: red;">
           
          </td>
        </tr>
        <tr>
          <td><label for="cour2">Confirmation</td><td><input type="email" name="email2" id="cour2" required></td>
          <td style="color: red;">
           
          </td>
        </tr>
        <tr>
          <td>Date de naissance<label for="date"><label for="date"></td>
          <td>
            <input type="date" name="date" id="date" placeholder="Ex: 05/08/1985" required>
          </td>
          <td>
           
          </td>
        </tr>
        <tr>
          <td><label for="q">Question secrète</label></td><td><input type="text" size="100" maxlength="150" name="question" id="q" required></td>
          <td style="color: red;">
           
            </td>
        </tr>
        <tr>
          <td><label for="r">Réponse secrète</label></td><td><input type="text" size="100" maxlength="150" name="reponse" id="r" required></td>
          <td style="color: red;">
           
          </td>
        </tr>
        <tr>
          <td colspan=3><p><b style="color: red;"><u>Attention:</u></b> La question et réponse secrète vous seront nécessaires pour récupérer votre mot de passe en cas de perte.</p></td>
        </tr>
      </table>
    </fieldset>
    <fieldset>
      <legend>Informations personnelles</legend>
      <p>Vous avez la possibilité de saisir <b style="color: green;">des information facultatives</b> à votre inscription.</p>
      <table>
        <tr>
          <td><label for="nom">Nom</label></td><td><input type="text" name="nom" maxlength="25" size="20" id="nom"></td>
        </tr>
        <tr>
          <td><label for="prenom">Prénom</label></td><td><input type="text" name="prenom" maxlength="25" size="20" id="prenom"></td>
        </tr>
        <tr>
          <td><label for="adresse">Adresse</label></td><td><textarea name="adresse" cols="25" rows="3" id="adresse" placeholder="Ecrivez ici Votre Adresse..."></textarea></td>
        </tr>
        <tr>
          <td><label for="ville">Ville</label></td><td><input type="text" name="ville" maxlength="25" size="20" id="ville"></td>
        </tr>
        <tr>
          <td><label for="code">Code postal</label></td><td><input type="text" name="code" maxlength="25" size="20" id="code"></td>
        </tr>
      </table>
    </fieldset>
    <table width=100%>
      <tr>
        <td align=center><input type="submit" name="Envoyer" value="Envoyer"></td><td align=center><input type="reset" name="Rénitialiser" value="Rénitialiser"></td>
      </tr>
    </table>
  </form>
  <br><br>
  <?php include("pied_de_page.php"); ?>
</body>
</html>

Le code php

<?php
  define('DB_SERVER', 'localhost'); // serveur mysql
  define('DB_SERVER_USERNAME', 'root'); // nom d utilisateur
  define('DB_SERVER_PASSWORD', '*******'); // mot de passe
  define('DB_DATABASE', 'bd'); // nom de la base
?>
<?php
  $DATE = Date("d/m/Y H:i:s");
?>
<?php
  // On commence par récupérer les champs
  /*if(isset($_POST['sexe']))      $sexe=$_POST['sexe'];
  else      $sexe="";*/
 
  if(isset($_POST['login']))      $login=$_POST['login'];
  else      $login="";
 
  if(isset($_POST['pass']))      $pass=$_POST['pass'];
  else      $pass="";

  if(isset($_POST['email']))      $email=$_POST['email'];
  else      $email="";

  if(isset($_POST['date']))      $date=$_POST['date'];
  else      $date="";

  if(isset($_POST['q']))      $q=$_POST['q'];
  else      $q="";

  if(isset($_POST['r']))      $r=$_POST['r'];
  else      $r="";

  // On vérifie si les champs sont vides
  if(empty($login) OR empty($pass) OR empty($email) OR empty($date) OR empty($q) OR empty($r))
    {
    echo '<font color="red">Attention, seul les champs <b>facultatifs</b> peuvent rester vide !</font>';
    }
  // Aucun champ n'est vide, on peut enregistrer dans la table
  else      
    {
    $db = mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD);  // connexion à la base
    mysql_select_db(DB_DATABASE,$db);                  // sélection de la base

    // on regarde dans la table CompteUtilisateur si le login existe déjà
    $sql = "SELECT id FROM compeutilisateur WHERE login='$login'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    $res= mysql_num_rows($req);

    if($res!=0)  // si le login existe déjà, on affiche un message d'erreur
      {
      echo '<font color="red">Désolé, mais ce login existe déjà.</font>';
      }
    else  // Le login n'existe pas, on insère d'abord les infos dans compeutilisateur
      {
      $sql = "INSERT INTO compeutilisateur(id_compte, login, passwd) VALUES('','$login','$pass')";
      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

      // on récupère l'id qui vient d'être généré
      $id= mysql_insert_id();

      // ci-dessous on insère les infos dans inscription
      $sql = "INSERT INTO inscription(id, login, passwd, email, date, question, reponse, date_inscription) VALUES('','$login','$pass','$email','$date', '$q', '$r', '')";
      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
      }
    mysql_close($db);  // on ferme la compeutilisateur
  }
?>

Pied de page des forums

Propulsé par FluxBB