#798 closed Bug/Fehler (fixed)
PHP 7 - STORE_SESSIONS mysql funktioniert nicht
| Reported by: | Volker Strähle | Owned by: | somebody |
|---|---|---|---|
| Priority: | normal | Milestone: | modified-shop-2.0.1.0 |
| Component: | Shop | Version: | trunk |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description
Konnte das jetzt auf 2 Rechnern (PHP 7.03 und 7.04) testen. Bei Einstellung StoreSession mysql kommte eine weiße Seite. Speichert man die Session im Dateisystem funktioniert der Shop.
Interessant ist folgender Error von Apache auf meinem Xampp 7.04:
[Fri Mar 11 09:18:56.402670 2016] [mpm_winnt:notice] [pid 16816:tid 492] AH00428: Parent: child process 25200 exited with status 3221225725 -- Restarting. [Fri Mar 11 09:18:57.551677 2016] [ssl:warn] [pid 16816:tid 492] AH01909: www.example.com:443:0 server certificate does NOT include an ID which matches the server name [Fri Mar 11 09:18:57.589698 2016] [mpm_winnt:notice] [pid 16816:tid 492] AH00455: Apache/2.4.18 (Win32) OpenSSL/1.0.2e PHP/7.0.4 configured -- resuming normal operations
Was das mit ssl zu tun hat erschließt sich mir noch nicht.
Attachments (0)
Change History (8)
comment:1 by , 10 years ago
comment:2 by , 10 years ago
Kann kurz bestätigen, dass das mit diesem Code (includes/functions/sessions.php) funktioniert:
//if (isset($value['value']) && $value['value']!='') {
//return base64_decode($value['value']);
//}
// PHP7 - Session-Fix - Start
if (!isset($value['value'])) {
return '';
}
if ($value['value'] != '') {
return base64_decode($value['value']);
}
comment:3 by , 10 years ago
| Milestone: | modified-shop-2.00 → modified-shop-2.10 |
|---|---|
| Version: | 2.0 → 2.10 |
comment:4 by , 10 years ago
Es gibt wohl auch noch ein Problem mit PHP 5.6, welches auch Problem hat wenn die Session in der DB gespeichert wird: Nach Datenbank update keine Anmeldung möglich
comment:6 by , 10 years ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
Beim Aktualisieren der Session wird kein Update des Users in der Tabelle whois_online durchgeführt. Das passiert erst nach Redirect durch die application_top.
Zugriffe auf login_admin.php werden überhaupt nicht in whois_online geschrieben.
Generell ist die sessions.php so wichtig, dass nicht notwendige Operation dort nur abgesichert ausgeführt werden sollen um im Fehlerfall die weitere Ausführung sicherzustellen.
try{
xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS." WHERE customers_id = '".(int)$customers['customer_id']."'");
xtc_db_query("DELETE FROM ".TABLE_ADDRESS_BOOK." WHERE customers_id = '".(int)$customers['customer_id']."'");
xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_INFO." WHERE customers_info_id = '".(int)$customers['customer_id']."'");
xtc_db_query("DELETE FROM ".TABLE_CUSTOMERS_IP." WHERE customers_id = '".(int)$customers['customer_id']."'");
}
catch (Exception $e) {
trigger_error($e->getMessage());
}
und
// update whos_online
try{
xtc_db_query("UPDATE " . TABLE_WHOS_ONLINE . "
SET session_id = '".xtc_db_input($new_session_id)."'
WHERE session_id = '".xtc_db_input($old_session_id)."'");
}
catch (Exception $e) {
trigger_error( $e->getMessage());
}
comment:7 by , 10 years ago
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
SQL Fehler werden bereits getriggert. Daher sehe ich keine Notwendigkeit hier doppelt Fehler zu catchen.
Die login.php wurde bereits erweitert und bei einem Login über die login_admin.php wird auch der Eintrag in die Whos Online Tabelle gemacht.
comment:8 by , 7 years ago
| Milestone: | modified-shop-2.1.0.0 → modified-shop-2.0.1.0 |
|---|---|
| Version: | 2.0.1.0 → trunk |

Hallo,
Ich müsste in der Funktion bei mir irgendwelche Abfragen ändern: _sess_read
Bei mir hat die Funktion eine Endlos-Schleife produziert.
Ich bin mir unsicher, ob das der Fix sogar gewesen ist:
if (!isset($value['value'])) { return ''; } if ($value['value'] != '') { return base64_decode($value['value']); }Vielleicht wird es euch weiter helfen.
Gruß
Jürgen H.