La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  creation table
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: creation table  (Lu 3779 fois)
creation table
« sur: le 16-01-2011 a 09:38:51 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

Bonjour,

Je suis en train de créer un site avec un espace membre.

J'ai un peu de mal à créer la sctucture de ma table :
Code:
CREATE TABLE membre (
id int(11) NOT NULL auto_increment,
nom` varchar(32) NOT NULL,
prenom` varchar(32) NOT NULL,
login text NOT NULL,
mail` varchar(32) NOT NULL,
pass_md5 text NOT NULL,
PRIMARY KEY (id)
derniere_visite` bigint(20) NOT NULL,


Alors, je ne sais pas :
confirmer mot de passe
La croix pour accepter les cgu
La question secrête et la réponse
anti spam 9+9, le resultat doit être 18

Merci d'avance pour vos conseils.
Lea

« Dernière Édition: le 18-01-2011 a 21:49:15 par leaweb » Rapporter au modérateur  

Re:creation table
« Répondre #1 sur: le 16-01-2011 a 11:18:34 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Bonjour Lea,

Alors déjà, il ya aurait peut être quelques petites modifications à apporter à ta table.

Le champs email, mettre plus de 32 caractères. Déjà mon adresse n'est pas si longue que ça et fait déjà 23 caractères. Beaucoup de gens mettent prénom, nom @..., ca va vite.

Pour le champs pass_md5, ne pas le mettre en text mais varchar 32, vu que c'est un md5 et qu'un md5 fait 32 caractères.

login pareil, mieux vaut limiter le nombre de caractères. Après ça devient de moins en moins utile car maintenant la plupart des sites utilisent l'adresse mail comme login, c'est parfois mieux de garder cette norme pour ne pas dépayser l'internaute.

En ce qui concerne le "confirmation du mdp" pas besoin de l'enregistrer, il est là uniquement afin d'assurer à celui qui s'inscrit qu'il a bien tapé son mot de passe, ce sera juste une vérification en php et peut être javascript.

Idem pour la validation des CGU.

L'anti spam on s'en fiche.

La question secret, rajouter deux champs.
Un champs pour la question, le mieux serait un champs int, et mettre dans le value du select un numéro pour chaque question, de cette manière, l'entrée dans la base sera plus facile, et plus sécurisé en castant la variable avant enregistrement.
et pour la question, un varchar.

Pour le code postal, un varchar limité, avec une vérification php que ce sont bien des chiffres qui ont été entrés.

Pour la date de naissance, tu peux faire des selectbox à l'aide d'un boucle for par exemple pour pas te faire trop de boulot et automatiser l'ajout des prochaines années (2012, 2013 etc ou s'il y a une limite d'age).
L'enregistrement est ensuite simple, ce sera ici un champs date dans la base.

Voila si tu as d'autres questions, n'hésites pas.


Edit : dernière petite chose, en ce qui concerne l'anti spam. Je serais même pas étonné qu'un robot lise ton 9+9
Tu pourrais peut être écrire ça en toute lettre. Ou par exemple neuf additionné à neuf.
Simple suggestion. Après il existe de nombreux captcha à installer.

« Dernière Édition: le 16-01-2011 a 11:22:10 par Krash » Rapporter au modérateur  
Re:creation table
« Répondre #2 sur: le 16-01-2011 a 12:23:52 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

Merci beaucoup pour votre réponse rapide.
Je vais étudier tout ca et je reviendrai certainement vers vous.
Bonne après midi
Lea

Rapporter au modérateur  
Re:creation table
« Répondre #3 sur: le 16-01-2011 a 14:29:54 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

Alors, j'y vais petit à petit :
J'ai fait :
Code:
nom      varchar(40)  Nonnul               
prenom      varchar(40)  Nonnul           
id int(11)    Nonnul    auto_increment             
login        text Non               
pass_md5 text  nonnul


après j'ai fait :
Code:
Nom :<input type="text" name="nom" size="25"value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>">
Prénom :<input type="text" name="prenom" size="25"value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>">

<b>Pseudo</b> :<input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">

<b><br><br>

Mot de passe  <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>">

Confirmer : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>">


et en haut de la page ::

Code:
<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
   // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
   if ((isset($_POST['login']) && !empty($_POST['login']))&& (isset($_POST['nom']) && !empty($_POST['nom']))&& (isset($_POST['prenom']) && !empty($_POST['prenom'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
      // on teste les deux mots de passe
      if ($_POST['pass'] != $_POST['pass_confirm']) {
         $erreur = 'Les 2 mots de passe sont différents.';
      }
      else {
      $base = mysql_connect ('xxxxxxxxx', 'xxxxxxxx', 'xxxxxxxx');
         mysql_select_db ('xxxxxxxx', $base);

         // on recherche si ce login est déjà utilisé par un autre membre
         $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
         $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
         $data = mysql_fetch_array($req);

         if ($data[0] == 0) {
            $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'","'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

            session_start();
            $_SESSION['login'] = $_POST['login'];
            header('Location: membre.php');
            exit();
         }
         else {
            $erreur = 'Un membre possède déjà ce login.';
         }
      }
   }
   else {
      $erreur = 'Au moins un des champs est vide.';
   }
}
?>
Et ben le problème c'est qu'a chaque fois, j'ai le message :
Au moins un des champs est vide.

Y'a certainement une erreur !!!

Rapporter au modérateur  
Re:creation table
« Répondre #4 sur: le 16-01-2011 a 14:42:02 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Aurais tu le lien vers cette page ?
As tu bien remplis tous les champs ?

Rapporter au modérateur  
Re:creation table
« Répondre #5 sur: le 16-01-2011 a 14:52:37 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

http://www.toovosges.fr/essai/inscription.php
oui oui je rempli bien les 4 champs

Rapporter au modérateur  
Re:creation table
« Répondre #6 sur: le 16-01-2011 a 15:00:10 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Ce qui est bizarre c'est que même avant de soumettre le formulaire il est affiché "Au moins un des champs est vide."
Alors qu'à ce moment là, $_POST['inscription'] n'existe pas.
Il doit y avoir un autre soucis dans ton code.

Rapporter au modérateur  
Re:creation table
« Répondre #7 sur: le 16-01-2011 a 15:01:32 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

ok merci, je vais recommancer

Rapporter au modérateur  
Re:creation table
« Répondre #8 sur: le 18-01-2011 a 21:48:53 »
leaweb
Membre récent
*

Hors-Ligne

Sexe: Male
Messages: 18





Voir le Profil
Répondre avec citation

Bonsoir,

J'ai fait un espace membre avec session mais cela marche pas :

J'ai fait :
formulaire inscription
Code:
<form action="verif.php" method="post">
<b>Pseudo</b> :<input type="text" name="login_user" maxlength="15"><b><br><br>
Mot de passe <font size="1.5">6 caractéres</font> : <input type="password" name="pass_user"maxlength="6">
<input type="submit" name="inscription" value="Inscription">


Fichier verif.php
Code:
<?php
/*
  si les champs de login et de mot de passe ne sont pas vides
  on insère l'utilisateur.
*/
if($_POST["login"] != "" && $_POST["mot_de_passe"] != "")
{
  $login    = $_POST["login"];
  $pass      = md5($_POST["mot_de_passe"]) ;

  //connexion au serveur
  $cnx = mysql_connect ('xxxxxx, 'xxxxxx', 'xxxxxxxx');
         mysql_select_db ('xxxxxxx', $base);


  //création de la requête SQL
  $sql = "INSERT INTO user (login_user, pass_user) VALUES ('".$login."', '".$pass."')"   ;
  //exécution de la requête SQL
  $requete = @mysql_query($sql, $cnx) or die($sql."<br>".mysql_error());

  //si la requête s'est bien passé, on affiche un message de succès
  if($requete)
  {
    echo "L'inscription s'est bien déroulée, <a href=\"index.php\">se connecter</a>" ;
  } //fin if
/*
  sinon on retourne à la page d'inscription
*/
else
{
  header("Location: index.php") ;
}//fin else
?>


Et bien j'ai une erreur, ca marche pas !!!

Avez vous une idée ?

merci d'avance

Rapporter au modérateur  
Re:creation table
« Répondre #9 sur: le 23-01-2011 a 22:53:04 »
Bluely
Membre récent
*

Hors-Ligne

Sexe: Femelle
Messages: 56





Voir le Profil
Répondre avec citation

manque une accolade à la fin du script

Rapporter au modérateur  
Re:creation table
« Répondre #10 sur: le 24-01-2011 a 20:28:11 »
Wolf18
Guru
*****

Hors-Ligne

Sexe: Male
Messages: 1343





Voir le Profil    WWW
Répondre avec citation

Oui, si on décale chaque fois les accolades quand on ouvre un if ou un else c'est justement pour ne pas oublier de les fermer

Avant d'ouvrir ton dernier else tu as oublié de fermer le premier IF

Le mieux quand tu codes pour t'y retrouver c'est soit de mettre des commentaires de partout, soit, chaque fois que tu ouvres un if tu le fermes dans la foulée (avec éventuellement le else derrière). Tu mets les accolades de suite avant le contenu, comme ça t'es sur de ne pas en oublier.

Rapporter au modérateur  

Création de sites internet sur mesure Var (PACA) | Webdesign, découpage/codage, programmation, référencement
Communauté GTA5 francophone
Partageons l'actualité jeux-video
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg