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 :

calcul de temps passé d'un utilisateur en php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut calcul de temps passé d'un utilisateur en php
    avant tout excuse moi si jamais le mes est envoyé +eurs fois car g envoyé mais aucun signe pour montrer que c envoyé ne s'affiche!

    bonjour
    en fait g le problème que toi, t'as pu résolu.
    je voulais developer un script me permettant de recuperer l'heure de connexion et celle de deconnexion afin de chercher la durée de travail d'un utilisateur dans un site intranet: durée=heure-heuredebut.
    j'ai fait tout ce que je savais ça ne marche pas.

    j'utilise php4, dans windowsxp, avec le navigateur firefox. et j'utilise des sessions.
    j'ai la table des utilisateurs:conges_users(u_login, password........)
    j'ai crée une table conges_users_log(id_log, u_login, date_debut_log, datefin_log)
    j'ai fait ceci, dans la page de session j'ai inseré ceci:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    //connexion mysql
    mysql_connect("localhost", "db_conges", "motdepasse");
    mysql_select_db("db_conges");
    //pour l'heure de connexion
    $sql="INSERT INTO conges_users_log (u_login, date_log, t_log_deb) VALUES ('{$rowUser['id']}', '" . date("Y-m-d") . "', '" . date("H:i:s") ."')";
    mysql_query($sql);
    mysql_close();
    ?>

    dans la page de deconnexion j'ai inseré ceci:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    //connexion mysql
    mysql_connect("localhost", "dbconges", "motdepasse");
    mysql_select_db("db_conges");
    //pour mettre à jour la tps de deconnexion
    $sql="UPDATE $conges_users_log SET t_log_fin='".date("H:i:s")."' WHERE id='".$_SESSION['log_id']."'";
    mysql_query($sql,$link)or die(mysql_error());
    ?>

    mais ça ne me donne que des erreurs.
    peux jeter un coup d'oeil pour m'aider, c'est trés important .
    je te signale que je suis une etudiante aussi debutant en php.

  2. #2
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    Bonjour
    Pourrais tu mettre les erreurs que tu obtiens???
    Merci

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    bonjour à tous vous etes si courageux!

    tu pourais etre un peu claire car moi avec le javascript ça colle pas mais je regarde descours, sur le net et surtout je meurs de la fatigue morale je regrette d'exister.
    ça fait un mois de plus que je cherche et que je ne trouve pas pour ce problème.

    comme vous lesavez avant de faire quoi que ce soit je doit stocket aprés qu'un utilisateur s'est connecté, son nom d'utilisateur(u_login), la date du jour(datejour), son heure de connexion(cotime), son heure de deconnexion(decotime) dans la table conges_users_log(id_log, u_login, dtaejour, cotime, decotime, elapsed(elapsed=decotime-cotime)).

    j'ai fait ce code , j'arrive maintenant à me connectr , il y'a pas des erreurs, mais le code ne stocke rien dans la table conges_users_log.
    ce code je l'ai inseré dansla page de session comme, suit:

    -------------------------------------------------------------
    voilà le code de ma page de session et ce qui est entouré par //-----------sitti //------------sitti , c'est mon code.

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    <?php
     
    //
    // MAIN
    //
     
    /*** initialisation des variables ***/
    $session_username="";
    $session_password="";
    /************************************/
     
    //
    // recup du num  de session (mais on ne sais pas s'il est passé en GET ou POST
    $session=(isset($_GET['session']) ? $_GET['session'] : ((isset($_POST['session'])) ? $_POST['session'] : "") ) ;
    /*******************sitti
    ******************************************/
    $DEBUG=FALSE;
    //$DEBUG=TRUE;
     
    if($DEBUG==TRUE) { print_r($_SESSION); echo "<br><br>\n"; }
     
    if ($session != "")
    {
        if(session_is_valid($session) == TRUE)
        {
            session_update($session);
            //--------------------------------sitti
            if($session=(isset($_GET['session']) ? $_GET['session'] : ((isset($_POST['session'])) ? $_POST['session'] : "")))
            {
            //connexion mysql
            $db = mysql_connect('localhost', 'dbconges','motdepasse') or die('Erreur de connexion '.mysql_error());
            //selection de la base
            mysql_select_db('db_conges', $db) or die('Erreur deselection '.mysql_error());
            //code
            $cotime = time();
            $u_login = "session_username";
            $_SESSION['cotime']="cotime";
            $_SESSION['u_login']="u_login";
            $datejour = date("Y-m-d");
            $sql = "INSERT INTO conges_users_log(u_login,datejour,cotime)";
            //$sql .=
            $sql .="VALUES('$u_login','$cotime','$datejour')";
            }
            //---------------------------------------- sitti
     
        }
        else
        {
            session_delete($session);
            $session="";
            $session_username="";
            $session_password="";
            $_SESSION['config']=init_config_tab();  // on recrée le tableau de config pour l'url du lien
     
            echo "<center>\n";
            echo "Pas de session ouverte<br>\n";
            echo "Veuillez <a href='".$_SESSION['config']['URL_ACCUEIL_CONGES']."/index.php' target='_top'> vous authentifier</a>\n";
            echo "</center>\n";
     
            exit;
        }
    }
    else    //  $session == ""
    {
        if(isset($_POST['session_username'])) { $session_username=$_POST['session_username']; }
        if(isset($_POST['session_password'])) { $session_password=$_POST['session_password']; }
     
        if ( ($_SESSION['config']['how_to_connect_user'] == "CAS") && ($session_username != "admin") )
        {
            $usernameCAS = authentification_passwd_conges_CAS();
            if($usernameCAS != "")
            {
                if(session_id()!="")
                    session_destroy();
     
                // on initialise la nouvelle session
                session_create($usernameCAS);
     
            }
            else //dans ce cas l'utilisateur n'a pas encore été enregistré dans la base de données db_conges
            {
               echo "<center>\n";
               echo "Il n'existe pas de compte correspondant à votre login dans la base de données de PHP_CONGES<br>\n";
               echo "Contactez l'administrateur de php_conges";
               echo "</center>\n";
            }
        }
        else
        {
            if (($session_username == "") || ($session_password == "")) // si login et passwd non saisis
            {
                //  SAISIE LOGIN / PASSWORD :
                session_saisie_user_password("", "", ""); // appel du formulaire d'intentification (login/password)
                exit;
            }
            else
            {
                //  AUTHENTIFICATION :
     
                // le user doit etre authentifié dans la table conges (login + passwd) ou dans le ldap.
                // si on a trouve personne qui correspond au couple user/password
     
                if ( ($_SESSION['config']['how_to_connect_user'] == "ldap") && ($session_username != "admin") )
                {
                    if(session_id()!="")
                        session_destroy();
     
                    if (authentification_ldap_conges($session_username,$session_password) != $session_username)
                    {
                        $session="";
                        $session_username="";
                        $session_password="";
     
                        $erreur="login_passwd_incorrect";
                        session_saisie_user_password($erreur, $session_username, $session_password); // appel du formulaire d'intentification (login/password)
                        exit;
                    }
     
                    if ((authentification_ldap_conges($session_username,$session_password) == $session_username) && ($session_username != ""))
                    {
                        if (valid_ldap_user($session_username)==TRUE) // LDAP ok, on vérifie ici que le compte existe dans la base de données des congés.
                        {
                            // on initialise la nouvelle session
                            session_create($session_username);
                        }
                        else//dans ce cas l'utilisateur n'a pas encore été enregistré dans la base de données db_conges
                        {
                            $erreur="login_non_connu";
                            session_saisie_user_password($erreur, $session_username,$session_password); // appel du formulaire d'intentification (login/password)
                            exit;                             
                        }
                    }
                } // fin du if test avec ldap
                elseif ($_SESSION['config']['how_to_connect_user'] == "dbconges")
                {
                    if(session_id()!="")
                        session_destroy();
     
                    if (autentification_passwd_conges($session_username,$session_password) != $session_username)
                    {
                        $session="";
                        $session_username="";
                        $session_password="";
     
                        $erreur="login_passwd_incorrect";
                        session_saisie_user_password($erreur, $session_username,$session_password); // appel du formulaire d'intentification (login/password)
                        exit;
                    }
     
                    if ((autentification_passwd_conges($session_username,$session_password) == $session_username) && ($session_username != ""))
                    {
                        // on initialise la nouvelle session
                        session_create($session_username);
                    }
                }
            }
        }
     
    }
     
    ?>
    ayez vous unesur l'emplacement , car aucune erreur ne s'affiche je suppose que peut c pas là où je dois placer lecode.
    merci de votre aide.

  4. #4
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    J'ai l'impression que tu utilises mal les variables de session.
    Je te conseille d'aller jeter un coup d'oeil sur ce cours :
    http://php.developpez.com/cours/sessions/

    Si possible utilise les balises CODE pour afficher ton code dans un POST

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

Discussions similaires

  1. Aide pour un script qui calcule le temps passé depuis une date
    Par Mooneer dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/05/2008, 15h23
  2. calcul du temps passé
    Par emulamateur dans le forum VBA Access
    Réponses: 3
    Dernier message: 09/05/2008, 18h19
  3. connaitre le temps passé par l'utilisateur dans une page
    Par mustapha085 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/03/2008, 18h01
  4. Calcul du temps passé dans les procédures ...
    Par Jloox dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/10/2005, 14h31
  5. Calculer le temps passé
    Par Joeleclems dans le forum MFC
    Réponses: 4
    Dernier message: 29/04/2005, 09h40

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