接続時間の管理中に問題が発生しました。
実際には、ユーザーがこのエリアに接続できるのは、たとえば月曜日の午前 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\'êtes pas autorisé à vous connecter, revenez '.$jour.' à '.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>';
}
}
}
本当の問題は、正常に動作するコードではありません。唯一の問題は、実際にサーバーの時間を使用していることですが、時間の異なる海外のユーザーがいる場合、どうすれば彼らがログオンできるようにすることができますか?私の国のユーザーと同じ時間にログオンすることはできません.
さらに、彼らのコンピュータの時刻を使用すると、彼らは時計を変更できるようになるため、どうすればよいかわかりません。
どんな種類の助けも大歓迎です。