2014-09-19 3 views
0

두 개의 버튼 (로그인 및 로그 아웃)이 있습니다. 로그 아웃이 활성화 된 상태에서 사용자가 로그 아웃 버튼을 다시 클릭하면 삽입 또는 업데이트를해서는 안됩니다. 로그인 버튼도 마찬가지입니다.사용자가 활성 버튼을 클릭하면 삽입 중지

사용자가 활성 버튼을 클릭하면 삽입됩니다. 나는 그것을 피할 필요가있다.

미리 감사드립니다.

코드 :

<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> 

date_default_timezone_set ("아시아/콜카타") insertdate.php; $ 날짜 = 날짜 ("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

위험 ** ** [** 기존 ** 데이터베이스 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

당신은 간단한 자바 스크립트를 사용하여 첫 번째 클릭 후 버튼을 비활성화하여 두 번째 버튼을 클릭에서 사용자를 중지하고 회 연속 수 암호.

작업이 완료되면 버튼을 다시 사용하도록 설정하거나 로그인/로그 아웃과 마찬가지로 버튼을 숨길 수 있습니다.

+0

안녕 다니엘, 답장을 보내 주셔서 감사합니다. Javascript가 좋지 않아. 당신이 저에게 코드를 제공 할 수 있다면 매우 도움이 될 것입니다. – user2372469

관련 문제