Mücahit adlı üyeden alıntı: mesajı görüntüle
Aleyküm selam, bunu veritabanından yapmak yerine ip adresini php tarafında alıp bunu x isimli sessiona 86400 saniyeliğine kayıt edin. Sonrasında bir if sorgusu ile x isimli session yok ise veritabanına kayıt işlemi yaptırabilirsiniz.
ASametYildirim adlı üyeden alıntı: mesajı görüntüle
Hocam bu işlemi ya mysql ya da php tarafından yapmanız gerekiyor. Mysql'de yapmak için phpmyadmin den şu sql komutu girmeniz gerekiyor:
ALTER TABLE 'tablo_ismi' ADD UNIQUE 'unique_index'('birinci_uniq', 'ikinci_uniq');
Ancak ben @Mücahit; hocama katılıyorum ve bu işlem backend tarafından yapılmasının daha olacağını düşünüyorum. Yalnız session ile değil de veritabanından sorgu şeklinde yapılsa daha iyi olabilir düşüncesindeyim.
  • Önce işlem yapılacak olan tablodan ip ve son güncelleme verisi çekilir
  • Sonra son güncelleme tarihinden bugünün tarihi çıkartılır
  • Eğer aradaki fark 24 saatten yani 1 günden fazlaysa
  • İlgili tabloya kişinin ip adresi atanır ve son güncelleme tarihine bugünün tarihi atanır
Yazmış olduğum kod:
$id = [B]islem_yapilacak_id[/B];
$ip = [B]islem_yapilacak_ip[/B];


$ipbul = $conn->query("SELECT * FROM [B]tablo_ismi[/B] WHERE id='$id'");
$ipbul  = $ipbul  ->fetch(PDO::FETCH_ASSOC);



$buguntarihi= date('d/m/Y H:i:s');

$fark = ($buguntarihi  - $ipbul['songuncellemetarihi']) / 86400;

if(fark>1){ //1 günden yani 24 saatten fazlaysa

try{
$update = $conn->prepare("UPDATE [B]tablo_ismi[/B] SET
  ip=:frm_ip,
  songuncellemetarihi =:frm_songuncellemetarihi
  WHERE id=:frm_id");


                $update = $update->execute(array(
                  "frm_id" =>  $id ,
                  "frm_songuncellemetarihi " =>  $buguntarihi,
                  "frm_ip" =>  $ip
                
                ));
                echo  "Successful";
                header('Location: index.php');
} catch ( PDOException $e ){
     print $e->getMessage();
     echo  "Transaction failed";
}



}
PDO kodları için kendime şöyle bir doküman oluşturmuştum. Belki işinize yarar: https://github.com/asametyildirim/Ph.../tree/main/PDO
Teşekkür ederim deniyorum inşallah yapabilirim