2023-01-23 11:03:31 +01:00

321 lines
9.6 KiB
PHP

<?php
/* ----------------------------------------------------------------------
$Id: check.php,v 1.1 2007/06/13 16:41:17 r23 Exp $
MyOOS [Shopsystem]
https://www.oos-shop.de
Copyright (c) 2003 - 2019 by the MyOOS Development Team
----------------------------------------------------------------------
Based on:
File: install.php,v 1.7 2004/08/26 05:20:59 rcastley
----------------------------------------------------------------------
copyright (C) 2000 - 2004 Miro International Pty Ltd
license http://www.gnu.org/copyleft/gpl.html GNU/GPL
Mambo is Free Software
----------------------------------------------------------------------
Based on:
File: check.php,v 1.6 2002/02/04 18:51:32 voll
----------------------------------------------------------------------
POST-NUKE Content Management System
Copyright (C) 2001 by the Post-Nuke Development Team.
http://www.postnuke.com/
----------------------------------------------------------------------
Based on:
PHP-NUKE Web Portal System - http://phpnuke.org/
Thatware - http://thatware.org/
----------------------------------------------------------------------
LICENSE
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License (GPL)
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To read the license please visit http://www.gnu.org/copyleft/gpl.html
----------------------------------------------------------------------
Original Author of file: Gregor J. Rothfuss
Purpose of file: Provide checks for the installer.
----------------------------------------------------------------------
Released under the GNU General Public License
---------------------------------------------------------------------- */
function oosCheckPHP() {
global $currentlang;
$oos_root = dirname($_SERVER['PHP_SELF']) . '/';
$oos_root = str_replace('/install/','/',$oos_root);
$oos_core = oos_httpCoreDir();
$oos_core = str_replace('/install/','/',$oos_core);
$old_htaccess = @file_get_contents($oos_core . '.htaccess');
$fp = @fopen($oos_core . '.htaccess', 'w');
$oos_host = preg_replace('@^([^:]+):?.*$@', '\1', $_SERVER['HTTP_HOST']);
echo '<font class="oos-title">' . PHP_CHECK_1 . '</font><br />';
echo '<font class="oos-normal">' . PHP_CHECK_2. '</font><br />';
$check_php = true;
$rewrite = 'none';
?>
<table class="content">
<tr>
<td>PHP version >= 7.2.0</td>
<td align="left"><?php echo phpversion() < '7.2.0' ? '<b><font color="red">No</font></b>' : '<b><font color="green">Yes</font></b>';?></td>
</tr>
<tr>
<td>&nbsp; - MySQL support</td>
<td align="left"><?php echo extension_loaded( 'mysqli' ) ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?>
</td>
</tr>
<tr>
<td>&nbsp; - GD support</td>
<td align="left"><?php echo extension_loaded( 'gd' ) ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?>
</td>
</tr>
<tr>
<td>&nbsp; - cURL support</td>
<td align="left"><?php echo extension_loaded( 'curl' ) ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?>
</td>
</tr>
<tr>
<td>&nbsp; - OpenSSL support</td>
<td align="left"><?php echo extension_loaded( 'openssl' ) ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?>
</td>
</tr>
<tr>
<td>&nbsp; - zlib compression support</td>
<td align="left"><?php echo extension_loaded('zlib') ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?></td>
</tr>
<tr>
<td>&nbsp; - XML support</td>
<td align="left"><?php echo extension_loaded('xml') ? '<b><font color="green">Available</font></b>' : '<b><font color="red">Unavailable</font></b>';?>
</td>
</tr>
<tr>
<td>Session save path</td>
<td align="left">
<b><?php echo (($sp=ini_get('session.save_path'))?$sp:'Not set'); ?></b>,
<?php echo is_writable( $sp ) ? '<b><font color="green">Writeable</font></b>' : '<b><font color="red">Unwriteable</font></b>';?>
</td>
</tr>
</table>
<br />
<br />
<table class="content">
<tr>
<td class="toggle">Directive</td>
<td class="toggle">Recommended</td>
<td class="toggle">Actual</td>
</tr>
<tr>
<td>Safe Mode:</td>
<td class="toggle">OFF</td>
<td>
<?php
if ( oosGetPHPSetting('safe_mode') == 'OFF' ) {
?>
<font color="green"><b>
<?php
} else {
?>
<font color="red"><b>
<?php
}
echo oosGetPHPSetting('safe_mode');
?>
</b></font><td>
</tr>
<tr>
<td>Display Errors:</td>
<td class="toggle">OFF</td>
<td>
<?php
if ( oosGetPHPSetting('display_errors') == 'OFF' ) {
?>
<font color="green"><b>
<?php
} else {
?>
<font color="red" style="bold"><b>
<?php
}
echo oosGetPHPSetting('display_errors');
?>
</b></font></td>
</tr>
<tr>
<td>File Uploads:</td>
<td class="toggle">ON</td>
<td>
<?php
if ( oosGetPHPSetting('file_uploads') == 'ON' ) {
?>
<font color="green"><b>
<?php
} else {
?>
<font color="red" style="bold"><b>
<?php
}
echo oosGetPHPSetting('file_uploads');
?>
</b></font></td>
</tr>
<tr>
<td>Register Globals:
</td>
<td class="toggle">OFF</td>
<td>
<?php
if ( oosGetPHPSetting('register_globals') == 'OFF' ) {
?>
<font color="green"><b>
<?php
} else {
?>
<font color="red" style="bold"><b>
<?php
}
echo oosGetPHPSetting('register_globals');
?>
</b></font></td>
</tr>
<tr>
<td>Output Buffering:</td>
<td class="toggle">OFF</td>
<td>
<?php
if ( oosGetPHPSetting('output_buffering') == 'OFF' ) {
?>
<font color="green"><b>
<?php
} else {
?>
<font color="red" style="bold"><b>
<?php
}
echo oosGetPHPSetting('output_buffering');
?>
</b></font></td>
</tr>
<tr>
<td>Session auto start:</td>
<td class="toggle">OFF</td>
<td>
<?php
if ( oosGetPHPSetting('session.auto_start') == 'OFF' ) {
?>
<font color="green"><b>
<?php
} else {
//$check_php = false;
?>
<font color="red" style="bold"><b>
<?php
}
echo oosGetPHPSetting('session.auto_start');
?>
</b></font></td>
</tr>
</table>
<?php
if (!function_exists('imagetypes')) {
echo '<br /><font class="oos-error">' . PHP_CHECK_12 . '</font><br />';
echo '<font class="oos-title">' . PHP_CHECK_13 . '</font><br />';
$check_php = false;
} elseif (!function_exists('imagecreatetruecolor')) {
echo '<br /><font class="oos-error">' . PHP_CHECK_14 . '</font><br />';
echo '<font class="oos-title">' . PHP_CHECK_15 . '</font><br />';
}
if (!isset($_SERVER['PHP_SELF'])) {
echo '<br /><font class="oos-error">' . PHP_CHECK_16 . '</font><br />';
echo '<font class="oos-title">' . PHP_CHECK_17 . '</font><br /><br />';
$check_php = false;
}
if (!$fp) {
echo '<br />';
printf(HTACCESS_ERROR,
'<font class="oos-error"><b>chmod go+rwx ' . $oos_core . '</b></font>'
);
// $check_php = false;
} else {
fwrite($fp, 'ErrorDocument 404 ' . $oos_root . 'index.php');
fclose($fp);
// Do a request on a nonexistant file to see, if our htaccess allows ErrorDocument
$sock = @fsockopen($oos_host, $_SERVER['SERVER_PORT'], $errorno, $errorstring, 10);
$response = '';
if ($sock) {
fputs($sock, "GET {$oos_root}nonexistant HTTP/1.0\r\n");
fputs($sock, "Host: $oos_host\r\n");
fputs($sock, "User-Agent: OOS[OSIS Online Shop]/{OOS_VERSION}\r\n");
fputs($sock, "Connection: close\r\n\r\n");
while (!feof($sock) && strlen($response) < 4096) {
$response .= fgets($sock, 400);
}
fclose($sock);
}
if (preg_match('@^HTTP/\d\.\d 200@', $response)) {
$rewrite = 'errordocs';
}
if (!empty($old_htaccess)) {
$fp = @fopen($oos_core . '.htaccess', 'w');
fwrite($fp, $old_htaccess);
fclose($fp);
} else {
@unlink($oos_core . '.htaccess');
}
}
echo '<br /><br /><font class="oos-title">' . CHMOD_CHECK_1 . '</font><br /><br />';
echo '<font class="oos-normal">' . CHMOD_CHECK_2. '</font>';
$file = '../includes/configure.php';
if (is_writable($file)){
echo '<br /><br /><img src="images/yes.gif" alt="" border="0" align="absmiddle">&nbsp;<font color="green">' . CHMOD_CHECK_3 . '</font><br />';
} else {
echo '<br /><br /><img src="images/no.gif" alt="" border="0" align="absmiddle">&nbsp;<font class="oos-error">' . CHMOD_CHECK_4 . '</font><br />';
$check_php = false;
}
if ($check_php == true) {
echo '<br /><br /><font class="oos-normal">' . PHP_CHECK_OK . '</font><br />';
echo '<p><form action="step.php" method="post">';
echo '<input type="hidden" name="currentlang" value="' . $currentlang . '">';
echo '<input type="hidden" name="op" value="DBSubmit">';
echo '<input type="hidden" name="host_conf" value="' . $rewrite .'">';
echo '<center><input type="submit" value="' . BTN_CONTINUE . '"></center></form></p>';
} else {
echo '<p><form action="step.php" method="post">';
echo '<input type="hidden" name="currentlang" value="' . $currentlang . '">';
echo '<input type="hidden" name="op" value="PHP_Check">';
echo '<input type="hidden" name="agreecheck" value="ok">';
echo '<center><input type="submit" value="' . BTN_RECHECK . '"></center></form></p>';
}
}
function oosGetPHPSetting($val) {
$r = (ini_get($val) == '1' ? 1 : 0);
return $r ? 'ON' : 'OFF';
}