Closed onurryildirimm closed 1 year ago
Merhabalar, hangi PHP versiyon kullaniyorsunuz?
PHP 8.1 versiyonunu kullanmaktayım
session extension enabled mi? emin degilseniz bu kodu calistirmayi dener misiniz:
if (!extension_loaded('session')) {
die('You must enable PHP session support for the system to work.');
}
bazi shared hostinglerde default olarak session extension disabled geliyor
çalıştırdığımda herhangi bir hata dönmüyor. cpanel den kontrol ettiğimde session aktif gözüküyor
burda https://stackoverflow.com/questions/39750906/php-setcookie-samesite-strict/51128675#51128675 anlatildigi gibi samesite=None denediniz mi? Denerken taraycida gizli modda denenmesi iyi olur, yoksa taraycida var olan cookielerin samesite degerini guncellemeyebilir.
Redis kullandigimda bu sorunu yasamamistim, ama PHP session'da sorun cikiyor ara sira. Ben de session konusunda uzman olmadigim icin cokta bir yardimci olamiyorum.
"sipariş bulunamadı session sıfırlandı" bu mesaj ykb tarafından mı dönüyor? @onurryildirimm
template/_payment_response.php dosyasında
requestten sonrasına ;
if(isset($_COOKIE["PHPSESSID"])){ header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None'); }
kod bloğunu ekledim. şimdi hata dönüşü olmadı. Deneme yapmaya devam edeceğim hata ile karşılaşırsam bilgi vereyim tekrar.
hayır _payment_response.php dosyasındaki hata bu
if (!$order) { throw new Exception('Sipariş bulunamadı, session sıfırlanmış olabilir.'); }
order değerini boş algılıyor session yok gibi ondan dolayı bu hatayı döndürüyor.
SameSite=None sorunu giderdi mi?
SameSite=None sorunu giderdi mi?
Şu an sorun yok gibi gözüküyor, dediğim sayfaya bu kodu ekleyince response sayfası düzgün şekilde çalıştı. Çekim işlemi yaptım sorunla karşılaşmadım.
dokumantasyona bakmakta fayda var :) https://github.com/mewebstudio/pos#session-s%C4%B1f%C4%B1rlanmas%C4%B1
Not olarak yaziyorum, yukarda belirtilen stackoverflow kaynakta da belirtildigi gibi SameSite=None
, Secure
flag olmadan calismaz (yada calismayabilir).
yani @onurryildirimm paylastigi kod
header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None; HttpOnly');
yerine su sekilde kullanmaniz gerekebilir.
header('Set-Cookie: PHPSESSID='.$_COOKIE["PHPSESSID"].'; SameSite=None; Secure; HttpOnly');
Benim durumda Secure
flag olmadan denedigimde session cookie, SameSite=None dememe ragmen, screenshot'ta goruldugu gibi SameSite deger bos olarak gozukuyor:
Secure
flag'le beraner kullanildiginda ise su sekilde gozukecek ve duzgun calisan sekli:
Kod orneklerde symfony session component kullanilmaktadir, orda da dogru ayar su sekilde:
$sessionHandler = new \Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage([
'cookie_samesite' => 'None',
'cookie_secure' => true,
'cookie_httponly' => true,
]);
@nuryagdym bunu projede nereye nasıl ekleyeceğiz ?
Merhaba,
YKB ile 3d şifre gönderildikten sonra response sayfası "sipariş bulunamadı session sıfırlandı" tarzı bir hata dönüyor. Açıklama kısmında yazan şekilde bir kaç deneme yaptım ama sorunu çözemedim. örneğin Example dosyalarında nerelerde ne tarz bir değişiklik yapmamız gerek bu sorunu geçmek için ?