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

SQL Procédural MySQL Discussion :

Pb Récupération de l'utilisateur


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut Pb Récupération de l'utilisateur
    Bonjour

    Pour mon application à chaque modification d'une donnée, il faut que le nom de l'utilisateur s'enregistre. Donc déjà comment faisons nous ça ? Et puis l'application sera en réseau donc peut être utilisé simultanément, est ce que ça ne va pas poser problème ?

    J'ai déjà dû mettre en place une base de données avec les utilisateurs, si ça peut aider de mettre un champ à vrai par exemple pour dire que c'est cette personne qui est loggé... Je ne sais pas vraiment pas comment faire, et pourtant j'ai cherché.

    Je développe en php / html pour que l'application fonctionne sous ie6.0

    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    Si l'utilisateur a un compte MySQL, vous pouvez utiliser la fonction USER() pour récupérer l'utilisateur courant.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut
    Non mon utilisateur n'a pas de compte MySQL.

    Pour l'identification, il doit juste entrer son nom d'utilisateur et son profil, c'est vérifié dans la base de données, et l'accès est autorisé ou non.

    J'ai pensé lors de l'identification puisque je fais une recherche dans ma BD pour trouver si l'utilisateur est autorisé à entrer dans l'application, de rentrer ce nom d'utilisateur dans une variable et de m'en servir ensuite dans la création et dans la modification pour enregistrer à chaque fois qu'une personne modifie ou créer un enregistrement de la base de données qu'on sache qui l'a effectué. Mais comment fait on ?

  4. #4
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    il faut que tu utilise une variable de session que tu met a true (si lutilisateur est bon et connecté) ou a false (tu as compri ^^) !! Ceci dans le test après que lutilisateur est saisi son login et son mdp, tu vérifie lexistence ou non de celui-ci, sil est correct tu la met a true, sinon a false !!

    Puis sur les pages a sécurisé, tu teste la variable de session a chaque début de page (grace a session_start -> obligatoirement avant de l'HTML) !!

    Sinon, si tu veux stocker le login, tu crées une otre variable de session login (par exemple) que tu remplis avec ton $_POST[' ... '] de la valeur login de ton formulaire

    Cordialement

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut
    Choueet pseudo ! lol

    Je suis novice sur le développement d'application en réseau, alors merci pour le "session_start" je me renseignerais comme cela fonctionne.
    Pour l'utilisateur je pensais qu'il y aurait eu une fonction plus simple, j'avais pensé à celle-là, en tout cas merci d'avoir confirmer. Je m'y mets de suite.

    Merci !!

  6. #6
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut
    Bon j'ai fait ça, et ça fonctionne évidemment, mais est ce que si plusieurs personnes se connecte à partir de pc différent sur l'application, il ne va pas y avoir plein de 1 dans la BD à cette variable de session et ainsi tout mettre à l'eau ???

    Et je voulais aussi vous demander, comment faire du coup s'il est possible de détecter que l'application a été fermé pour mettre cette variable à nouveau à 0 ? Ou si on peut bloquer la fermeture par la croix de la fenêtre, ou au contraire si on peut détecter cette fermeture ?

    Merci

  7. #7
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Bon j'ai fait ça, et ça fonctionne évidemment, mais est ce que si plusieurs personnes se connecte à partir de pc différent sur l'application, il ne va pas y avoir plein de 1 dans la BD à cette variable de session et ainsi tout mettre à l'eau ???
    Alors, tout d'abord, je me dois de te dire qu'il n'y a aucun rapport entre la BD et les variables de session, ensuite, je pense qu'il n'y aura pas de problème car l'astuce serait de tester non pas une variable de session booleennne mais par exemple le login, qui devrait etre unique. A toi de tester ^^

    Et je voulais aussi vous demander, comment faire du coup s'il est possible de détecter que l'application a été fermé pour mettre cette variable à nouveau à 0 ? Ou si on peut bloquer la fermeture par la croix de la fenêtre, ou au contraire si on peut détecter cette fermeture ?
    Ensuite, une variable de session se termine lors de la fermeture du navigateur, ou de la page ... Cela dépend !! Si tu veux, tu peux fixer un temps pour l'expiration de la variable. Et, tu peux supprimer cette variable lors d'un clic sur un bouton déconnexion par exemple grâce à session_destroy je crois ... Mais regarde un peu ...

    Bonne chance

    N'hésite pas à poser des questions

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    bonjour,
    même si tu gardes ta variable booléenne cela fonctionnera car chaque navigateur a sa propre varaible de session donc chaque utilisateur aura une variable propre ^^.
    voila

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut
    Je suis entrain de mettre en place la variable de session
    Lors de l'identification, voilà le code de traitement :

    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
    <?php
    session_start();
     
    // Connexion
    $lien=mysql_connect(...
    mysql_select_db(...);
     
    //Test connexion
    if ($lien==0)
    {
    	printf("Error of connexion with the server");
    }
     
    //
    $name= $_POST['NameUsr'];
    $profile = $_POST['profile'];
     
    // Request
    $request="SELECT Name FROM user 
    WHERE Name LIKE '$name'
    AND Profile LIKE '$profile'";
     
    $result=mysql_query($request);
     
    $find=mysql_fetch_array($result);
     
    //Test request
    if ($result==0)
    {
    	print("Error of connexion with the query");
    }
     
    // Il the request find a result or not
    if ($find==null) 
    {
    	include"IdentificationError.php";
    }
    else
    {
    	$_SESSION['Name'] = "$name";
    	echo $_SESSION['Name'];
    	$_SESSION['Profile'] = '$profile';
    	include"Search.php";
    }
    ?>
    Puis il y a le code qui lors de la création doit récupérer le nom de la session $_SESSION['Name'] = "$name" seulement je n'y arrive pas. Je pense que c'est parce que je ne sais pas passer les variables.
    Mais voilà le code du traitement de la création :

    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <html>
    <body>
    <?php
     
    // Connexion
    $lien=mysql_connect(...);
    mysql_select_db(...);
     
    //Test connexion
    if ($lien==0)
    {
    	printf("Error of connexion with the server");
    }
     
    //Recovery of the data
    $CompName= $_POST['CompName'];
    $IncNb = $_POST['IncNb'];
    $DateRec = $_POST['Date'];
    $Desc = $_POST['Description'];
    $Los = $_POST['Los'];
    $Natco = $_POST['Natco'];
    //To grant rights
    //if ($Profile==TSI && ( $Los==Other || $Los==RM))
    //{
    //	exit("You are not authorised to create complaints with a Other or RM LOS because you have a TSI profile");
    //}
     
     
    //Verification of the capture of all the fields
    if ($CompName=="" || $IncNb=="" ||$DateRec=="" || $Desc=="" || $Los=="" || $Natco=="")
    {
    	echo"You did not inform all the fields"; 
    }
    else
    {
    	$request1="SELECT MAX(Complaint_number) FROM  complaint";
    	$result=mysql_query($request1);
    	if ($result==0)
    	{
    		$NbC=0000;
    	}
    	else
    	{
    		$row=mysql_fetch_row($result);
    		$NbC=$row[0]+1;
    	}
     
    	//Recovery of modification date & time
    	$CurrentYear=Date("Y");
    	$CurrentMonth=Date("m");
    	$CurrentDay=Date("j");
    	$CurrentHour=Date("H");
    	$CurrentMinute=Date("i");
    	$CurrentSecond=Date("s");
    	$CurrentDate=$CurrentYear."-".$CurrentMonth."-".$CurrentDay;
    	$CurrentTime=$CurrentHour.":".$CurrentMinute.":".$CurrentSecond;
     
    	//Request
    	//Complaint creation
    	echo $_SESSION['Name'];
    	$request2="INSERT INTO complaint (Complaint_reception_date, Description, Incident_Request_number, Natco, LOS, 	Complainant_name, Recording_date, Recording_time, Complaint_year, Complaint_number, Status) VALUES ('$DateRec','$Desc','$IncNb','$Natco','$Los','$CompName','$CurrentDate','$CurrentTime','$CurrentYear','$NbC','Opened')";
    	$result2=mysql_query($request2);
    	if($result2==0)
    	{
    		echo"You could not record this complaint";
    	}
    	else
    	{
    		echo"You have just created the complaint number: $NbC-$CurrentYear";
    	}
    }
     
     
    ?>
    </body>
    </html>
    Voilà dans le traitement de la création il y a une echo $_SESSION et ça plante :
    Notice: Undefined variable: _SESSION in c:\home\easyphp1-8\www\treatcreate.php on line 60

    Donc je pense que c'est parce que j'ai un problème de passage de variable

  10. #10
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    A partir du moment ou tu utilise une variable de session, tu dois l'inclure avec session_start() ! ca viens de là ton erreur , inclus le

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 177
    Par défaut
    Ca fonctionne, c'est trop bien merci !!

  12. #12
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Je t'en prie !! Nous sommes là pour ça

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

Discussions similaires

  1. Récupération de l'utilisateur courant
    Par zooffy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 04/04/2008, 12h56
  2. Réponses: 7
    Dernier message: 19/03/2008, 15h50
  3. Récupération de l'utilisateur connecté
    Par JauB dans le forum AS/400
    Réponses: 9
    Dernier message: 19/03/2008, 09h07
  4. Récupération des droits utilisateur
    Par albanhig dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/05/2007, 17h10
  5. récupération de l'utilisateur du poste
    Par guitoo dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/02/2007, 15h29

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