script connexion et inscription php
Hors ligneJass922 Le 08/05/2009 à 17:57 Profil de Jass922 Configuration de Jass922

Bonjour,
J'ai un petit probleme
En fait j'ai un projet a rendre pour la fin de l'année ( je suis en terminale stg option gsi)
en gros c'est une entreprise de pret a porter; FRINGUES2 qui veut que ses clients puissent s'authentifier ( login+ mot de passe) ou s'ils ne sont pas inscrit qu'ils puissent s'inscrire.On a une base de données qui s'appelle FRINGUES2 avec des clients et on a utilisé un client type "clifringues"
Donc j'ai essayé de faire des formulaires en php mais en testant hier j'ai vu que ca n'avait pas marché. Aujourd'hui j'ai donc essayé d'en faire d'autres, et j'aimerai qu'on me corrige:

le formulaire de connexion:

<?php
    
// Paramètres de connexion à la base de données
    $BD_serveur     "localhost";
    $BD_utilisateur "clifringues";
    $BD_motDePasse  "toto";
    $BD_base        "FRINGUES2_BDD";

    $id         $_POST["id"];
    $motDePasse $_POST["motdepasse"];

    @mysql_pconnect($BD_serveur$BD_utilisateur$BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");
 
    $requete "SELECT * FROM CLIENT ";
                       
    $result 
mysql_query($requete);
    
    if 
($enreg mysql_fetch_array($result)) {
        // Si une ligne a été trouvée c'est que le couple
        // (identifant, mot de passe) est valide
        echo "NOM : " $enreg["nom"] . "<br/>";
        echo "PRENOM : " $enreg["prenom"] . "<br/>";
        echo "ADRESSE : " $enreg["adresse"] . "<br/>";
    } else {
        echo "Paramètres de connexion invalides<br/>";
    }
?>


le formulaire d'inscription:

<?php
    
// Parametres de connexion à la base de données
    $BD_serveur     "localhost";
    $BD_utilisateur "clifringues";
    $BD_motDePasse  "toto";
    $BD_base        "FRINGUES2_BDD";
     
    
// Récupération des paramètres POST
    $id      $_POST["idcl"];
    $prenom  $_POST["promcl"];
    $nom     $_POST["nomcl"];
    $adresse $_POST["adrscl"];
     $cp $_POST["cpcl"];
     $ville $_POST["villecl"];
     $telephone $_POST["telcl"];
     $email $_POST["mailcl"];
    
     
    echo 
"Bonjour ".stripSlashes($prenom)." ".stripSlashes($nom).",<br/>";
    
    
@mysql_pconnect($BD_serveur$BD_utilisateur$BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");
    
    $requete 
"INSERT INTO CLIENT (idcl, nom, prenom, adresse, cp, ville, telephone, email,)
                  VALUES ('$id', '$nom','$prenom','$adresse', '$cp', '$telephone' '$email')"
;
    $result = @mysql_query($requete);
    if (!$result) {
        echo "L'enregistrement de vos données a échoué. Essayez plus tard.".
             "Et demandez à l'administrateur de vérifier l'existence de la ".
             "table CLIENT ;-)<br />";
    } else {
        echo "Félicitations. Vous êtes desormais un nouveau client!".
             "<br />";
    }
?>




merci d'avance
Hors ligneTaffeur95 Le 08/05/2009 à 21:36 Profil de Taffeur95 Configuration de Taffeur95

Bonjour,
en fait ton code n'est pas très clair...
mais dans un premier temps si tu veux faire un vérification, il faut que tu filtres ta requete, du style

$requete = "SELECT * FROM CLIENT WHERE `idcl`='$id' and `motPasse`='$motDePasse";
Si longueur requete =0 ==> erreur identification (longueur = mysql_num_rows($requete))

tu n'as pas mis de mot de passe dans ton INSERT...;

A+
Hors ligneJass922 Le 08/05/2009 à 21:48 Profil de Jass922 Configuration de Jass922

alors en fait a la base j'avais fais autre chose mais ca ne marché pas...je vais te le faire montrer


pour la connexion c'était ca :

<?     // le script s'appelle 'connexion.php' , par exemple
$connexion mysql_connect("localhost""root""root") or die ("Connection au serveur impossible<br />"); // réalise la connexion
$cx_basemysql_select_db("FRINGUES2_BDD"$connexion) or die ("Erreur dans la sélection de la base FRINGUES2_BDD !<br>"); // charge la base de données active
?>

mais ca ne voulait pas se connexter 

ensuite pour les inscriptions ( apparement il faut deux formulaires car il y en a un qui recupère les données) 
le 1er:

<?
include "connexioncli.php";
  $requete="select * from CLIENT;";
  $resultatmysql_query($requete,$connexion);

 
  echo '<form action="inscription2.php" method="post">';
  echo '<h2>Saisie des informations sur le client</h2>';

   echo'Donner son nom :';
   echo '<input type="text" name="nom" size="20" /><br />';
   echo'Donner son prenom :';
   echo '<input type="text" name="prenom" size="20" /><br />';
   echo'Donner son adresse :';
   echo '<input type="text" name="adresse" size="20" /><br />';
   echo'Donner son code postal :';
   echo '<input type="text" name="cp" size="5" /><br />';
   echo'Donner sa ville :';
   echo '<input type="text" name="ville" size="20" /><br />';
   echo'Donner son telephone :';
   echo '<input type="text" name="telephone" size="20" /><br />';
   echo'Donner son login :';
   echo '<input type="text" name="login" size="20" /><br />';
   echo'Donner son mot de passe :';
   echo '<input type="text" name="password" size="20" /><br />';

  echo "</select>";

  echo '<p /><input type="submit" value="Ajouter dans la base"><p />';
  echo '<input type="reset" name="annuler" value="annuler" />';
  echo "</form>";

mysql_close($connexion);
?>


et le 2eme:


<? include('connexioncli.php'); // appel du script de connexion

  // gestion des cas particuliers
  // le champ peut comporter un guillemet qui va gêner MySQL
  $nom=addslashes($_POST["login"]);
  // le champ peut ne pas avoir été saisi, on met une valeur nulle
  if (isset ($_POST["password"]))
     $password $_POST["password"];
  else
     $password 
null;

  $requete="select * from CLIENT;";
  $resultatmysql_query($requete,$connexion);
  $ligne=mysql_fetch_assoc($resultat);
 
  $requete="insert into CLIENT values ('".$_POST["nom"]."','".$_POST["prenom"]."',".$_POST["adresse"].",".$_POST["cp"].", '".$_POST["ville"]."', '".$_POST["telephone"]."');";
  echo "voici la requête sql qui va être exécutée : <br />".$requete;

  $resultatmysql_query($requete,$connexion);
  if ( ! $resultat)
  {      echo "<h1>echec de la requête </h1>";
         echo  mysql_error($connexion);
  }
  else
      if 
mysql_affected_rows ( ) )
           echo "<h1>insertion dans la base effectuée</h1>";

   echo '<h3><a href="index.html">RETOUR au menu de la base FRINGUES2_BDD</a></h3>';
mysql_close($connexion);
?>


et j'aimerai bien qu'on me dise ce qu'il va pas
Hors ligneTaffeur95 Le 09/05/2009 à 14:25 Profil de Taffeur95 Configuration de Taffeur95

Salut,
pour ton authentification, fais comme je t'ai dit:

$requete = SELECT * FROM table WHERE id=$id AND passe=$passe
if(mysql_num_rows($requete) == 0)
{
     erreur; //Traitement de l'erreur
}
else
{
         $enreg = mysql_fetch_array($requete);
         echo "NOM : " . $enreg["nom"] . "<br/>";
        echo "PRENOM : " . $enreg["prenom"] . "<br/>";
        echo "ADRESSE : " . $enreg["adresse"] . "<br/>";
}

dis moi si ca fonctionne et après on verra la création d'un client
Hors ligneJass922 Le 09/05/2009 à 14:39 Profil de Jass922 Configuration de Jass922

alors c'est ce que je viens de faire je te montre
connexion:

<?php
    // Paramètres de connexion à la base de données
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "FRINGUES2_BDD";

    $id        = $_POST["id"];
    $motDePasse = $_POST["motdepasse"];

    @mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");

    $requete = SELECT * FROM table WHERE id=$id AND passe=$passe
if(mysql_num_rows($requete) == 0)
{
     erreur; //Traitement de l'erreur
}
else
{
         $enreg = mysql_fetch_array($requete);
         echo "NOM : " . $enreg["nom"] . "<br/>";
        echo "PRENOM : " . $enreg["prenom"] . "<br/>";
        echo "ADRESSE : " . $enreg["adresse"] . "<br/>";
}

?>


et ca me donne ca qd jessaie


Parse error: parse error in J:\Program Files\EasyPHP 3.0\www\connexion.php on line 16
Hors ligneTaffeur95 Le 09/05/2009 à 14:45 Profil de Taffeur95 Configuration de Taffeur95

oui, c'est normal il faut que tu adaptes le code que je t'ai filé
en l'occurence le "erreur" de la condition devient le traitement de ton erreur, tu peux mettre ici
un echo "erreur d'identification"; par exemple
Hors ligneJass922 Le 09/05/2009 à 14:48 Profil de Jass922 Configuration de Jass922

ah oui daccord
je te montre ce que j'ai remplacé mais ca me donne tjs erreur a la ligne 16

<?php
    // Paramètres de connexion à la base de données
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "FRINGUES2_BDD";

    $pseudo       = $_POST["pseudo"];
    $passe = $_POST["passe"];

    @mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");

    $requete = SELECT * FROM user WHERE pseudo=$pseudo AND passe=$passe
if(mysql_num_rows($requete) == 0)
{
     "erreur d'identification";  //Traitement de l'erreur
}
else
{
         $enreg = mysql_fetch_array($requete);
         echo "NOM : " . $enreg["nom"] . "<br/>";
        echo "PRENOM : " . $enreg["prenom"] . "<br/>";
        echo "ADRESSE : " . $enreg["adresse"] . "<br/>";
}

?>

je peux tenvoyer ma base de donné pr que tu puisses voir si c'est pas des erreurs de syntaxe
Hors ligneTaffeur95 Le 09/05/2009 à 14:52 Profil de Taffeur95 Configuration de Taffeur95

tu n'as pas mis le echo devant la chaine "Erreur d'identification"
Hors ligneJass922 Le 09/05/2009 à 14:57 Profil de Jass922 Configuration de Jass922

voila la nouvel modification comme tu mas dis et encore la mm erreur ligne 16

<?php
    // Paramètres de connexion à la base de données
    $BD_serveur     = "localhost";
    $BD_utilisateur = "root";
    $BD_motDePasse  = "";
    $BD_base        = "FRINGUES2_BDD";

    $pseudo       = $_POST["pseudo"];
    $passe = $_POST["passe"];

    @mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
        or die("Impossible de se connecter au serveur de bases de données.");
    @mysql_select_db($BD_base)
        or die("Impossible de se connecter à la base de données.");

    $requete = SELECT * FROM user WHERE pseudo=$pseudo AND passe=$passe
if(mysql_num_rows($requete) == 0)
{
     echo "erreur d'identification";  //Traitement de l'erreur
}
else
{
         $enreg = mysql_fetch_array($requete);
         echo "NOM : " . $enreg["nom"] . "<br/>";
        echo "PRENOM : " . $enreg["prenom"] . "<br/>";
        echo "ADRESSE : " . $enreg["adresse"] . "<br/>";
}

?>
Hors ligneTaffeur95 Le 09/05/2009 à 15:02 Profil de Taffeur95 Configuration de Taffeur95

la syntaxe au dessus du bloc if n'est pas la bonne :

$requete = mysql_query("SELECT * FROM user WHERE `pseudo`='$pseudo' AND `passe`='$passe'");

et je ne suis pas sur qu eta table s'appelle bien 'user'
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels