Забрана за определено време

kenwood10

Registered
Здравейте на всички туристи. Имам следният проблем кодът е следният

Код:
?>



<table border="0" cellspacing="2" cellpadding="2" width="100%">

<tr>

<td width="30%" valign="top">



<table border="0" cellspacing="1" cellpadding="1" width="100%">

 <tr>

  <td width="100%" valign="top" style="padding: 1px; font-size: 12px; background: #e7e7e7;" align="center">

<span style="font-size: 14px;"><b>Механик</b></span>

<br/>

<img src="images/maintenance-icon.png" width="150px">

<br/>

Работно време: <b>1 час</b><br/>

Печалба: <b>$300</b><br/><br/>

<center>

<?

$sql = mysql_query("SELECT * FROM work WHERE userid='$urow[id]'");

if(mysql_num_rows($sql)>0)

{

$work = mysql_fetch_array($sql);

$voteend = $work['timeleft']-time();

if($work['price'] == 300) {

echo "<script src=\"clock.js\" type=\"text/javascript\"></script><div id=\"bxx\"></div><script src=\"clock.js\" type=\"text/javascript\"></script><div id=\"bxx\"></div><SCRIPT language=\"JavaScript\">pp='$voteend'; pk='1'; pl='$urow[username]'; ps=''; t(); </script>";

}

}

else

{

?>

<form action="" method="POST">

<input type="hidden" name="worktime" value="3600">

<input type="hidden" name="price" value="300">

<input type="submit" class="btn2" name="gowork" value="започни работа">

</form>

<?

}

?>


Искам да попитам как може да стане това , че примерно когато даден потребител натисне бутона "започни работа" след натискането му въпросният потребител да може да натисне бутона отново след примерно 24 часа.

Дано сте ме разбрали ако може някои да ми помогне ще съм благодарен :)

Това не е целият код от php файла ако Ви трябва кажете ще го постна незнам дали ви трябва целият код или точно определеното!
 
В някаква поле си записваш дата и часа на които е започнал работа (това там където обработваш POST-а). В началото на скрипта четеш това поле за съотвтния потребител и го зареждаш например в $LastVote и след това просто скриваш бутона ако не са минали 24 часа от последното гласуване с нещо такова:

if (strtotime($LastVote)+24*60*60 < time()) {
?>
<form action="" method="POST">
<input type="hidden" name="worktime" value="3600">
<input type="hidden" name="price" value="300">
<input type="submit" class="btn2" name="gowork" value="започни работа">
</form>
<?
}
 
Отново съм аз със смешният въпрос как трябва да го направя това поле което записва датата и часа в базата данни на потребителя и как трябва да форморирам това $lastvote извинявам се за баналните въпроси но както казах съм начинаещ!.....
 
Дай частта от кода, която обработва POST-a на тая форма:
PHP:
<form action="" method="POST">
<input type="hidden" name="worktime" value="3600">
<input type="hidden" name="price" value="300">
<input type="submit" class="btn2" name="gowork" value="започни работа">
</form>
 
Код:
<?

if($_POST['gowork'])

{

$worktime = protect($_POST['worktime']);

$price = protect($_POST['price']);

$timeleft = time()+$worktime;

$insert = mysql_query("INSERT work (userid, price, timeleft) VALUES ('$urow[id]', '$price', '$timeleft')");

}

if($_POST['getprice']) {

$sel = mysql_query("SELECT * FROM work WHERE userid='$urow[id]'");

$r = mysql_fetch_array($sel);

$price = $r['price'];

echo okbox("Вашия работен ден свърши. Вашата печалба е <b>$$price</b>.");

$upd = mysql_query("UPDATE users SET money=money+$price WHERE id='$urow[id]'");

$del = mysql_query("DELETE FROM work WHERE userid='$urow[id]'");

}

?>

:)
 
Първо в таблицата users си добавяш едно поле което кръщаваш lastvote и му даваш тип datetime.
След това добавяш следния ред при обработката на вота:
mysql_query("update users set lastvote=now()");
След това затваряш формата за гласуване в if.

PHP:
<?
if($_POST['gowork'])
{
$worktime = protect($_POST['worktime']);
$price = protect($_POST['price']);
$timeleft = time()+$worktime;
$insert = mysql_query("INSERT work (userid, price, timeleft) VALUES ('$urow[id]', '$price', '$timeleft')");
// update на последния вот
mysql_query("update users set lastvote=now() where id=".$urow['id']);
}

// взимаме последния вот, за да видим дали по-надолу да покажем формата за гласуване
$vote = mysql_query("select lastvote from users where id=".$urow['id']);
$lvote = mysql_fetch_array($vote);
$LastVote = strtotime($lvote['lastvote']);

if($_POST['getprice']) {
$sel = mysql_query("SELECT * FROM work WHERE userid='$urow[id]'");
$r = mysql_fetch_array($sel);
$price = $r['price'];
echo okbox("Вашия работен ден свърши. Вашата печалба е <b>$$price</b>.");
$upd = mysql_query("UPDATE users SET money=money+$price WHERE id='$urow[id]'");
$del = mysql_query("DELETE FROM work WHERE userid='$urow[id]'");
}
?>


PHP:
if ($LastVote+24*60*60 < time()) {
?>
<form action="" method="POST">
<input type="hidden" name="worktime" value="3600">
<input type="hidden" name="price" value="300">
<input type="submit" class="btn2" name="gowork" value="започни работа">
</form>
<?
}
 
Виж error_log - най-вероятно имам някаква синтактична грешка - не съм тествал кода, тъй като не е целия.
 

Back
Горе