Hallo Heiko,
kann es sein, dass dir in der Datenbanktabelle 'whos_online' der Schlüssel fehlt, denn früher hatte die Tabelle folgende Struktur
CREATE TABLE whos_online (
customer_id INT(11) DEFAULT NULL,
full_name VARCHAR(64) NOT NULL,
session_id VARCHAR(32) NOT NULL,
ip_address VARCHAR(39) NOT NULL,
time_entry VARCHAR(14) NOT NULL,
time_last_click VARCHAR(14) NOT NULL,
last_page_url VARCHAR(255) NOT NULL,
http_referer VARCHAR(255) NOT NULL
) ENGINE=MyISAM;
aber in der 2er Version diese.
CREATE TABLE whos_online (
customer_id INT(11) DEFAULT NULL,
full_name VARCHAR(64) NOT NULL,
session_id VARCHAR(32) NOT NULL,
ip_address VARCHAR(50) NOT NULL,
time_entry VARCHAR(14) NOT NULL,
time_last_click VARCHAR(14) NOT NULL,
last_page_url VARCHAR(255) NOT NULL,
http_referer VARCHAR(255) NOT NULL,
PRIMARY KEY (session_id),
KEY idx_time_last_click (time_last_click)
) ENGINE=MyISAM;
Tipp:
Wenn obiges zutrifft kannst Du in deiner Shopdatenbank mit phpMyAdmin folgendes Statement absetzen um das Problem zu beheben
(vorher Sicherung machen).
DROP TABLE IF EXISTS whos_online;
CREATE TABLE whos_online (
customer_id INT(11) DEFAULT NULL,
full_name VARCHAR(64) NOT NULL,
session_id VARCHAR(32) NOT NULL,
ip_address VARCHAR(50) NOT NULL,
time_entry VARCHAR(14) NOT NULL,
time_last_click VARCHAR(14) NOT NULL,
last_page_url VARCHAR(255) NOT NULL,
http_referer VARCHAR(255) NOT NULL,
PRIMARY KEY (session_id),
KEY idx_time_last_click (time_last_click)
) ENGINE=MyISAM;
Erläuterung:
In '/inc/xtc_update_whos_online.inc.php' entscheidet folgendes SQL-Statement ob ein INSERT oder ein UPDATE in die Tabelle 'whos_online' eingetragen wird, der Schlüssel (KEY) ist die 'session_id'.
xtc_db_query("INSERT INTO " . TABLE_WHOS_ONLINE . " (customer_id, full_name, session_id, time_entry, ip_address, time_last_click, last_page_url, http_referer)
VALUES ('". (int)$wo_customer_id ."', '".xtc_db_input($wo_full_name)."', '".xtc_db_input($wo_session_id)."', '".xtc_db_input($current_time)."', '".xtc_db_input($wo_ip_address)."', '".xtc_db_input($current_time)."', '".xtc_db_input($wo_last_page_url)."', '".xtc_db_input($wo_referer)."')
ON DUPLICATE KEY UPDATE customer_id = '".(int)$wo_customer_id."', full_name = '".xtc_db_input($wo_full_name)."', ip_address = '".xtc_db_input($wo_ip_address)."', time_last_click = '".xtc_db_input($current_time)."', last_page_url = '".xtc_db_input($wo_last_page_url)."'");
Hat die Tabelle 'whos_online' keinen Schlüssel wird immer ein INSERT ausgeführt, also eine neu Zeile in die Tabelle eingetragen.
Gruss
Hanspeter