begin process at 2012 05 30 13:31:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

mardi 23 octobre 2007 à 15:41:00 | Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

sagat06

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
mardi 23 octobre 2007 à 15:54:47 | Re : Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

coucou747

Administrateur CodeS-SourceS
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
mardi 23 octobre 2007 à 16:20:01 | Re : Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

sagat06

Ok, voilà donc le bout de code recopié tel quel:

<?php

/* programme de login pour section à accès réservé
     copié  php/mysql pour les nuls page 403

   PS: chiens.inc.php=>  <?php  $host="localhost"; $user="";
                                            $password="";$database="MemberDirectory";
                                       ?>
*/

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.<br />";
    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.<br/>";
   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("^.+@.+\\..+$",$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<br/>";
   }
   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é:

<HTML>
<HEAD>
<TITLE>Page d'accueil</TITLE>
</HEAD>
<BODY>
<br><br><br>

Vous êtes déjà inscrit? <br>

Saisissez vos identifiants:<br>
<form action="login.php" method="POST">

<?php
 if(isset($message)){
  echo " $message <br/> ";
 }
?>

 
Entrez votre login 
<input type="text" name="fusername" size="20" maxsize="20"><br>

Entrez votre mot de passe
<input type="password" name="fpassword" size="20" maxsize="20">

<input type="hidden" name="do" value="login"><br><br>

<input type="submit" name="log" value="Accéder à votre compte" align="right">
<br> <br>

<input type="button" value="Mot de passe oublié ?"> <br> <br>

 

Vous n'avez-pas de compte?<br>

Inscrivez-vous

<br><br>


<b> Création de votre compte</b>


<br><br>

Renseignez les champs suivants:<br><br>

<form action="login.php" method="POST">

<?php
 if(isset($message)){
  echo " $message_new <br/> ";
 }
?>

<table>
<tr><td>      Login </td>
<td><input type="text" name="loginName"  size="20" maxlength="20"><br></td></tr>

<tr><td>      
Mot de passe</td>
<td> <input type="password" name="password"  size="10" maxlength="8"><br></td></tr>

<tr><td>     Prénom </td>
<td><input type="text" name="firstName" size="40" maxlength="40"><br></td></tr>

<tr><td>    Nom </td>
<td><input type="text" name="lastName" size="40" maxlength="40"><br></td></tr>

<tr><td>    Rue</td>
<td><input type="text" name="street" size="55" maxlength="50"><br></td></tr>

<tr><td>    Ville</td>
<td><input type="text" name="city" size="40" maxlength="40"><br></td></tr>

<tr><td>     Code postal</td>
<td><input type="text" name="zip" size="10" maxlength="10"><br></td></tr>

<tr><td>     e-mail</td>
<td><input type="text" name="email" size="55" maxlength="67"><br></td></tr>

<input type="hidden" name="do" value="new"><br><br>

<tr><td colspan="2" align="center">
<input type="submit" value="Enregistrez-vous"></td></tr>

</table>

</BODY>
</HTML>

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

Signé Sagat

mardi 23 octobre 2007 à 16:24:46 | Re : Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

sagat06

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
mardi 23 octobre 2007 à 18:15:58 | Re : Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

coucou747

Administrateur CodeS-SourceS
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
mardi 23 octobre 2007 à 18:21:22 | Re : Débutant à besoin d'aide pour créer accès réservé pour membre (donc écriture dans base de données)

sagat06

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


Cette discussion est classée dans : créer, base, accès, membre, réservé


Répondre à ce message

Sujets en rapport avec ce message

Créer une base de données MySQL avec PHP [ par dannywilde ] J'essaye de créer la base de données dans un script PHP mais à chaque fois que j'essaye, le PC mouline pendant une durée illimitée et n'affiche rien m Comment créer une table dans une base de donnée? [ par NargiT ] Comment je fais pour crée un table dans ma base de donnée???????????????????????? Phpmyadmin erreur de configuration [ par kiki01 ] Bonjour,Je veux donc créer ma base de données via PhpMyadmin. Et c'est ici que mon désespoir commence .....!voici le message qu'il me donne Bienvenue Selectionner une donnée dans une base de donnée .... [ par Benjamin G ] Salut,Je voudrais finir mon espace membres avec un module pour savoir qui est en ligne (invités/membres)...Donc quand c'est un membre qui est connecté Création d'un moteur de recherche [ par silvia12 ] Bonjours,JE cherche a créer un moteur de recherche.J'ai trouvé plein de truc intéréssant, mais le probléme, c'est que mon site n'as aucune base de don comment créer une section membre [ par cicp ] Bonjour !je suis en train de faire mon site web et j'aurais besoin d'aide.je veux que mon site soit accessible par mot de passe suite a une inscriptio comment créer une section membre [ par cicp ] Bonjour !je suis en train de faire mon site web et j'aurais besoin d'aide.je veux que mon site soit accessible par mot de passe suite a une inscriptio comment créer une section membre [ par cicp ] Bonjour !je suis en train de faire mon site web et j'aurais besoin d'aide.je veux que mon site soit accessible par mot de passe suite a une inscriptio créer une base sur serveur ss utiliser PhpMyAdmin? [ par bilboga ] hello! J'aimerais savoir comment je peux créer ma base, la rendre exploitable sur le serveur s'il n'existe pas d'interface tel phpMyAdmin sur celui-ci Accès ODBC distant vers mySQL [ par alypius ] Bonjour !savez-vous comment je peux relier une base locale (en ODBC par exemple) avec une base mySQL hébergée sur un serveur distant , sachant que j'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales