<?php
function SQLConnect($mysql_host, $mysql_user, $mysql_pass, $mysql_base)
{
	
	if ( ! ($link = @mysql_connect($mysql_host,$mysql_user,$mysql_pass)) )
		return('Erreur MySql : Impossible de se connecter : ' . mysql_error());
	if ( ! @mysql_select_db($mysql_base))
		return('Erreur Mysql : Impossible de sélectionner la database');
}

function SQLFileExec($filepath)
{
	// Chargement du fichier complet dans la variable $request... 
	
	// C'est une méthode barbare, mais il est compliqué de faire mieux
	if ( ! ($fd=fopen($filepath,'r') ) )
	{
		echo '<div class="errmsg" style="color:#900">Impossible d\'ouvrir le fichier ' . $filepath . "</div>\n";
	}
	else
	{
		if ( ! feof( $fd ) ) { $script = fgets($fd,4096); }
		$request = '';
		while ( ! feof( $fd ) )
		{
			$request .= fgets($fd,4096);
		}
		
		// Explosion dans un tableau, requete par requete
		$tabReq = explode(";", $request);
		
		// Pour chaque requete
		foreach ( $tabReq as $req )
		{
			$req=trim($req);
			if ( $req !== "" )
			{
				// affichage de verification
				echo '<div class="sqlcode" style="color:#009">' . str_replace("\n", '<br />', htmlspecialchars( $req) ) ."</div>\n";
				
				// execution de la requete et affichage de l'erreur s'il y a lieu
				if ( ! mysql_query($req) )
				{
					echo '<div class="sqlerr" style="color:#900">' . 'Erreur No ' . mysql_errno() . ' : ' . htmlspecialchars( mysql_error() ) . "</div>\n";
				}
			}
		}
	}
}
echo '<?xml version="1.0" encoding="ISO-8859-1"?>' 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>AWOR - RAZBase</title>
		<style>
body{
	margin : 0 25%;
	font:80% sans-serif;
}
h1 {
	text-align:center;
}
*.errmsg {
    color : red
}
*.sqlerr {
    color : orange
}
*.sqlcode {
    border: thin solid gray;
    color : blue;
    margin : 2em 0;
}
		</style>
	</head>
	<body>
		<h1>Remise à zéro de la base de données</h1>
		<form action='' method="post">
<?php if ( ! isset($_POST['confirm']) ) { ?>
			<p>
				Ce script va détruire toutes les tables d'une précédente installation (si elles existent) et va les recréer, dépourvues de données.<br />
				Vous devrez utiliser un compte SQL qui ait les droits nécessaires (DROP, CREATE TABLE...). Notez que ces droits sont superflus pour le fonctionnement normal de l'application.<br />
				Etes-vous sûr de vouloir réinitialiser la base de données ?<br />
				<label>Addresse du serveur SQL :&nbsp;</label><input name="SQLhost" type="text"  value="localhost" /><br />
				<label>Utilisateur SQL :&nbsp;</label><input name="SQLuser" type="text" /><br />
				<label>Mot de passe SQL :&nbsp;</label><input name="SQLpwd" type="password" /><br />
				<label>Database SQL :&nbsp;</label><input name="SQLdb" type="text" /><br />
				<input type="hidden" name="confirm" value="1" />
				<input type="submit" value="Confirmer" />
			</p>
		</form>
<?php } ?>		

<?
if (isset($_POST['confirm']) )
{
	echo '		<p>';
	$errmsg = SQLConnect( addslashes($_POST['SQLhost']),addslashes($_POST['SQLuser']),addslashes($_POST['SQLpwd']),addslashes($_POST['SQLdb']) );
	if (  $_POST['confirm'] === '1' )
	{
		if ( is_string($errmsg) ) { echo $errmsg; } else
		{
			SQLFileExec('base.sql');
?>
		</p>
		<form action="" method="post">
			<p>
				Si vous le souhaitez, vous pouvez insérer un jeu d'essai pour tester l'application.<br />
				Vous pouvez effectuer l'insertion de  ce jeu d'essai avec le compte MySQL qui sera utilisé au fonctionnement de l'application, pour tester si les droits sont suffisants.
				<label>Addresse du serveur SQL :&nbsp;</label><input name="SQLhost" type="text"  value="localhost" /><br />
				<label>Utilisateur SQL :&nbsp;</label><input name="SQLuser" type="text" /><br />
				<label>Mot de passe SQL :&nbsp;</label><input name="SQLpwd" type="password" /><br />
				<label>Database SQL :&nbsp;</label><input name="SQLdb" type="text" /><br />
				<input type="hidden" name="confirm" value="2" />
				<input type="submit" value="Insérer" />
			</p>
		</form>
<?php
		}
	}
	elseif (  $_POST['confirm'] === '2' )
	{
		SQLFileExec('jeu_essai.sql');
	}
}
?>
		<p><a href="../app/index.php">Retour à l'index</a></p>
	</body>
</html>