Sziasztok!
Egy saját modul fejlesztése kapcsán futottam bele abba a problémába, hogy amikor egy be nem jelentkezett user be akar lépni, akkor:
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ... for key 'PRIMARY': UPDATE {sessions} ... drupal_session_regenerate() függvényben (.../includes/session.inc 393 sor).
Több hete nem leljük a megoldást.
Átnyálaztam a nemzetközi fórumokat ki futhatott még ebbe bele, de nem találtam megoldást.
Környezet: D7: Commerce kickstart (+SSL)
A modulom ugyan meghívhatja a drupal_session_start() függvényt, de csak ha nincs session.
A userek ki- és belépkedésével sehol máshol nincs probléma, csak azokon a részeket, ahol a modulom is működik.
Adatbázisban is néztem a session táblát és a Drupal logban is figyelgettem.
Miután a user sikeresen belépett, utána jön ez a PDOException-ös hiba.
Sikeres, hiszen ha a hibaüzenet ellenére a user ráfrissít az oldalra minden sikerült végül is. :)
Nem tudok rájönni miért akar úgy update-elni a rendszer egy sessiont, hogy a primary key-ek ezzel elvesztenék uniq jellegüket.
Gondolom a session user_id-t kéne 0-ról az aktuálisra userére állítania, de közben valami történik (vagy nem történik).
Tud valaki segíteni hogy legalább kb merre kéne keresni a probléma okát?
Nekem ez a drupal_session
Nekem ez a drupal_session_start()-ot hív a modulunk problémának tűnik. A drupal_session_start() az kőkemény bootstrap rész, nehezen tudok elképzelni olyan funkcionalitást, aminek ezt meg nekünk kéne hívogatni. Ha meg mégis, akkor egy session_api modult talán érdemes lehet bevonni a játékba.
Ez így csak egy tipp, inkább azt kérdezném, hogy miért kell a te modulodnak drupal_session_startot kezelni? Mi a konkrét feladat?
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Online Learning System
Egy Online Learning System az a modul család amit fejlesztünk.
A Session-ben vándoroltatunk jó pár információt.
Ez tökéletesen működik is, csak amikor login nélkül használják, akkor is kell a session.
Be kellett tenni ezt a részt a modulba:
Ugyanis nincs mindig session.
Az pedig nagyon kéne. :)
Próbáltunk lecserélni erre is: session_start();
de ugyanaz az eredmény.
Hol hibáztunk? Mit kellett volna másképp?
Ohh, most hirtelen
sztem így kéne:
+ tényleg szétnézni a session_apiban, ha ilyesmire van szükségetek.
----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.
Kipróbáltam
Kipróbáltam ezt a verziót is, de sajnos nem hozott eredményt.
Azért nagyon köszönök minden tippet, helpet, ha van még ne tartsátok magatokban! :)
Közben tanulmányozgatom a session api-t is hátha leesik valami. :)
A megoldás
Leírom a megoldást.
Session API modul nélkül:
Es ha csak a $_SESSION
Es ha csak a $_SESSION valtozoban matatsz a drupal nem indit magatol sessiont?
---
http://drupalaton.hu
Login nélkül nincs elérhető session
Úgy vettük észre, hogy login nélkül a session PHP-ból nem elérhető.