Ben SSL ile sitemde sağlamaya çalışıyoruz birkaç saat yatırım kararı aldı. Sunucu tamam koşturuyorsun ama benim PHP $ _SESSION ile bir duvara vurdu. HTTP ve HTTPS arasındaki oturum kimlikleri geçen sorunu anlamak, ancak bu (bence) burada olmuyor. Kıvrık oturumu dizisi böyle bir şey gider:
login.html:
<form action="https://www.mydomain.com/login.php">
login.php:
if login details correct {
session_set_cookie_params(3600,'/','mydomain.com',true);
session_start();
$_SESSION['...
session_commmit
Bu noktada, login.js (iletişim AJAX stili yönetir) http://www.mydomain.com/desktop.html yönlendirir. HTML destek JS kodu daha sonra patlar
$.ajax({ url: "https://www.mydomain.com/lib/mySQL/mySQL.php", ... });
mysql.php:
if (!isset($_COOKIE['PHPSESSID'])) {
throw wobbly
Ben HTTPS geçiş yapmadan önce, bu dizi tüm tarayıcılarda gayet güzel çalışıyordu; HTTPS ile tüm tarayıcılar arasında titrek atıyor: (Ben Cookie verilere bakarak (onaylamak) Firefox böylece gibi bir çerez kaydeder ki:
mydomain.com
Name: PHPSESSID
Content: gobbledygook
Domain: .mydomain.com
Path: /
Send For: Encrypyed connections only.
Expires: in 1hr.
Her kitap başına olarak görünür. Eğer oluyor ne gibi herhangi bir öneriniz var mı?
Teşekkürler.
PS: Ben gerektiğini düşündüren, bu sorunu araştırmaktadır SO hakkında bir yazı tökezledi önce session_set_cookie_params kullanmak vermedi. Ben güvenli kurmadan önce = true Firefox herhangi bir bağlantıları "için Gönder" olur, ve bu da işe yaramadı, olduğunu.
EDIT: Ben başka bir ayrıntı gözlemlemek. Ben Firebug Net panelde benim AJAX istekleri "POST https://www.mydomain.com/lib/mySQL/mySQL.php" gibi göstermek ve ben POST binici seçin ve karşısında ne gitti görmek mümkün olacağını bekliyoruz. Ben başarısız istek için bu alamadım. Esrarlı, Firebug ekran "SEÇENEKLER https://www.mydomain.com/lib/mySQL/mySQL.php" kırmızı ve hiçbir POST binici.