<?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 : </label><input name="SQLhost" type="text" value="localhost" /><br /> <label>Utilisateur SQL : </label><input name="SQLuser" type="text" /><br /> <label>Mot de passe SQL : </label><input name="SQLpwd" type="password" /><br /> <label>Database SQL : </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 : </label><input name="SQLhost" type="text" value="localhost" /><br /> <label>Utilisateur SQL : </label><input name="SQLuser" type="text" /><br /> <label>Mot de passe SQL : </label><input name="SQLpwd" type="password" /><br /> <label>Database SQL : </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>