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 = islem_yapilacak_id;
$ip = islem_yapilacak_ip;
$ipbul = $conn->query("SELECT * FROM tablo_ismi 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 tablo_ismi 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
Yukarıdaki kodlarda aşağıda bulunan yerleri sizin doldurmanız gerekiyor. Ayrıca veritabanınız da songuncellemetarihi adında satır olması gerekiyor.
- tablo_ismi
- birinci_uniq
- ikinci_uniq
- tablo_ismi
- islem_yapilacak_id
- islem_yapilacak_ip