Commit | Line | Data |
---|---|---|
96ad3d1d | 1 | <?php |
81597b0b | 2 | use wcf\system\exception\SystemException; |
96ad3d1d | 3 | use wcf\system\WCF; |
21980a9f | 4 | |
81597b0b AE |
5 | $phpVersion = phpversion(); |
6 | $comparePhpVersion = preg_replace('/^(\d+\.\d+\.\d+).*$/', '\\1', $phpVersion); | |
7 | $neededPhpVersion = '5.5.4'; | |
8 | if (!(version_compare($comparePhpVersion, $neededPhpVersion) >= 0)) { | |
9 | $message = "Your PHP version '{$phpVersion}' is insufficient for installation of this software. PHP version {$neededPhpVersion} or greater is required."; | |
10 | if (WCF::getLanguage()->getFixedLanguageCode() === 'de') { | |
11 | $message = "Ihre PHP Version '{$phpVersion}' ist unzureichend für die Installation dieser Software. PHP Version {$neededPhpVersion} oder höher wird benötigt."; | |
12 | } | |
13 | ||
14 | throw new SystemException($message); | |
15 | } | |
16 | ||
96ad3d1d MW |
17 | // change encoding of wcf1_acp_session; necessary for foreign key in wcf1_acp_session_virtual |
18 | $sql = "ALTER TABLE wcf".WCF_N."_acp_session CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci"; | |
19 | $statement = WCF::getDB()->prepareStatement($sql); | |
20 | $statement->execute(); | |
21 | ||
22 | // create wcf1_acp_session_virtual | |
23 | $sql = "DROP TABLE IF EXISTS wcf".WCF_N."_acp_session_virtual"; | |
24 | $statement = WCF::getDB()->prepareStatement($sql); | |
25 | $statement->execute(); | |
26 | $sql = "CREATE TABLE wcf".WCF_N."_acp_session_virtual ( | |
27 | virtualSessionID INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, | |
28 | sessionID CHAR(40) NOT NULL, | |
29 | ipAddress VARCHAR(39) NOT NULL DEFAULT '', | |
30 | userAgent VARCHAR(191) NOT NULL DEFAULT '', | |
5c4282aa | 31 | lastActivityTime INT(10) NOT NULL DEFAULT 0 |
96ad3d1d MW |
32 | UNIQUE KEY (sessionID, ipAddress, userAgent) |
33 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci"; | |
34 | $statement = WCF::getDB()->prepareStatement($sql); | |
35 | $statement->execute(); | |
36 | ||
37 | // create virtual session for current user | |
5c4282aa | 38 | $sql = "INSERT INTO wcf".WCF_N."_acp_session_virtual (sessionID, ipAddress, userAgent, lastActivityTime) SELECT sessionID, ipAddress, userAgent, lastActivityTime FROM wcf".WCF_N."_acp_session WHERE sessionID = ?"; |
96ad3d1d | 39 | $statement = \wcf\system\WCF::getDB()->prepareStatement($sql); |
81597b0b AE |
40 | // WARNING: do not use [...] array syntax here, as this file is also used to check for PHP 5.5+ |
41 | $statement->execute(array(WCF::getSession()->sessionID)); | |
96ad3d1d MW |
42 | |
43 | // create session cookie | |
44 | @header('Set-Cookie: '.rawurlencode(COOKIE_PREFIX . 'cookieHash_acp').'='.rawurlencode(WCF::getSession()->sessionID).'; path=/'.(\wcf\system\request\RouteHandler::secureConnection() ? '; secure' : '').'; HttpOnly', false); |