1286 gün önce Post işleminde açık nerede sürekli hack yiyorum
sorusunu cevapladı.
Şöyle bir sorun var, 24 saatte bir tıklamasını istiyorsunuz ama bunu kontrol edecek kod yok. En son alınan puanın ne zaman alındığını kontrol ettirmek gerekiyor.
function guvenlikKapisi($data)
{
return htmlspecialchars($data);
}
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['tip'])) {
$_POST = array_map('guvenlikKapisi', $_POST);
if ($_POST['tip'] == 'hediye') {
if (isset($_SESSION['oturum']) && $_SESSION['oturum']) {
$user_id = $_SESSION['oturum'];
$result = $db->prepare("select * from uyeler where id=:id");
$result->bindParam(':id', $user_id, PDO::PARAM_INT);
$result->execute();
$kontrol = $result->fetch(PDO::FETCH_ASSOC);
$userCount = $result->rowCount();
$saat = date('Y-m-d H:i:s');
$bitis = $kontrol['hediyetarih'];
if($saat > $bitis) {
if ((int)$userCount > 0) {
$bitis = date('Y-m-d H:i:s', strtotime('+24 hours'));
$user_id = $_SESSION['sess_user_id'];
$guncelle = $db->prepare("UPDATE uyeler SET bakiye=bakiye+:hediyelik,hediye=1,hediyetarih=:hediyetarih where id=:id");
$guncelle->bindParam(':hediyelik', $hediyelik, PDO::PARAM_INT);
$guncelle->bindParam(':hediyetarih', $bitis, PDO::PARAM_INT);
$guncelle->bindParam(':id', $user_id, PDO::PARAM_INT);
$guncelle->execute();
echo 'ok';
return;
}
}
} else {
echo 'oturum';
return;
}
}
}
Bu kodu dener misiniz ?