forked from Wavyzz/dolibarr
272 lines
8.6 KiB
PHP
272 lines
8.6 KiB
PHP
<?php
|
|
/* Copyright (C) 2004-2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
|
|
* Copyright (C) 2004-2007 Laurent Destailleur <eldy@users.sourceforge.net>
|
|
* Copyright (C) 2005 Marc Barilley / Océbo <marc@ocebo.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License 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.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*
|
|
* $Id$
|
|
* $Source$
|
|
*/
|
|
|
|
/**
|
|
\file htdocs/install/check.php
|
|
\ingroup install
|
|
\brief Test si le fichier conf est modifiable et si il n'existe pas, test la possibilité de le créer
|
|
\version $Revision$
|
|
*/
|
|
|
|
$err = 0;
|
|
$allowinstall = 0;
|
|
$allowupgrade = 0;
|
|
$checksok = 1;
|
|
|
|
include_once("./inc.php");
|
|
|
|
$setuplang=isset($_POST["selectlang"])?$_POST["selectlang"]:(isset($_GET["selectlang"])?$_GET["selectlang"]:$langs->getDefaultLang());
|
|
$langs->setDefaultLang($setuplang);
|
|
|
|
$langs->load("install");
|
|
|
|
|
|
dolibarr_install_syslog("check: Dolibarr install/upgrade process started");
|
|
|
|
|
|
pHeader($langs->trans("DolibarrWelcome"),""); // Etape suivante = license
|
|
|
|
print '<center><img src="../theme/dolibarr_logo_2.png" alt="Dolibarr logo"></center><br>';
|
|
print "<br>\n";
|
|
|
|
|
|
print $langs->trans("InstallEasy")."<br><br>\n";
|
|
|
|
print '<b>'.$langs->trans("MiscellanousChecks")."</b>:<br>\n";
|
|
|
|
|
|
// Check PHP version
|
|
if (versioncompare(versionphp(),array(4,1)) < 0)
|
|
{
|
|
print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ErrorPHPVersionTooLow",'4.1');
|
|
$checksok=0;
|
|
}
|
|
else
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("PHPVersion")." ".versiontostring(versionphp());
|
|
}
|
|
print ' (<a href="phpinfo.php" target="_info">'.$langs->trans("MoreInformation").'</a>)';
|
|
print "<br>\n";
|
|
|
|
|
|
// Check PHP support for $_POST
|
|
if (! isset($_GET["testget"]) && ! isset($_POST["testpost"]))
|
|
{
|
|
print '<img src="../theme/eldy/img/warning.png" alt="Warning"> '.$langs->trans("PHPSupportPOSTGETKo");
|
|
print ' (<a href="'.$_SERVER["PHP_SELF"].'?testget=ok">'.$langs->trans("Recheck").'</a>)';
|
|
print "<br>\n";
|
|
$checksok=0;
|
|
}
|
|
else
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("PHPSupportPOSTGETOk")."<br>\n";
|
|
}
|
|
|
|
|
|
// Check if sessions enabled
|
|
if (! function_exists("session_id"))
|
|
{
|
|
print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ErrorPHPDoesNotSupportSessions")."<br>\n";
|
|
$checksok=0;
|
|
}
|
|
else
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("PHPSupportSessions")."<br>\n";
|
|
|
|
/*
|
|
// On se fout des warning sur session_start, meme si pas moyen de mettre cookie dans http, car on ne test pas entre 2 pages mais au sein de la meme
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> Test sauvegarde donnée en session.'."<br>\n";;
|
|
@session_start();
|
|
$_SESSION['test']=1;
|
|
session_write_close();
|
|
|
|
@session_start();
|
|
if (! $_SESSION['test']) print '<img src="../theme/eldy/img/error.png" alt="Error"> Echec récupération donnée en session. Votre PHP ne fonctionne pas correctement. Votre répertoire de sauvegarde des sessions est peut-être plein.'."<br>\n";
|
|
else print '<img src="../theme/eldy/img/tick.png" alt="Ok"> Succès récupération donnée en session.'."<br>\n";
|
|
session_write_close();
|
|
*/
|
|
}
|
|
|
|
// Si fichier présent et lisible et renseigné
|
|
clearstatcache();
|
|
if (is_readable($conffile) && filesize($conffile) > 8)
|
|
{
|
|
dolibarr_install_syslog("check: conf file '$conffile' already exists");
|
|
$confexists=1;
|
|
include_once($conffile);
|
|
|
|
// Deja installé, on peut upgrader
|
|
// \todo Test if database ok
|
|
$allowupgrade=1;
|
|
}
|
|
else
|
|
{
|
|
// Si non on le crée
|
|
dolibarr_install_syslog("check: we try to creat conf file '$conffile'");
|
|
$confexists=0;
|
|
|
|
# First we try by copying example
|
|
if (copy($conffile.".example", $conffile))
|
|
{
|
|
# Success
|
|
dolibarr_install_syslog("check: copied file ".$conffile.".example into ".$conffile." done successfully.");
|
|
}
|
|
else
|
|
{
|
|
# If failed, we try to create an empty file
|
|
dolibarr_install_syslog("check: failed to copy file ".$conffile.".example into ".$conffile.". We try to create it.");
|
|
|
|
$fp = @fopen($conffile, "w");
|
|
if ($fp)
|
|
{
|
|
@fwrite($fp, '<?php');
|
|
@fputs($fp,"\n");
|
|
@fputs($fp,"?>");
|
|
fclose($fp);
|
|
}
|
|
}
|
|
|
|
// First install, on ne peut pas upgrader
|
|
$allowupgrade=0;
|
|
}
|
|
|
|
|
|
|
|
// Si fichier absent et n'a pu etre créé
|
|
if (! file_exists($conffile))
|
|
{
|
|
//print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ConfFileDoesNotExistsAndCouldNotBeCreated",$conffile);
|
|
print '<img src="../theme/eldy/img/error.png" alt="Error"> '.$langs->trans("ConfFileDoesNotExistsAndCouldNotBeCreated",'conf.php');
|
|
print "<br /><br />";
|
|
print $langs->trans("YouMustCreateWithPermission",'htdocs/conf/conf.php');
|
|
print "<br /><br />";
|
|
|
|
print $langs->trans("CorrectProblemAndReloadPage",$_SERVER['PHP_SELF'].'?testget=ok');
|
|
$err++;
|
|
}
|
|
else
|
|
{
|
|
// Si fichier présent mais ne peut etre modifié
|
|
if (!is_writable($conffile))
|
|
{
|
|
if ($confexists)
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("ConfFileExists",'conf.php');
|
|
}
|
|
else
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("ConfFileCouldBeCreated",'conf.php');
|
|
}
|
|
print "<br />";
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Warning"> '.$langs->trans("ConfFileIsNotWritable",'htdocs/conf/conf.php');
|
|
print "<br />\n";
|
|
|
|
$allowinstall=0;
|
|
}
|
|
// Si fichier présent et peut etre modifié
|
|
else
|
|
{
|
|
if ($confexists)
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("ConfFileExists",'conf.php');
|
|
}
|
|
else
|
|
{
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("ConfFileCouldBeCreated",'conf.php');
|
|
}
|
|
print "<br />";
|
|
print '<img src="../theme/eldy/img/tick.png" alt="Ok"> '.$langs->trans("ConfFileIsWritable",'conf.php');
|
|
print "<br />\n";
|
|
|
|
$allowinstall=1;
|
|
}
|
|
print "<br />\n";
|
|
print "<br />\n";
|
|
|
|
// Si prerequis ok, on affiche le bouton pour passer à l'étape suivante
|
|
if ($checksok)
|
|
{
|
|
print $langs->trans("ChooseYourSetupMode");
|
|
|
|
print '<table width="100%" cellspacing="1" cellpadding="4" border="1">';
|
|
|
|
print '<tr><td nowrap="nowrap"><b>'.$langs->trans("FreshInstall").'</b></td><td>';
|
|
print $langs->trans("FreshInstallDesc").'</td>';
|
|
print '<td align="center">';
|
|
if ($allowinstall)
|
|
{
|
|
print '<a href="licence.php?selectlang='.$setuplang.'">'.$langs->trans("Start").'</a>';
|
|
}
|
|
else
|
|
{
|
|
print $langs->trans("InstallNotAllowed");
|
|
}
|
|
print '</td>';
|
|
print '</tr>'."\n";
|
|
|
|
# Upgrade
|
|
$versionfrom='2.0.0';
|
|
$versionto='2.2.0';
|
|
print '<tr><td nowrap="nowrap"><b>'.$langs->trans("Upgrade").' '.$versionfrom.' -> '.$versionto.'</b></td><td>';
|
|
print $langs->trans("UpgradeDesc").'</td>';
|
|
print '<td align="center">';
|
|
if ($allowupgrade)
|
|
{
|
|
print '<a href="upgrade.php?action=upgrade&selectlang='.$setuplang.'&versionfrom='.$versionfrom.'&versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
|
|
}
|
|
else
|
|
{
|
|
print $langs->trans("NotAvailable");
|
|
}
|
|
print '</td>';
|
|
print '</tr>'."\n";
|
|
|
|
# Upgrade
|
|
$versionfrom='2.1.0';
|
|
$versionto='2.2.0';
|
|
print '<tr><td nowrap="nowrap"><b>'.$langs->trans("Upgrade").' '.$versionfrom.' -> '.$versionto.'</b></td><td>';
|
|
print $langs->trans("UpgradeDesc").'</td>';
|
|
print '<td align="center">';
|
|
if ($allowupgrade)
|
|
{
|
|
print '<a href="upgrade.php?action=upgrade&selectlang='.$setuplang.'&versionfrom='.$versionfrom.'&versionto='.$versionto.'">'.$langs->trans("Start").'</a>';
|
|
}
|
|
else
|
|
{
|
|
print $langs->trans("NotAvailable");
|
|
}
|
|
print '</td>';
|
|
print '</tr>'."\n";
|
|
|
|
print '</table>';
|
|
print "\n";
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pFooter(1); // 1 car ne doit jamais afficher bouton Suivant
|
|
|
|
?>
|