summaryrefslogtreecommitdiff
path: root/final/install/RAZbase.php
blob: 82bdba1c585b4dab664523dabafcfbfe638cd66f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?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>