2014-09-19 4 views
0

У меня есть две кнопки (вход и выход). Когда logout активен, если пользователь снова нажимает кнопку выхода из системы, то не следует вставлять или обновлять. То же самое для кнопки входа.Остановить вставку, если пользователь нажимает на активную кнопку

Теперь он вставляет, когда пользователь нажимает на активную кнопку. Мне нужно это избежать.

Заранее спасибо.

Код:

<script> 
function insertDateTime(obj, id) 
{ 
$("[id^='"+obj.id+"']").css('background', '#FFFFFF').css('font-weight', 'normal').css('font-size', '14px').css('color', 'grey'); 
$(obj).css('background', '#D4B357').css('font-weight', 'bold').css('font-size', '15px').css('color', 'black'); 

if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} else { // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

var params = "id="+id; 

xmlhttp.open("POST","insertdate.php",true); 

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
/* xmlhttp.setRequestHeader("Content-length", params.length); 
xmlhttp.setRequestHeader("Connection", "close");*/ 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     //alert(xmlhttp.responseText); 
    } 
}   
xmlhttp.send(params); 
} 
</script> 

getuser.php

<table> 
<tr> 
    <td> 
     <button id="btnSave" <?php if($entry=='1'){?> style=" background:#D4B357; font-weight:bold; font-size:15px; color:black;outline:0px;"<?php }?> onclick="insertDateTime(this,'<?php echo $q;?>');"> Login</button> 
    </td> 
    <td> 
     <button id="btnSave" <?php if($entry=='0'){?> style=" background:#D4B357; font-weight:bold; font-size:15px;color:black;outline:0px;"<?php }?> onclick="insertDateTime(this,'<?php echo $q;?>');"> Logout</button> 
    </td> 
</tr> 
</table> 

insertdate.php date_default_timezone_set ("Asia/Калькутта"); $ дата = дата («Ymd», время());?>

<?php $time=date("H:i:s",time()); 
include_once "database.php"; 
$q = $_POST['id']; 

$sql_check="select * from entries where user_id='$q' order by id desc";/*last row*/ 
$res_check=mysql_query($sql_check); 
$row=mysql_fetch_array($res_check); 
$logout_date=$row['logout_date']; 
$num=mysql_num_rows($res_check); 
$id=$row['id']; 

if($logout_date != "" || $num=='0'){ 
$sql1="insert into entries(user_id,login_date,login_time,logout_date,logout_time)values('$q','$date','$time','','')"; 
$res1=mysql_query($sql1); 
$sql="update users set entry='1' where id='$q'"; 
$res=mysql_query($sql); 
} 
else{ 
$sql="update entries set logout_date='$date', logout_time='$time' where id='$id'"; 
$res=mysql_query($sql); 
$sql1="update users set entry='0' where id='$q'"; 
$res1=mysql_query($sql1); 
} 
+1

** Danger **: вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (http: // php.net/manual/en/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

Кто-нибудь, пожалуйста, помогите – user2372469

ответ

0

Вы можете остановить пользователя от нажатия кнопки второй и раз подряд, отключив кнопки после первого щелчка, используя простой JavaScript код.

Как только действие будет завершено, вы можете включить кнопку назад (или скрыть ее, как и для входа/выхода).

+0

Привет, Даниэль, спасибо за ответ. Я плохо разбираюсь в Javascript. Это будет очень полезно, если вы можете предоставить мне код для этого. – user2372469

Смежные вопросы