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

Langage PHP Discussion :

Identification d'un client


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Identification d'un client
    Bonjour tout le monde,

    Je réalise un site web en PHP orienté objet avec comme SGBD MySql.

    Mon problème est le suivant :
    Lorsqu'un client s'identifie, il devrait voir apparaitre des bouton tel que "Deconnexion", "MonCompte" mais je sais pas pourquoi, cela ne fonctionne pas.

    Voici le code de ma vue :
    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
    <form name="identification" method="POST" action="Controles/C_identification.php">
    	<table>
    		<tr>
    			<td><h6>Partie client</h6></td>
    			<td><div class="Liens"><a href="index.php?action=CreationClient">S'inscrire?</a></div></td>
    		</tr>
    		<tr>
    			<td>Nom client</td>
    			<td>
    				<div class="Clt">
    					<input type="text" name="Name"/>
    				</div>
    			</td>
    		</tr>
    		<tr>
    			<td>Email</td>
    			<td>
    				<div class="Clt">
    					<input type="text" name="email"/>
    				</div>
    			</td>
    		</tr>
    		<tr>
    			<td>Mot de passe</td>
    			<td>
    				<div class="Clt">
    					<input type="password" name="password"/>
    				</div>
    			</td>
    		</tr>
    		<tr>
    			<td></td>
    			<td>
    				<div class="Clt">
    					<input type="submit" name="envoyer" value="Envoyer" />
    				</div>
    			</td>
    		</tr>
    	</table>
    </form>
    Voici le code du controle :
    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
    42
    43
    44
    45
    46
    47
    <?php
    	require_once("../Les_utilitaires/connexion.php");
    	require_once("../Les_classes/class_client.php");
    	require_once("../Les_DAO/DAO_client.php");
     
    	session_start();
     
    	$nom=$_POST['Name'];
    	$mail=$_POST['email'];
    	$mdp=$_POST['password'];
     
     
    	if (($nom=="")||($mail=="")||($mdp==""))
    	{
    		?>
    			<script language="JavaScript">
    				alert('Veuillez saisir votre nom, mail et votre mot de passe');
    				document.location.href='../Index.php?action=identification';
    			</script>
    		<?php
    	}
    	else
    	{	
    		$DaoClient=DAO_Client::retournerId($nom,$mail);
    		if ($mdp==DAO_Client::retournerMdP($DaoClient))
    		{
    			echo "1";
    			setcookie("moto_28", $DaoClient, mktime(0, 0, 0, 1, 1, 2009),"/");
    			?>
    			 <script language="javascript">
    				document.location.href='../Index.php';
    			</script>
    			<?php
    		}
    		else
    		{
    			?>
    		     	<script language="JavaScript">
    					alert('Soit votre nom où votre adresse mail où votre mot de passe est faux!!');
    					document.location.href='../Index.php?action=identification';
    				</script>
    			<?php
    		}		
    	}
    //	$req="UPDATE client SET  Cl_DateDerniereConnexion  = NOW() WHERE Cl_MOTPASSE ='". $mdp ."' AND Cl_NOM = '".$nom."' AND Cl_MAIL ='". $mail."'";
    //	$res=mysql_query($req);
    ?>
    Je pense que le problème provient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    				document.location.href='../Index.php';
    			</script>
    et/ou peut être que le cookie ne se créer pas??

    A savoir que le fichier Index.php se situe directement sur la racine.

    D'aprés vous pourquoi cela ne fonctionne t'il plus??

    Cordialement!!

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    En gros, tu veut que sur ton site, en cas de membre non connecté, il y est marquer "Connexion" est si le membre est connecter sa affiche "Déconnexion" "Mon compte" ?

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Moxostoma
    En gros, tu veut que sur ton site, en cas de membre non connecté, il y est marquer "Connexion" est si le membre est connecter sa affiche "Déconnexion" "Mon compte" ?
    Voila tout à fais.
    Le truc c'est que cela fonctionné il y a quelque temps (avant les vacances.) mais depuis ben lorsqu'un client s'identifie, il y ajuste marqué "Connexion".

    J'ai vérifié le setCookie en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo(setcookie("moto_28", $DaoClient, mktime(0, 0, 0, 1, 1, 2009),"/"));
    et cela m'affiche 1.
    Mais dans ma vue d'accueil, le curseur ne rentre pas dans le si, il va directement dans le else comme si le cookie n'étais pas créé. :
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    // V_index.php correspondant à ma page d'accueil
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Soci&eacute;t&eacute; Moto_28</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link href="CSS/FeuilleCSS.css" rel="stylesheet" type="text/css" />
     
    <!--script permettant d'ajouter la fenêtre 'ajouter aux favoris'-->
    	<script LANGUAGE="JavaScript">
    	<!--//BEGIN Script
    	function favoris()
    	{
    		browserName = navigator.appName;
    		browserVer = parseInt(navigator.appVersion);
    		if (navigator.appName == "Microsoft Internet Explorer") 
    		{
    			window.external.AddFavorite('http://localhost/Moto_28(nouveau)//', 'Societe Moto_28');
    		}
    		else
    		{
    			window.sidebar.addPanel("Societe Moto_28","http://localhost/Moto_28(nouveau)","");
    		}
    	} 
    	//--></script>
    </head>
    <body>
    <div id="header">
    	<div id="logo">
    		<h2><a href="http://www.freecsstemplates.org/">By Free CSS Templates</a></h2>
    	</div>
    	<div id="menu">
    		<ul>
    			<li class="active"><a href="index.php?">Accueil</a></li>
    			<li><a href="javascript:favoris()">Ajouter aux Favoris</a></li>
    			<li><a href="Index.php?action=MotoNeuve">Moto Neuve</a></li>
    			<li><a href="Index.php?action=MotoOccassion">Moto d'occassion</a></li>
    			<li><a href="Index.php?action=CreationClient">Inscription</a></li>
    			<li><a href="Index.php?action=panier">Mon panier</a></li>
    			<?php if(isset($_COOKIE["moto_28"]))
    			{
    			?>
    				<a href="Controles/C_Deconnexion.php">D&eacute;connexion</a>
    				<a href="Index.php?action=MonCompte">Mon Compte</a>
    			<?php
    			}
    			else
    			{
    			?>
    				<a href="Index.php?action=identification">Connexion</a>
    			<?php
    			}
    			?>
    		</ul>
    	</div>
    </div>
    .......................
    Quelqu'un peut-il m'aider s'il vous plais??

    Cordialement!!

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Je pense que le problème provient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script language="javascript">
    				document.location.href='../Index.php';
    			</script>
    Salut,

    Ca se pourrait bien. Et quelle est le but de ce script ?
    J'ai l'impression que tu essaies de reproduire le fonctionnement de header
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: ../index.php');
    serait à priori plus approprié.
    Un petit tour en FAQ pour en savoir plus : http://php.developpez.com/faq/?page=...pts_entetehttp

    Et puisque la base de donnée à l'air hors de cause, je déplace le sujet.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à jml94
    Et quelle est le but de ce script ?
    Son but c'est que lorsque le client s'est identifié, le programme fait appel à Index.php :
    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
    <?php	
     
    	// La connexion à la base de données
    	require_once("Les_utilitaires/Connexion.php");
     
    	// La classe collection
    	require_once("Les_utilitaires/collection.php");
     
    	// Classes
    	require_once("Les_classes/class_article.php");
    	require_once("Les_classes/class_categorie.php");
    	require_once("Les_classes/class_client.php");
    	require_once("Les_classes/class_commande.php");
    	require_once("Les_classes/class_ligneCommande.php");
     
    	// DAO
    	require_once("Les_DAO/DAO_article.php");
    	require_once("Les_DAO/DAO_categorie.php");
    	require_once("Les_DAO/DAO_client.php");
    	require_once("Les_DAO/DAO_commande.php");
    	require_once("Les_DAO/DAO_ligneCommande.php");
     
    	session_start(); //Permet de créer une session 
     
    	// Le gabarit
    	require_once("Vues/V_index.php");
     
    	// La deconnexion à al base de données
    	require_once("Les_utilitaires/Deconnexion.php");
     
    ?>
    pour ensuite arriver à ma vue de page d'accueil et donc obtenir les liens "Deconnexion" et "MonCompte".

    J'ai l'impression que tu essaies de reproduire le fonctionnement de header
    J'ai donc essayé avec header ce qui me donne la chose suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('location: ../Index.php');
    Voici la structure de mon dossier :
    Moto_28
    |
    |-Index.php
    |-Les Controles
    .....
    Donc est-ce que je me suis trompé dans le header??
    Puis est-ce que le problème pourrait pas venir d'un problème de cookie qui ne se créerai pas??

    Cordialement!!

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour tout le monde,

    voila cela fais déja quelque temps que je cherche mais je trouve vraiment pas d'ou provient l'erreur.

    RECAPITULATION du problème : en cas de membre non connecté, il y est marquer "Connexion" est si le membre est connecter sa affiche "Déconnexion" "Mon compte"

    Je me demande si l'erreur provient pas du cookie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("moto_28", $DaoClient, mktime(0, 0, 0, 1, 1, 2009),"/")
    Pour vous cette ligne est-elle correcte??

    J'ai vraiment besoin de vos lumières!!

    Merci d'avance!!

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut problème résolu
    Bonjour,

    j'ai réussit à trouver comment résoudre ce problème, tout simplement le problème venait effectivement du setcookie.

    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("moto_28", $DaoClient, mktime(0, 0, 0, 1, 1, 2009),"/")
    fallait que je fasse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setcookie("moto_28", $DaoClient, mktime("3600"),"/")
    merci à tous pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Identification d'un client mobile par son ip
    Par ipmobile dans le forum Administration
    Réponses: 10
    Dernier message: 26/04/2015, 21h19
  2. [PHP 5.4] Identification d'un client à travers un web service REST
    Par Rohan21 dans le forum Langage
    Réponses: 0
    Dernier message: 19/08/2013, 00h53
  3. Réponses: 3
    Dernier message: 29/08/2007, 20h50
  4. Gestion et identification client
    Par Odcfrombelgium dans le forum Autres Logiciels
    Réponses: 21
    Dernier message: 27/09/2006, 12h44
  5. [Client oracle] Identification de la version client
    Par Toulzac dans le forum Oracle
    Réponses: 4
    Dernier message: 18/11/2005, 14h34

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