Aide en php

Résolu
Bonjour,
J aimerai savoir si vous ne connaisser pas un script qui demande le mon prenon, date de naissance et adresse mail et qui es stocker dans une base de donnée

je ne mis connait pas en php

merci de votra aide
Configuration: Windows Vista
Internet Explorer 7.0

29 réponses

Résumé de la discussion

Un script PHP permettant de collecter nom, prénom, date de naissance et adresse mail via un formulaire et de stocker ces informations dans une base de données est discuté. Des réponses insistent sur l’importance de récupérer correctement les variables POST comme nom et mot de passe, d’éviter les erreurs classiques et de sécuriser la connexion et les requêtes SQL. D’autres conseils proposés incluent la vérification de l’identification utilisateur, la comparaison des mots de passe avec des requêtes SQL sécurisées, et l’éducation sur les fondamentaux du formulaire et du traitement côté serveur. En cas de besoin, des ressources pratiques évoquent des exemples étape par étape et des conseils sur la création de tables et de colonnes pour structurer l’enregistrement des données.

Bobot (l’IA à votre service)
  1. j ai reussi a créer un espace membre il fonctionne correctement

    je te remercie pour toutes les infos que tu m a fourni c es gentil

    Merci beaucoup
    0
    1. Bonjour,

      Chouette !
      on aura mis du temps.
      mais si c'est bon tant mieux.
      passe le pb en résolu, pour la communauté
      Merci
      0
  2. bonjour,
    le code suivant fonctionne sur un de mes sites

    $log = $_POST['login'];
    $psw = $_POST['pswd'];
    include_once ('connect.php');
    // verif utilisateur
    $query = " select * from utilisateurs where login = '$log' and pswd = '$psw'";
    $result = mysql_query($query);
    // Vérification du résultat
    // Ceci montre la requête envoyée à MySQL ainsi que l'erreur. Utile pour déboguer.
    if (!$result) {
    $message = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
    }
    0
    1. bonjour,
      audi68 voir message perso.
      0
      1. Bonjour

        Ca va mieu en forme de nouveau?

        j ai essaié ce matin mais ca ne vas pas

        j ai mis ca
        $queryt = "select * from $table_user where nom=$email and pass=$passuser";

        il me dit mot de passe incorect

        la table s apelle table_user
        la colonne nom est ou sont enregistrer les mail et passe le mot de passe

        voila mes souci lol
        0
        1. Bonsoir,
          ja'i un gros problème car quand vous dites ça ne marche pas, on ne sait pas ce qui ne va pas.
          si je résume, le formulaire est Ok
          les variables sont bien transmises
          la table est correcte alors où est le probléme.

          vous dites j'ai mis ça, il faudrait tenir compte des messages précédents.

          $queryt = "select * from $table_user where nom=$email and pass=$passuser";

          mettez ceci
          $queryt = "select * from $table_user where nom='".$email."' and pass='".$passuser.'";
          0
      2. ben j ai essaier avec et sans mais ca ne marche pas

        non le mot de passe de la base est correct

        non mais je me suis mal expliqué en haut

        j ai 3 colonne dans ma table

        id
        nom avec l adresse mail
        pass avec le mot de passe
        0
        1. Bonjour

          Ca va mieu en forme de nouveau?

          j ai essaié ce matin mais ca ne vas pas

          j ai mis ca
          $queryt = "select * from $table_user where nom=$email and pass=$passuser";

          il me dit mot de passe incorect

          la table s apelle table_user
          la colonne nom est ou sont enregistrer les mail et passe le mot de passe

          voila mes souci lol
          0
          1. Bonjour,
            déjà si la table s'appelle votre table_user , pourquoi mettre $

            mot de passe incorrect : vérifier si le mot de passe de connexion à la base est bon.

            la colonne nom ne peut contenir qu'une information. la table doit donc contenir deux colonnes.
            0
        2. oui le formulaire est fait ca c es juste

          la 2eme etape aussi

          je sais recuperer les donnée

          mais c es apres ou ca coince avec la connection et la verification des champs

          <?php
          include("setup/settings2.php");
          include("setup/lang.php");
          $email = $_POST['email'];
          $passuser = $_POST['passuser'];

          $queryt = "select * from table $table_user nom=$email and pass=$passuser";

          @mysql_connect($DBHost, $DBUser, $DBPass);

          $resultt = @mysql_db_query($DBName, $queryt);

          if ($resultt){$flag=0;
          while ($r = mysql_fetch_array($resultt))
          {

          $pass2=$r["pass"];

          echo "votre mail est $email ";
          $ip = $_SERVER['REMOTE_ADDR']; echo "votre adresse IP est $ip ";
          include("test2.php");

          }}
          if ($pass2!="$passuser"){echo"<span class=\"grostitre\">$c57<br><a href=\"indext.html\"> $c10</a></span>";}
          if ($passuser==""){echo"<span class=\"grostitre\">$c58<a href=\"indext.html\"> $c10</a></span>";}

          ?>

          le debut est juste non?
          0
          1. êtes-vous sure de :
            $queryt = "select * from table $table_user nom=$email and pass=$passuser";
            table ?
            $table_user ?
            et manque le where

            $queryt = "select * from nom_de_la_table where nom=$email and pass=$passuser";

            semaine dure je pars me coucher. notez vos soucis pour demain
            0
        3. et si on reprenait au départ en allant à l'eseentiel ?

          première étape : on crée le formulaire.
          c'est là on l'utilisateur saisit son nom (ou login ou admail et mot de passe).
          il clique alors sur submit.
          cette action envoit les données vers le second programme;

          deuxième étape et deuxième programme :
          on récupère les infos de l'étape

          soit login admial et mot de passe avec comme nom ce qui est noté dan le paramètre name des input
          exemple :
          si name =nom
          alors on a :
          $nom = $_POST['nom'];

          soit :
          premier exercice : afficher les valeurs envoyées par le formulaire.
          0
          1. j ai essaier mais ca ne vas pas non plus

            Peut etre que je ne connais pas le code pour verifier le mot de passe et l adresse des 2 champ

            car moi je peut mettre n importe quel adresse il suffit que le mot de passe soit juste et il ouvre la page

            donc mon code est faux
            0
            1. la réponse a déjà été donnée. le mot de passe doit correspondre à un identifiant de connexion.
              exemple : synthétique (ne pas recopier tel quel)
              select * from table where nom=login and motedepasse= mot de passe

              alors on a un retour positif et l'utilisateur est enregistré sinono l'utilistaeur n'est pas inscrit

              --
              0
          2. Bonsoir

            Je viens de bidouiller mais je n arrive pas a trouver

            j ai essaier avec ca mais ca ne va pas non plu
            $queryt = "SELECT passs FROM $table_user where nom='$passuser'";
            0
            1. bonsoir,
              déjà ça serait mieux.

              $queryt = "SELECT passs FROM $table_user where nom='.$passuser."'";

              une autre chose avant de bidouiller, essayez de voir la syntaxe des commandes, puis l'algorithmie de ce que vous voulez faire.
              --
              0
          3. Bonsoir,
            il va falloir faire quelque chose car ce que je teste fonctionne.
            exception fite des particularités : css et sgbd

            premier fichier
            <html>
            <form action="testphp.php" method='post'>
            <p class="grostitre" align="center">Bienvenue sur votre espace d'administration</p>
            <table align="center" border="0" width="267">
            <tr>
            <td class="titre" width="97" nowrap>Adresse Mail </td>
            <td width="160">
            <input type="text" name="passuser" maxlength="50">
            </td>
            </tr>
            <tr>
            <td class="titre" width="97" nowrap>Mot de passe</td>
            <td width="160">
            <input type="password" name="motpasse" maxlength="20">
            </td>
            </tr>
            <tr>
            <td colspan="2" align="center">
            <input type="submit" value="valider">
            </td>
            </tr>
            </table>
            </form>
            </html>

            second fichier

            <?
            //include("setup/settings2.php");
            //include("setup/lang.php");
            $passuser = $_POST['passuser'];
            echo $passuser;

            /*

            $queryt = "SELECT * FROM $table_user where nom='$passuser'";
            $queryt = "SELECT * FROM $table_user where pass='$motpasse'";
            @mysql_connect($DBHost, $DBUser, $DBPass);

            $resultt = @mysql_db_query($DBName, $queryt);
            */
            if ($resultt){$flag=0;
            while ($r = mysql_fetch_array($resultt))
            {
            $pass2=$r["pass"];

            echo "votre mail est $passuser ";
            $ip = $_SERVER['REMOTE_ADDR']; echo "votre adresse IP est $ip ";
            include("test2.php");

            }}
            if ($pass2!="$passuser"){echo"<span class=\"grostitre\">$c57<br><a href=\"indext.html\"> $c10</a></span>";}
            if ($passuser==""){echo"<span class=\"grostitre\">$c58<a href=\"indext.html\"> $c10</a></span>";}
            ?>

            à demain
            JL
            0
            1. ok j ai regarder et rajouter la par celle qui manqauit

              mais ca ne marche tjrs pas

              pas de probleme bon appetit

              merci de ton aide
              0
              1. ca ne marche pas il me met erreur : Parse error: syntax error, unexpected $end in /mnt/164/sda/2/0/picobello/login/testphp.php on line 142

                j ai peut etre oublier de fermer une parenthese?

                <?
                include("setup/settings2.php");
                include("setup/lang.php");

                echo "passuser =".$passuser;
                $queryt = "SELECT * FROM $table_user where nom='$passuser'";
                $queryt1 = "SELECT * FROM $table_user where pass='$motpasse'";
                @mysql_connect($DBHost, $DBUser, $DBPass);

                $resultt = @mysql_db_query($DBName, $queryt);

                if ($resultt){$flag=0;
                while ($r = mysql_fetch_array($resultt))
                {
                $pass2=$r["pass"];
                $resultt1 = @mysql_db_query($DBName, $queryt1);

                if ($resultt){$flag=0;
                while ($r = mysql_fetch_array($resultt1))
                {
                $pass2=$r["pass"];

                echo "votre mail est $passuser ";
                $ip = $_SERVER['REMOTE_ADDR']; echo "votre adresse IP est $ip ";
                include("test2.php");

                }}
                if ($pass2!="$passuser"){echo"<span class=\"grostitre\">$c57<br><a href=\"indext.html\"> $c10</a></span>";}
                if ($passuser==""){echo"<span class=\"grostitre\">$c58<a href=\"indext.html\"> $c10</a></span>";}
                ?>
                0
                1. il manque un }

                  il y en a trois ouverts et deux fermés

                  je pasr diner sorry, je regarde plus tard la suite ou demain
                  0
              2. j ai essaier mais il me met erreur Parse error: syntax error, unexpected ....

                je le met ou excactement?
                0
                1. et ici testphp.php
                  <?
                  include("setup/settings2.php");
                  include("setup/lang.php");

                  echo "contenu de la variable : ".$passuser;

                  ...
                  0
              3. quoi ici il n y a rien?tu parle de ces fichiers include("setup/settings2.php");
                include("setup/lang.php"); ?
                si dans settings2 il y a mes mot de passe et dans le 2eme
                <?

                $c1="Ajouter un utilisateur";

                $c2="Mot de passe";

                $c3="Commentaires";

                $c4="Liste des utilisateurs";

                $c5="Nom d'utilisateur";...........
                mais bon ca ne sert pas a grand chose c es si tu veut le mettre en plusieurs langue
                car mon site sera en 2 langue francais et italien

                oui tu as raison je vient de tester
                il suffit que je tape un bonmot de passe et je peut me connecter il ne verifie pas les 2 champs adresse mail et mot de passe

                je peut tous recommencer je crois

                merci giheller
                0
                1. je persiste à dire que la variable $passuser est vide en début du second programme.
                  pour vous en convaincre avec l'instruction select mettez :

                  echo "passuser =".$passuser;
                  0
              4. ici il n'y a rien

                et ici testphp.php
                <?
                include("setup/settings2.php");
                include("setup/lang.php");

                $queryt = "SELECT * FROM $table_user where nom='$passuser'";

                de plus si je traduis cette ligne :
                selectionner tous les enegistrements del table user où le nom correspond au mot de passe !

                étrange.

                0
                1. Merci de votre reponse giheller

                  Si je demande une adresse mail et un mot de passe
                  j ai du mal copier desolé

                  ci joint le fichier index

                  <form action="testphp.php" method='post'>
                  <p class="grostitre" align="center">Bienvenue sur votre espace d'administration</p>
                  <table align="center" border="0" width="267">
                  <tr>
                  <td class="titre" width="97" nowrap>Adresse Mail </td>
                  <td width="160">
                  <input type="text"name="passuser" maxlength="50">
                  </td>
                  </tr>
                  <tr>
                  <td class="titre" width="97" nowrap>Mot de passe</td>
                  <td width="160">
                  <input type="password"name="motpasse" maxlength="20">
                  </td>
                  </tr>
                  <tr>
                  <td colspan="2" align="center">
                  <input type="submit" value="valider">
                  </td>
                  </tr>
                  </table>
                  </form>

                  et ici testphp.php
                  <?
                  include("setup/settings2.php");
                  include("setup/lang.php");

                  $queryt = "SELECT * FROM $table_user where nom='$passuser'";
                  $queryt = "SELECT * FROM $table_user where pass='$motpasse'";
                  @mysql_connect($DBHost, $DBUser, $DBPass);

                  $resultt = @mysql_db_query($DBName, $queryt);

                  if ($resultt){$flag=0;
                  while ($r = mysql_fetch_array($resultt))
                  {
                  $pass2=$r["pass"];

                  echo "votre mail est $passuser ";
                  $ip = $_SERVER['REMOTE_ADDR']; echo "votre adresse IP est $ip ";
                  include("test2.php");

                  }}
                  if ($pass2!="$passuser"){echo"<span class=\"grostitre\">$c57<br><a href=\"indext.html\"> $c10</a></span>";}
                  if ($passuser==""){echo"<span class=\"grostitre\">$c58<a href=\"indext.html\"> $c10</a></span>";}
                  ?>

                  Comment ca je n es rien dans la variable $passuser

                  merci de votre aide
                  0
                  1. bonsoir,

                    Non, il y a des soucis.

                    1 il est étrange de demander un mot de passe et pas de login ou d'identification.
                    en général on demande les deux et on vérifie que le mot de passe donné correspond à celui qui est dans la table en fonction de l'identifiant.

                    2 dans testphp.php, vous n'avez rien dans la variable $passuser car elle n'est pas initialisée.
                    il faut la récupérer avec :
                    $passuser = $_POST['passuser'];

                    0
                    1. Bonjour

                      Apres un bon momment de lecture
                      j ai pu bidouiller un truc il fonctionne bien

                      mais j aimerais avoir votre avis si celui ci est bon?

                      je vous met les fichiers

                      fichier 1 nommé indext:

                      <form action="testphp.php" method='post'>
                      <p class="grostitre" align="center">Bienvenue sur votre espace d'administration</p>
                      <table align="center" border="0" width="267">
                      <tr>
                      <td class="titre" width="97" nowrap>Mot de passe</td>
                      <td width="160">
                      <input type="password"name="passuser" maxlength="20">
                      </td>
                      </tr>
                      <tr>
                      <td colspan="2" align="center">
                      <input type="submit" value="valider">
                      </td>
                      </tr>
                      </table>
                      </form>

                      fichier2 nommée testphp.php

                      <?
                      include("setup/settings2.php");
                      include("setup/lang.php");

                      $queryt = "SELECT * FROM $table_user where pass='$passuser'";

                      @mysql_connect($DBHost, $DBUser, $DBPass);

                      $resultt = @mysql_db_query($DBName, $queryt);

                      if ($resultt){$flag=0;
                      while ($r = mysql_fetch_array($resultt))
                      {
                      $pass2=$r["pass"];

                      echo "votre mail est $passuser";
                      $ip = $_SERVER['REMOTE_ADDR']; echo "votre adresse IP est $ip ";
                      include("test2.php");

                      }}
                      if ($pass2!="$passuser"){echo"<span class=\"grostitre\">$c57<br><a href=\"indext.html\"> $c10</a></span>";}
                      if ($passuser==""){echo"<span class=\"grostitre\">$c58<a href=\"indext.html\"> $c10</a></span>";}
                      ?>

                      Vous en pensez quoi?
                      Merci de vos renseignement
                      0
                      1. bonjour,
                        essaie ceci

                        $requete = "INSERT INTO valeurs (nom,prenom) VALUES ('".$nom."','".$prenom."')";

                        et comme dit arthezius se faire aider n'est pas faire faire son travail, mais comprendre ce que l'on fait.
                        le copier coller c'est bien mais ....................
                        0
                        • 1
                        • 2