0

我在管理数小时的连接时遇到了一些麻烦。

实际上,我只允许我的用户在几个小时和几天内连接到该区域,例如周一上午 9 点到下午 6 点。为此,我已经在数据库中注册了日期以及他们被授权登录的时间。

该脚本检查所有这些详细信息,如果现在是用户可以登录的好时机,如果不是,它会显示一条带有好时间和小时数的消息。

下面是我的代码:

if (isset($_POST['connexion_x'])) { 
   if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 

 $mysql_host = "localhost";
$mysql_database = "users";
$mysql_user = "root";
$mysql_password = "";
      $base = mysql_connect ('localhost', 'root', ''); 
      mysql_select_db ('users', $base); 

       $sql='SELECT login, pass_md5, depart, fin, j1, j2, j3, j4, j5, j6, j0 FROM `gestionnaire` WHERE `login`="'.mysql_real_escape_string($_POST['pseudo']).'"';
     $req=mysql_query($sql) or die;
     $data=mysql_fetch_assoc($req); 

      // si on obtient une réponse, alors l'utilisateur est un membre
      if ($data['login']==$_POST['pseudo'] AND md5($_POST['pass'])==$data['pass_md5']) { 
    $today_depart = strtotime(date('Y-m-d ').$data['depart']);
   $today_fin = strtotime(date('Y-m-d ').$data['fin']);
   $time = time();
   $i = date('w');
   if($data['j'.$i.'']==0)
   { $jour= "demain" ;}
   if($data['j'.$i.'']==1)
   { $jour= "aujourd'hui" ;}
        if( $time > $today_depart AND  $time < $today_fin AND $data['j'.date('w').'']='1'){

         session_start(); 
         $sql="INSERT INTO `session` SET
`temps` = now(),
`login`='".$data['login']."',
`mouvement`='1'";  
mysql_query($sql) or die;

          $_SESSION['id'] = $data['id']  ;
          $users['id'] = $_SESSION['id'] ;
          $_SESSION['login'] = $data['login'];
         header('Location: GESTION/index.php'); 
         exit(); 
      } 
      else
        {;

             $erreur = '<font color=red>Vous n\'&ecirc;tes pas autoris&eacute; &agrave; vous connecter, revenez '.$jour.' &agrave; '.date('H', strtotime($data['depart'])).' h '.date('i', strtotime($data['depart'])).'.</font>'; 
        }



    }
      // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
      elseif ( md5($_POST['pass'])!=$data['pass_md5']) { 
         $erreur = '<font color=red>Compte non reconnu.</font>'; 
      } 
      // sinon, alors la, il y a un gros problème :)
      else { 
         $erreur = '<font color=red>Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.</font>'; 
      } 
   } 
   else { 
      $erreur = '<font color=red>Au moins un des champs est vide.</font>'; 
   }  
}  
}

真正的麻烦不在于该代码可以正常工作。唯一的问题是我实际上使用服务器的时间但是如果我有一些海外用户的时间不同,我怎样才能让他们登录,他们不能与我国家的用户同时登录.

而且如果我用他们电脑的时间,他们就可以改变他们的时钟,所以我真的不知道该怎么做。

任何帮助将不胜感激。

4

0 回答 0