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