Ne pas répétez un script en cas de reload
Posté : 22 sept. 2005, 13:59
Bonjour à tous,
je me lance dans le développement d'un forum (un peu sur le même modèle que phpBB). J'ai un problème dans mon script qui va me permettre d'installer la base de données.
J'aimerais que lorsque la base a été installée, si l'utilisateur recharge la page, le script ne se relance pas. j'ai essayé de définir une variable $_SESSIOn['install'] une fois la base installée, mais cela ne marche pas.
Notice: Undefined index: install aux lignes 17,20, 80, 86.
pourquoi ça ?
je me lance dans le développement d'un forum (un peu sur le même modèle que phpBB). J'ai un problème dans mon script qui va me permettre d'installer la base de données.
J'aimerais que lorsque la base a été installée, si l'utilisateur recharge la page, le script ne se relance pas. j'ai essayé de définir une variable $_SESSIOn['install'] une fois la base installée, mais cela ne marche pas.
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans nom</title>
<link href="css_green.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
// initialisation de la variable $_SESSION['install']
if (!isset($_SESSION['install']))
{
$_SESSION['install']==0;
}
// Si formulaire envoyé :
if (isset ($_POST['sub']) && $_POST['sub']=="Install")
{
//récuperation des données du formulaire
if (isset ($_POST['host'])) { $host = $_POST['host']; } else { echo "Host vide"; }
if (isset ($_POST['login'])) { $login = $_POST['login']; } else { echo "Login vide"; }
if (isset ($_POST['pass'])) { $pass = $_POST['pass']; } else { echo "Pass vide"; }
if (isset ($_POST['db'])) { $db = $_POST['db']; } else { echo "Nom de la base de données vide"; }
if (isset ($_POST['suffixe'])) { $suffixe = $_POST['suffixe']; } else { $suffixe = ""; }
if (isset ($_POST['admin_login'])) { $admin_login = $_POST['admin_login']; } else { echo "Login admin vide"; }
if (isset ($_POST['admin_pass'])) { $admin_pass = $_POST['admin_pass']; } else { echo "Pass admin vide"; }
if (isset ($_POST['admin_pass2'])) { $admin_pass2 = $_POST['admin_pass2']; } else { echo "Pass admin vide"; }
if (isset ($_POST['admin_mail'])) { $admin_mail = $_POST['admin_mail']; } else { echo "Mail admin vide"; }
if (isset($_SESSION['install']) && $_SESSION['install']!=1)
{
// vérification du pass admin
if ($admin_pass != $admin_pass2)
{
echo "<center><span class=\"warning\">** Les pass admin ne concordent pas. **</span></center><br />";
}
else
{
// cryptage du pass admin et création des tables
$admin_pass = md5($admin_pass);
$connexion=mysql_connect($host,$login,$pass);
mysql_select_db($db,$connexion);
$sql01 = "CREATE TABLE `".$suffixe."users` (
`id_user` int(11) NOT NULL auto_increment,
`login` text NOT NULL,
`pass` text NOT NULL,
`mail` text NOT NULL,
`acces` int(11) NOT NULL,
PRIMARY KEY (`id_user`)
) TYPE=MyISAM AUTO_INCREMENT=1";
$query01 = mysql_query($sql01) OR die ("Erreur 01 : ".mysql_error());
// insertions des données admin dans la table user
$sql02 = "INSERT INTO ".$suffixe."users VALUES ('01','".$admin_login."','".$admin_pass."','".$admin_mail."','0')";
$query02 = mysql_query($sql02) OR die ("Erreur 02 : ".mysql_error());
// forum installé !
echo "<center><span class=\"warning\">** Le forum a été correctement installé !</span></center><br />";
$_SESSION['install'] = 1;
}
}
//ouverture de session admin
$_SESSION['login'] = $admin_login;
$_SESSION['pass'] = $admin_pass;
?>
<center>
Bienvenue, <?php echo $admin_login; ?>.<br />
<a href="admin/index.php" class="link-install">Administration</a> -
<a href="index.php" class="link-install">Forum</a>
</center>
<?php
}
?>
<?php
// Si le forum n'est pas encore installé
if ($_SESSION['install']!=1) {
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" name="install" method="POST">
<table width="50%" align="center">
<tr>
<td colspan="2"><b>Ce fichier va vous aider à installer ce forum.
Remplissez les champs-ci dessous.</b><br /><br /></td>
</tr>
<tr>
<td width="40%">Host :</td>
<td><input type="text" name="host" /></td>
</tr>
<tr>
<td>Login :</td>
<td><input type="text" name="login" /></td>
</tr>
<tr>
<td>Pass :</td>
<td><input type="password" name="pass" /></td>
</tr>
<tr>
<td>DataBase name :</td>
<td><input type="text" name="db" /></td>
</tr>
<tr>
<td>Suffixe pour les tables :</td>
<td><input type="text" name="suffixe" value="forum_" /></td>
</tr>
<tr>
<td height="20"></td>
<td></td>
</tr>
<tr>
<td>Login admin :</td>
<td><input type="text" name="admin_login" /></td>
</tr>
<tr>
<td>Pass admin :</td>
<td><input type="text" name="admin_pass" /></td>
</tr>
<tr>
<td>Validez pass admin :</td>
<td><input type="text" name="admin_pass2" /></td>
</tr>
<tr>
<td>E-mail admin :</td>
<td><input type="text" name="admin_mail" /></td>
</tr>
<tr>
<td height="20"></td>
<td></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="sub" value="Install" class="submit" /></td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
les erreurs :Notice: Undefined index: install aux lignes 17,20, 80, 86.
pourquoi ça ?