Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dan

sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 - 23 oct. 2007 à 15:41
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 - 23 oct. 2007 à 18:21
Bonjour, je me suis mis il y a peu à la création d'un site web.

Partant de rien,  j'ai vite progréssé en Hml, Javascript et CSS. Cependant, je dois désormais m'interesser à PHP/MySQL car je désire réaliser un accès réservé pour membre.

Donc ceux-ci doivent se connecter avec leur login et mot de passe s'ils sont déjà inscrits, ou doivent s'inscrire en fournissant divers informations qui seront stocker dans une base de données.

Voilà mes quelques connaissances (vraiment faible, je m'y suis mis y a quelques jours): j'arrive avec EasyPHP via PhpMyAdmin à créer une base de donnée et à créer les tables souhaitées. Jusque là tout va bien.
Cependant cela se complique lorsque justement je veux remplir ces tables. Par PhpMyAdmin, rien de plus simple. Mais je veux que ce soient les utilisateurs qui les remplissent (rien que de très logique).

Je me suis acheté le dernier PHP et My SQL "pour les nuls" et il y avait justement en exemple de ce que je veux faire, mais ça ne fonctionne pas (3ème édition p.401 Listing12.2).

En remplissant les formulaires et en les validant, rien ne se passe (la même page avec les formulaires est rechargée) et en allant voir avec PhpMyAdmin si les tables avaient été remplis
 => rien, nada, que dalle.

Bref, j'aimerais savoir si qq'un pourrait m'indiquer un tuto pour faire cela, ou un p'tit bout de code déjà tout fait (le fainéant en moi se réveille)

En espérant que vous pourrez m'aider.
Merci d'avance.

Signé Sagat

5 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 oct. 2007 à 15:54
salut

puisque t'as un code qui ne marche pas, envoi le nous, on te dira pourquoi il ne marche pas, et on t'aidera a le faire fonctionner, c'est plus rapide que de partir de 0
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
23 oct. 2007 à 16:20
Ok, voilà donc le bout de code recopié tel quel:


*/


session_start();
include("chiens.inc.php");
switch (@$_POST['do']){


 case "login":
 
  $cxn = mysqli_connect($host,$user,$password,$database) or die ("Connexion impossible au serveur dans case login");
  $sql = "SELECT loginName FROM Member WHERE loginName='$_Post[fusername]'";
  $result = mysqli_query($cxn,$sql) or die("Requête en échec 1.");
  $num = mysqli_num_rows($result);
  
  if ($num > 0){  // loginName trouvé


   $sql = "SELECT loginName FROM Member WHERE loginName='$_POST[fusername]' AND password=md5('$_POST[fpassword]')";
   $result2 = mysqli_query($cxn,$sql) or die("Requête en échec 2.");  
   $num2 = mysqli_num_rows($result2);


   if ($num2 > 0){  // Mot de passe trouvé


    $_SESSION['auth']="yes";
    $logname=$_POST['fusername'];
    $_SESSION['logname'] = $logname;
    $today = date("Y-m-d h:i:s");
    $sql = "INSERT INTO Login (loginName,loginTime) VALUES ('$logname','$today')";
    $result = mysqli_query($cxn,$sql) or die("INSERT en échec.");
    header("Location: membre_page.php");    }
   else{   // Mot de passe incorrect
 
    $message="Le nom de login '$_POST[fusername]' existe, mais le mot de passe est incorrect. Réessayer.
";
    include("login_form.inc.php");  
   }
  }
  elseif ($num==0){ // Nom de login introuvable


   $message = "Le nom de login que vous avez saisi n'existe pas. Réesayer.
";
   include("login_form.inc.php");  
  }
 break;


 case "new":


  /*  Recherche des champs vides  */


  foreach($_POST as $field => $value){


   if ($value=="")   {
 
    $blanks[]=$field;  
   }
  }


  if(isset($blanks))  {


   $message_new="Champs non saisis. Veuillez les renseigner: ";


   foreach($blanks as $value){
    $message_new.="$value, ";
   }
   extract($_POST);
   include("login_form.inc.php");  
   exit();
  }


  /*  Validation des données  */


  foreach($_POST as $field => $value){
 
   if(!empty($value))  {
    if(eregi("name",$field) and !eregi("login",$field))  { 
     if(!ereg("^[A-Za-z' -]{1,50}$",$value))  {
      $errors[]="$value n'est pas un nom valide.";
     }
    }
    if(eregi("street",$field) or eregi("city",$field))  {
     if(!ereg("^[A-Za-z0-9.,' -]{1,50}$",$value))  {
      $errors[]="$value est incorrect.";
     }
    }
    if(eregi("email",$field))  {
     if(!ereg("[mailto:^.+@.+\\..+$",$value ^.+@.+\\..+$",$value]))  {
      $errors[]="$value est refusé comme email.";
     }
    }
    if(eregi("zip",$field))  {
     if(!ereg("^[0-9){5,5}(\-[0-9]{4,4}?$",$value))  {
      $errors[]="$value n'est pas un Code Postal autorisé.";
     }
    }
   }
  }


  if(@is_array($errors)){


   $message_new="";


   foreach($errors as $value){


    $message_new .=$value."Réessayer
";
   }
   extract($_POST);
   include("login_form.inc.php"); 
   exit();
  }


  /*Nettoyage des données */


  $cxn=mysqli_connect($host,$user,$pasword,$database);


  foreach($_POST as $field => $value){
   if($field!="Button" and $field!="do"){
       if($field=="password"){
           $password=strip_tags(trim($value));    
       }
       else{
     $fields[]=$field;
     $value=strip_tags(trim($value));
     $values[]=mysqli_real_escape_string($cxn,$value);
     $$field=$value;
    }
   }
  }


  /*Le nom de login existe-t-il déjà ? */


  $sql="SELECT loginName FROM Member WHERE loginName='$loginName'";


  $result=mysqli_query($cxn,$sql) or die("Requête SELECT en echec dans case new.");


  $num=mysqli_num_rows($result);


  if($num>0){
   $message_new="$loginName existe déjà. Choisissez-en un autre.";
   include("login_form.inc.php");  
   exit();
  }


  /*Ajout du nouveau membre dans la base */


  else{
   $today=date("Y-m-d");
   $fields_str=implode(",",$fields);
   $values_str=implode('","',$values);
   $fields_str.=",createDate";
   $values_str.='"'.",".'"'.$today;
   $fields_str.=",password";
   $values_str.='"'.","."md5"."('".$password."')";
   $sql="INSERT INTO Member";
   $sql.="(".$fields_str.")";
   $sql.=" VALUES ";
   $sql.="(".'"'.$values_str.")";
   $result=mysqli_query($cxn,$sql) or die("Requête INSERT en échec.");
   $_SESSION['auth']="yes";
   $_SESSION['logname']=$loginName;


  }


 break;
 default;


 include("login_form.inc.php");  


}
?>

Pour info, voilà le fichier "login_form.inc.php" qui a été légèrement modifié:



Page d'accueil



Vous êtes déjà inscrit?


Saisissez vos identifiants:







 
Entrez votre login 



Entrez votre mot de passe













 


Vous n'avez-pas de compte?


Inscrivez-vous






Création de votre compte





Renseignez les champs suivants:








      Login,
,

----
      
Mot de passe,
,

----
     Prénom,
,

----
    Nom,
,

----
    Rue,
,

----
    Ville,
,

----
     Code postal,
,

----
     e-mail,
,

----





Voilà j'espère que cela pourra vous aider à cerner mon pb.
Merci d'avance.

Signé Sagat
0
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
23 oct. 2007 à 16:24
Re-moi,
juste pour préciser:

le 'do' utilisé dans le switch est donné via le input type hidden adéquate fourni par la soumission du formulaire (soit déjà inscrit => do=login, sinon do=new)

Signé Sagat
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
23 oct. 2007 à 18:15
Tu devrais aussi preciser plusieurs choses comme :
- qu'est-ce-qui ne marche pas ?
- as tu un message d'erreur

pour clarifier ton code, tu devrais te connecter une bonne fois pour toute a mysql
0

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

Posez votre question
sagat06 Messages postés 166 Date d'inscription mercredi 27 juin 2007 Statut Membre Dernière intervention 31 mars 2014 1
23 oct. 2007 à 18:21
Merci de t'interessé à mon pb.

En fait lorsque je soumets les formulaires, la page se recharge tout bêtement, et rien d'autres ne se passe.

Cependant en tentant de réalisé quelque chose de plus simple, j'ai remarqué que je ne pouvais pas écrire sur les bases de données crées avec EasyPhP

Mon autre question sur ceux forum t'expliquera mieux mon pb

Encore merci

Signé Sagat
0
Rejoignez-nous