30require
'../../main.inc.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions2.lib.php';
41$langs->loadLangs(array(
"admin",
"install",
"errors"));
52llxHeader(
'',
'',
'',
'', 0, 0,
'',
'',
'',
'mod-admin page-system_phpinfo');
59$maxphp = @ini_get(
'upload_max_filesize');
60if (preg_match(
'/k$/i', $maxphp)) {
61 $maxphp = preg_replace(
'/k$/i',
'', $maxphp);
64if (preg_match(
'/m$/i', $maxphp)) {
65 $maxphp = preg_replace(
'/m$/i',
'', $maxphp);
68if (preg_match(
'/g$/i', $maxphp)) {
69 $maxphp = preg_replace(
'/g$/i',
'', $maxphp);
70 $maxphp *= 1024 * 1024;
72if (preg_match(
'/t$/i', $maxphp)) {
73 $maxphp = preg_replace(
'/t$/i',
'', $maxphp);
74 $maxphp *= 1024 * 1024 * 1024;
76$maxphp2 = @ini_get(
'post_max_size');
77if (preg_match(
'/k$/i', $maxphp2)) {
78 $maxphp2 = preg_replace(
'/k$/i',
'', $maxphp2);
81if (preg_match(
'/m$/i', $maxphp2)) {
82 $maxphp2 = preg_replace(
'/m$/i',
'', $maxphp2);
85if (preg_match(
'/g$/i', $maxphp2)) {
86 $maxphp2 = preg_replace(
'/g$/i',
'', $maxphp2);
87 $maxphp2 *= 1024 * 1024;
89if (preg_match(
'/t$/i', $maxphp2)) {
90 $maxphp2 = preg_replace(
'/t$/i',
'', $maxphp2);
91 $maxphp2 *= 1024 * 1024 * 1024;
93if ($maxphp > 0 && $maxphp2 > 0 && $maxphp > $maxphp2) {
94 $langs->load(
"errors");
95 print
info_admin($langs->trans(
"WarningParamUploadMaxFileSizeHigherThanPostMaxSize", @ini_get(
'upload_max_filesize'), @ini_get(
'post_max_size')), 0, 0,
'0',
'warning');
100print
'<table class="noborder centpercent">';
101print
'<tr class="liste_titre"><td class="titlefield">'.$langs->trans(
"Parameter").
'</td><td></td></tr>';
103print
'<tr><td>'.$langs->trans(
"Version").
'</td><td>';
105$arrayphpminversionerror = array(7, 1, 0);
106$arrayphpminversionwarning = array(7, 1, 0);
109 print
img_picto(
'Error',
'error').
' '.$langs->trans(
"ErrorPHPVersionTooLow",
versiontostring($arrayphpminversionerror));
111 print
img_picto(
'Warning',
'warning').
' '.$langs->trans(
"ErrorPHPVersionTooLow",
versiontostring($arrayphpminversionwarning));
117print
'<tr><td>GET and POST support</td><td>';
119if (!isset($_GET[
"testget"]) && !isset($_POST[
"testpost"]) && !isset($_GET[
"mainmenu"])) {
120 print
img_picto(
'Warning',
'warning').
' '.$langs->trans(
"PHPSupportPOSTGETKo");
121 print
' (<a href="'.$_SERVER[
"PHP_SELF"].
'?testget=ok">'.$langs->trans(
"Recheck").
'</a>)';
123 print
img_picto(
'Ok',
'tick').
' '.$langs->trans(
"PHPSupportPOSTGETOk");
127print
'<tr><td>Sessions support</td><td>';
128if (!function_exists(
"session_id")) {
129 print
img_picto(
'Error',
'error').
' '.$langs->trans(
"ErrorPHPDoesNotSupportSessions");
131 print
img_picto(
'Ok',
'tick').
' '.$langs->trans(
"PHPSupportSessions");
135print
'<tr><td>UTF-8 support</td><td>';
136if (!function_exists(
"utf8_encode")) {
137 print
img_picto(
'Warning',
'warning').
' '.$langs->trans(
"ErrorPHPDoesNotSupport",
"UTF8");
139 print
img_picto(
'Ok',
'tick').
' '.$langs->trans(
"PHPSupport",
"UTF8");
147$activatedExtensions = array();
148$loadedExtensions = array_map(
'strtolower', get_loaded_extensions(
false));
150print
'<table class="noborder centpercent">';
151print
'<tr class="liste_titre">';
152print
'<td class="titlefield">'.$langs->trans(
"Extension").
'</td>';
153print
'<td>'.$langs->trans(
"Test").
'</td>';
156if (
$db->type ==
'mysqli') {
157 $functions = [
"mysqli_connect"];
161 print
"<td>".$name.
"</td>";
162 print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
166$functions = [
"mb_check_encoding"];
170print
"<td>".$name.
"</td>";
171print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
174$functions = [
"json_decode"];
178print
"<td>".$name.
"</td>";
179print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
182$functions = [
"imagecreate"];
186print
"<td>".$name.
"</td>";
187print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
190$functions = [
"curl_init"];
194print
"<td>".$name.
"</td>";
195print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
198$functions = [
"easter_date"];
202print
"<td>".$name.
"</td>";
203print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
206$functions = [
"simplexml_load_string"];
210print
"<td>".$name.
"</td>";
211print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
214if (empty($_SERVER[
"SERVER_ADMIN"]) || $_SERVER[
"SERVER_ADMIN"] !=
'doliwamp@localhost') {
215 $functions = [
"locale_get_primary_language",
"locale_get_region"];
219 print
"<td>".$name.
"</td>";
220 print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
224$functions = [
"imap_open"];
228print
"<td>".$name.
"</td>";
229print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
236print
"<td>".$name.
"</td>";
237print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
243print
"<td>".$name.
"</td>";
244print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions, $langs->trans(
"Optional"));
260print
"<td>".$name.
"</td>";
261print
getResultColumn($name, $activatedExtensions, $loadedExtensions, $functions);
270foreach ($phparray as $key => $value) {
271 print
'<div class="div-table-responsive-no-min">';
272 print
'<table class="noborder">';
273 print
'<tr class="liste_titre">';
274 print
'<td class="titlefield">'.$key.
'</td>';
275 print
'<td colspan="2"></td>';
279 foreach ($value as $keyparam => $keyvalue) {
280 if (!is_array($keyvalue)) {
281 $keytoshow = $keyparam;
282 $valtoshow = $keyvalue;
285 if (in_array($keyparam, array(
'HTTP_COOKIE',
'Cookie',
"\$_SERVER['HTTP_COOKIE']",
'Authorization'))) {
286 $valtoshow =
'<span class="opacitymedium">'.$langs->trans(
"Hidden").
'</span>';
288 if (preg_match(
'/'.preg_quote(
'$_COOKIE[\'DOLSESSID_',
'/').
'/i', $keyparam)) {
289 $keytoshow = $keyparam;
290 $valtoshow =
'<span class="opacitymedium">'.$langs->trans(
"Hidden").
'</span>';
292 if (preg_match(
'/'.preg_quote(
'$_SERVER[\'PHP_AUTH_PW',
'/').
'/i', $keyparam)) {
293 $keytoshow = $keyparam;
294 $valtoshow =
'<span class="opacitymedium">'.$langs->trans(
"Hidden").
'</span>';
297 print
'<tr class="oddeven">';
298 print
'<td>'.$keytoshow.
'</td>';
299 if ($keyparam ==
'X-ChromePhp-Data') {
302 print
'<td colspan="2" class="wordbreak minwidth100">';
303 if ($keyparam ==
'Path') {
304 $valtoshow = implode(
'; ', explode(
';', trim($valtoshow)));
306 if ($keyparam ==
'PATH') {
307 $valtoshow = implode(
'; ', explode(
';', trim($valtoshow)));
309 if ($keyparam ==
'_SERVER["PATH"]') {
310 $valtoshow = implode(
'; ', explode(
';', trim($valtoshow)));
316 print
'<tr class="oddeven">';
317 print
'<td class="wordbreak">'.$keyparam.
'</td>';
319 foreach ($keyvalue as $keyparam2 => $keyvalue2) {
321 $valtoshow = $keyvalue2;
322 if ($keyparam ==
'disable_functions') {
323 $valtoshow = implode(
', ', explode(
',', trim($valtoshow)));
353function getResultColumn($name, array $activated, array $loaded, array $functions, $optional =
'')
360 $result = $result && in_array(strtolower($name), $loaded);
362 foreach ($functions as $function) {
363 $result = $result && function_exists($function);
368 if (strtolower($name) ==
'xdebug') {
369 $html .=
img_warning($langs->trans(
"ModuleActivated",
"xdebug"));
371 $html .=
img_picto($langs->trans(
"Ok"),
'tick');
373 if (in_array(strtolower($name), $loaded)) {
374 $html .=
' '.$langs->trans(
"Loaded").
' - ';
378 if (strtolower($name) ==
'xdebug') {
379 $html .=
' '.$langs->trans(
"ModuleActivated",
"xdebug");
380 $html .=
' - '.$langs->trans(
"ModuleActivatedMayExposeInformation");
382 $html .=
' <span class="opacitymedium">'.$langs->trans(
"PHPSupport", $name).
'</span>';
385 if (strtolower($name) ==
'xdebug') {
386 $html .=
yn(0).
' - ';
389 $html .=
img_picto($langs->trans(
"NotFound"),
'minus');
394 if (in_array(strtolower($name), $loaded)) {
395 $html .=
' '.$langs->trans(
"Loaded").
' - ';
399 $html .=
' '.$langs->trans(
"ErrorPHPDoesNotSupport", $name);
401 $html .=
' <span class="opacitymedium">'.$optional.
'</span>';
getResultColumn($name, array $activated, array $loaded, array $functions, $optional='')
Return a result column with a translated result text.
versiontostring($versionarray)
Return a version in a string from a version into an array.
versionphparray()
Return version PHP.
versioncompare($versionarray1, $versionarray2)
Compare 2 versions (stored into 2 arrays), to know if a version (a,b,c) is lower than (x,...
phpinfo_array()
Return the php_info into an array.
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
img_warning($titlealt='default', $moreatt='', $morecss='pictowarning')
Show warning logo.
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='', $morecssonpicto='widthpictotitle')
Load a title with picto.
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '...' if string larger than length.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='', $cssfordropdown='info_admin')
Show information in HTML for admin users or standard users.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.