IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

script de login recuperer des informations sur plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut script de login recuperer des informations sur plusieurs tables
    Bonjour tout le monde,

    J'fait un script login masi j'ai des soucis car je dois tester choses avant d'aller chercher des informations dans plusieurs tables.

    Pour etre plus claire l'inscription sur mon site se fait en plusieurs etapes.

    1 - Je crée mon compte avec : nom, prenom, login, mail et mot de passe.
    j enregistre tout ca dasn table_1 et j'envois un mail pour que le client confirme son inscription. (tout ca fonctionne sans probleme)

    2 - Le client revient sur une page "choix" ou il doit choisir son metier ex (condidat ou employeur) selion le choix il est dirigé vers un formulaire de login (pour ouvrir une session sur l id et l email) ensuite il redirigé vers un autre formulaire pour completer son inscription ou la j'enregistre les données dans une autre table qui defini selon son statut choisi dans ce dernier formulaire (ex si je suis condidat je peut etre ingenieur chanteur ou ouvrier...) j'enregistre aussi l'id et email de la session(cela fonctionne aussi )

    3 - et c est la que ca devient compliqué pour la petite tête
    Si le client à fait tout ce qu il fallait au début. Il revient sur le site et se log.
    La je test le login et le passe ils sont bon.
    j aimerai tester les autres tables pour retrouver l email et l'id afin de pouvoir retrouve son statut et donc ouvrir la bonne table.

    Ensuite selon qu il est complété le formulaire Après la page choix (pour définir son statut) ou pas on ouvre la session ou on le redirige vers choix

    En réalité j'ai fais ca de la manière qui me semble le plus logique SELON MOI et c est pas gagné.

    Est ce que quelqu unS lol pourrait valider mon code car la c'est embrouille dans ma petite tête je ne sais plus trop ou j'en suis.

    Voici le code concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    if ($nom_utilisateur && $pass)
    	{ // si tout est OK
    		$rq = "SELECT id, email FROM members WHERE nom_utilisateur = '$nom_utilisateur' AND pass='".md5($pass)."'";
    		$result = @mysql_query ($rq);
    		$ligne = mysql_fetch_array ($result, MYSQL_NUM);
     
    		if (mysql_num_rows ($result) == 1) 
    			{
    				$rq = "SELECT id_utilisateur, email, statut FROM * WHERE id_utilisateur = '$ligne[id]' AND email = '$email'";
    				$result1 = @mysql_query ($rq);
    				$ligne1 = mysql_fetch_array ($result1, MYSQL_NUM);
     
    				if (mysql_num_rows ($result1) == 0) 
    					{
    						echo "Vous avez bien confirm&eacute; votre inscription par mail, Mais vous n'avez pas encore ouvert cr&egrave;e votre CVIEW. <br/>
    						<a href='index.php?page=choix'>Pour cela il cliquez ici</a>";
    					}
    			}
     
    		if ($ligne)
    		{// si on trouve on ouvre une session
    			$_SESSION['email'] = $ligne[1];
    			$_SESSION['id_utilisateur'] = $ligne[0];
     
     
    			ob_end_clean();
    			header ("Location: index.php?page=accueilartiste&".$_SESSION['id_utilisateur']."&".$_SESSION['email']);
    			exit();
    		}
    		else
    		{
    			echo "Le nom d'utilisateur ou le mot de passe n'existe pas. J'ai perdu mon mot passe";
    		}
    		mysql_close();
    	}
    	else
    	{
    		echo "Une erreur est survenue. Merci de recommencer";
    	}
    }

    Merci d'avance de votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Comme tu t'en rends compte, ta structure de base de donnée n'est pas viable : tout les utilisateurs doivent être dans la même table.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Salut,

    C'est cool de me répondre aussi vite.
    Tu veux dire qu il soit chanteur ou employeur ou mecano tous doivent etre mélange dans la même table

    Il y a un truc que je ne comprends pas du coup. les employeur n'ont pas le même formulaire comment gérer ça

    Je ne comprends plus rien en réalité ca fait 2 jours non stop sur ce problème.

    Pourrais tu me donner plsu de détails s'il te plait

  4. #4
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par hichoum Voir le message
    Salut,
    Bonjour,

    tu ne semble pas avoir envie de suivre Sabotage

    Et pourtant tout ça mérite une table enfantine ...

    il te faut une table avec

    nom
    prenom
    login (pseudo ?)
    mail
    mot de passe
    nature ou tu aura candidat OU employeur OU ..
    situation ou tu aura ingenieur OU chanteur OU ouvrier...
    validation O/N


    Voila ça suffit !

    par ailleur je te rappelles que l'ID de session dure environ 20 minutes (moyenne des serveurs) donc demain il ouvrira une nouvelle session)
    donc pas dans MYSQL !! ça sert a rien !

    donc tu contôle la session ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?PHP
    session_start();
    if (!isset($_SESSION['COK']))   {$_SESSION['COK']="non";$COK="non";}
         else {$COK=$_SESSION['COK'];}
     
    if ($COK=="OK") { //========= il est dejas logue }
       else {//============login==========}
     
    //============= quand le login est bon ilsuffit d'écrire
    $_SESSION['COK']="OK";$COK="OK";
    bien sur on eput mémoriser avec un cookies !

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    J'ai une petite question.
    Au lieu de refaire la page d'inscription je pourrais peut être les laisser choisir après la confirmation du mail et faire un update de la table.

    Ca doit etre possible au moment ou il se connecte pour la première fois il choisi son statut et en meme temps que j'ouvre la session j'update la table

    Je dis ca j'aimerai ne plus toucher au script d'inscription

    Merci pour linfo concernant les sessions je vais mettre ca en place dés que j'aurais fini cette partie

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par hichoum Voir le message
    J'ai une petite question.
    Au lieu de refaire la page d'inscription je pourrais peut être les laisser choisir après la confirmation du mail et faire un update de la table.
    Je ne sais pas quel conseil te sera donné, mais si tu ne veux pas tout réécrire, tu peux peut'étre regrouper et réorganiser uniquement Mysql

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Voila ce que j'ai fais

    quand le client suit le mail de confirmation.
    Il arrive sur la page choix ou la il se logue et en meme temps il choisi sont statut employé ou employeur

    et j'update la table
    Ca fonctionne tres bien

    Mais je recontre un autre probleme tout simple je pense.

    quand je vais pour me loguer je recupere le champs statut et je redirige le client vers son compte selon celui ci.

    MAIS j y arrive pas voila l'erreur que j'ai :

    Notice: Undefined index: statut in /Applications/MAMP/bin/mamp/iboulot/login/login.php on line 43

    Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/bin/mamp/boulot/login/login.php:43) in /Applications/MAMP/bin/mamp/boulot/login/login.php on line 43
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    if ($nom_utilisateur && $pass)
    	{ // si tout est OK
    		$rq = "SELECT id, email, statut FROM members WHERE nom_utilisateur = '$nom_utilisateur' AND pass='".md5($pass)."'";
    		$result = @mysql_query ($rq);
    		$ligne = mysql_fetch_array ($result, MYSQL_NUM);
     
    		if ($ligne)
    		{// si on trouve on ouvre une session
    			$_SESSION['email'] = $ligne[1];
    			$_SESSION['id'] = $ligne[0];
     
     
    			ob_end_clean();
    					header ("Location: http://www.domaine.com/index.php?page=".$_POST['statut']."&".$_SESSION['email']."&".$_SESSION['id']);
    					exit();
    		}
    		else
    		{
    			echo "Le nom d'utilisateur ou le mot de passe n'existe pas. J'ai perdu mon mot passe";
    		}
    		mysql_close();
    	}
    	else
    	{
    		echo "Une erreur est survenue. Merci de recommencer";
    	}
    }
    je ne declarre pas statut mais franchement j yarrive pas Merci de m aider encore une fois

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/07/2012, 15h57
  2. Ajouter des informations sur plusieurs tables
    Par nana 69 dans le forum IHM
    Réponses: 6
    Dernier message: 08/07/2008, 10h39
  3. Réponses: 8
    Dernier message: 13/07/2006, 01h17
  4. Réponses: 4
    Dernier message: 08/07/2006, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo