@pcmemo doğru düşünmüşsün, kimliği doğrulanmamış kullanıcı da cookie kullanmalısın. Tek bir cookie oluşturman yetecektir. Veritabanı kısmında userid yerine cookie yazdıracaksın tabii böyle olursa user id kısmı null olacak userid yazdırdığında ise cookie boş olabilir veya ikisini de yazdırabilirsin, işin içine kullanıcı ip'sini de sokabilir misin bilemiyorum. Şu anda sistemi tam kafamda oturtamadım. Kimliği doğrulanmamış
cookie'sinden gelen bilgi ile veritabanından sorgu yaparsan, sonuca ulaşırsın gibime geliyor.
Sorununa veritabanınıda eklemelisin yoksa çözemezsin, tarayıcılar belli sayıda cookie tutarlar.
Mysql tarafında:
SELECT DATE_FORMAT("2020-03-06 22:18:00", "%d.%m.%Y") as f_date
Python için:
https://github.com/yogurt-cultures/kefir
Çok teşekkür ederim. Nokta atışı bir cevap olmuş. Siteyi inceledim harika.
Kodları github üzerinden halledebilirsin. Localden github'a, github'dan üç sunucuya çekersin, veritabanı için ise migrasyon sistemi yapman lazım, şu anda tüm modern frameworkler bu sistemi kullanıyor. Oradan örnek alabilirsin. Bunları elle hızlı bir biçimde yapabilirsin. Sunucuyla otomatik yapmak istersen crontab kullanarak yapabilirsin. Bence elle yapılması en temizi.
Kodların resmi:
https://prnt.sc/r6lco3
Sonsuz döngü kur, eğer veritabanında yoksa code, döngüyü sonlandır. Şu yazdığım örneği inceleyebilirsin.
<?php
$r = range(0, 100, 2); // [0, 2, 4, 6, ..., 100] Çift Sayılar
$code = null;
// Kodumuzun tek bir sayı olmasını istiyoruz.
while(1) { // Sonsuz döngü
$code = rand(0, 100); // Rastgele Sayı
if(!in_array($code, $r)) { // Eğer $code $r arrayinin içerisinde yoksa döngüyü bitir.
break;
}
else { // Eğer $code $r arrayinin içerisindeyse döngüye devam.
echo $code." bu kod çift olduğu için döngüye devam. <br/>";
}
}
echo "Kodunuz hazır: ".$code;
@redline
hashids kütüphanesini kullanabilirsin.
https://github.com/vinkla/hashids
Örnek:
<?php
require_once('vendor/autoload.php');
use HashidsHashids;
$salt = 'site_salt_anahtari_degistir';
$length = 6;
$id = 1923;
$hashids = new Hashids($salt, $length);
/
Alternatif
Key için özel harflerde seçebiliriz, hepsi küçük harf olacaktır.
$hashids = new Hashids($salt, 6, 'abcdefghijklmnopqrstuvwxyz');
/
$hash = $hashids->encode($id);
echo $hash."<br/>"; //aWKZrQ
echo $hashids->decode($hash)[0]; //1923
Veritabanı ID'sini Encrypt & Decrypt yapman bence daha uygun. Veritabanı ile uğraşma bence. Veritabanı id'sini encrypt edip kullanıcıya gösterirsin, kullanıcıdan aldığın veriyi de decrypt edip id'ye ulaşıp veritabanı işlemlerinde kullanabilirsin.