problème "No database selected"

Petit nouveau ! | 1 Messages

14 août 2008, 14:07

bonjour,
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :

fichier : add_user.php :

Code : Tout sélectionner

<?php // connexion à la base include_once('fonctions.php'); $result = db_connect(); if (!$result) die(mysql_error()); // selection de la base de données$select = @mysql_select_db($dbName,$result); if (!$select) die(mysql_error()); ?> <form action="register_new.php" method="post" > <table width="100%" class="menubar" cellpadding="0" cellspacing="0" border="0"> <tr> <td class="menudottedline" width="40%">&nbsp;</td> <td class="menudottedline" align="right"> <table cellpadding="0" cellspacing="0" border="0" id="toolbar"> <tr valign="middle" align="center"> <td> <a class="toolbar" > <input type='submit' name='save' value='' class='bt_sauver' />sauver</a> <br> </td> <td>&nbsp;</td> <td> <a class="toolbar" > <input type='submit' name='apply' value='' class='bt_apply'/> appliquer</a> <br> </td> <td>&nbsp;</td> <td> <a class="toolbar"> <input type='submit' name='cancel' value='' class='bt_cancel'/><br> Annuler</a> </td> </tr> </table> </td> </tr> </table> <br /> <table class="adminheading"> <tr> <th class="menus"> Utilisateur: <small>Ajouter</small> </th> </tr> </table> <table width="100%" > <tr> <td width="60%" valign="top"> <table class="adminform"> <tr> <th colspan="2"> Détails utilisateur </th> </tr> <tr> <td > Nom*:</td> <td> <input type="text" name="nom" class="inputbox" size="40" value="<?=stripslashes($nom); ?>" maxlength="50"> </td> </tr> <tr> <td> Pr&eacute;nom*: </td> <td> <input type="text" name="prénom" class="inputbox" size="40" value="<?=stripslashes($prénom); ?>" maxlength="25"> </td> <tr> <td>Adresse E-mail* :</td> <td><input type="text" name="email" class="inputbox" size="40" value="<?=stripslashes($email); ?>" maxlength="25"> </td> </tr> <tr> <td>Login :</td> <td><input type="text" name="login" class="inputbox" size="40" value="<?=stripslashes($login); ?>" maxlength="50"></td> </tr> <tr> <td>Mot de passe* : </td> <td><input class="inputbox" type="password" name="passwd" size="40" value="" maxlength="25"></td> </tr> <tr> <td> Confirmer le mot de passe: </td> <td><input class="inputbox" type="password" name="passwd2" size="40" value=""> </td> </tr> <tr> <td>Numero de téléphone : </td> <td><input class="inputbox" type="text" name="num_téléphone" size="40" value="<?=stripslashes($num_téléphone); ?>"></td> </tr> <tr> <td>Numero de portable :</td> <td><input class="inputbox" type="text" name="num_portable" size="40" value="<?=stripslashes( $num_portable); ?>"></td> </tr> <tr> <td >Poste interne : </td> <td><input class="inputbox" type="text" name="poste_interne" size="40" value="<?=stripslashes($poste_interne); ?>"></td> </tr> <tr> <td> Fax : </td> <td><input class="inputbox" type="text" name="fax" size="40" value="<?=stripslashes($fax); ?>"></td> </tr> <tr> <td valign="top">Adresse : </td> <td><textarea cols="60" rows="10" name="adresse" class="inputbox"></textarea></td> </tr> <tr> <td >Division* : </td> <? $Result= mysql_query("Select * from division"); $nb = mysql_num_rows($Result); $ListDiv = '<option value="0">Toutes Divisions</option>'; while ($data = mysql_fetch_row($Result)) { echo '<option value="'.$data['id_division'].'">'.$data[' division'].'</option>'; } ?> <td><select name="id_division" id="id_division"> <?=$ListDiv?> </select> </td> </tr> <tr> <td>profession : </td> <td><input class="inputbox" type="text" name="profession" size="40" value="<?=stripslashes($profession); ?>"></td> </tr> </table> </td> </tr> </table> </form>

et le fichier : register_new.php :

Code : Tout sélectionner

<?php // Inclut le fichier de fonctions pour cette application. require_once('fonctions.php'); // création des variables aux noms abrégés $nom = isset($_POST[ 'nom' ]) ? $_POST[ 'nom' ] : ''; $prénom = isset($_POST['prénom']) ? $_POST['prénom'] : ''; $email = isset($_POST[ 'email']) ? $_POST[ 'email'] : ''; $login = isset($_POST[ 'login']) ?$_POST[ 'login'] : ''; $passwd = isset($_POST[ 'passwd']) ?$_POST[ 'passwd'] : ''; $passwd2 = isset($_POST[ 'passwd2']) ? $_POST[ 'passwd2'] : ''; $num_téléphone = isset($_POST[ 'num_téléphone'])? $_POST[ 'num_téléphone' ]: ''; $num_portable = isset($_POST[ 'num_portable' ])? $_POST[ 'num_portable' ]: ''; $poste_interne = isset($_POST[ 'poste_interne'])? $_POST[ 'poste_interne' ]: ''; $fax = isset($_POST[ 'fax' ])? $_POST[ 'fax' ]: ''; $adresse = isset($_POST[ 'adresse']) ? $_POST[ 'adresse' ]: ''; $division =isset($_POST[ 'division']) ? $_POST[ 'division' ]: ''; $profession =isset($_POST[ 'profession']) ? $_POST[ 'profession' ]: ''; $loginAttempts =isset($_POST[ 'loginAttempts']) ? $_POST[ 'loginAttempts' ]: ''; // Démarrage d'une session dont nous aurons besoin plus tard. session_start(); // Vérifie les formulaires remplis. if((isset($_POST["apply"]))||(isset($_POST["save"]))) { $verif=true; // connexion à la base $result = db_connect(); if (!$result) die(mysql_error()); // selection de la base de données $select = @mysql_select_db($dbName,$result); if (!$select) die(mysql_error()); $res=mysql_query("select * from hd_utilisateur where username='$login'"); $num=mysql_num_rows($res); if (!$num) die(mysql_error()); if (!filled_out($HTTP_POST_VARS)) { $verif=false; echo ('<font color="red">Attention, veuillez remplir tout les champs </font>'); //on recharge la page :le meme formulaire : appliquer cette instruction ailleurs header("Location:add_user.php") ; } // L'adresse e-mail n'est pas valide. elseif (!valid_email($email)) { $verif=false; echo ('Entrez une adresse e-mail valide!!'); header("Location:add_user.php") ; } elseif($num >=1) { $verif=false; echo "Désolé, ce login existe déja choisir un autre login S.V.P "; } //Les mots de passe ne sont pas identiques. elseif ($passwd != $passwd2) { $verif=false; echo ('Les mots de passes ne correspondent pas'); header("Location:add_user.php") ; } // Vérifie lalongueur du mot de passe. //elseif ((strlen($passwd)<6 || (strlen($passwd) >16)) //{ // $verif=false; //echo ('Votre mot de passe doit être compris entre 6 et 16 caractères'); // header("Location:add_user.php") ; //} // Vérifie si la longueur du nom d'utilisateur est ok. elseif (strlen($login)>16) { $verif=false; echo ('Votre nom d\'utilisateur doit etre inférieur à 16 caractères'); //exit; } elseif (!ereg ("[a-zA-Z]", $nom, $regs) or ereg ("[0-9]", $nom, $regs)) { $verif=false; echo "Format de nom invalide : $nom"; } elseif (!ereg ("[a-zA-Zéè'à]", $prenom, $regs) or ereg ("[0-9]", $prenom, $regs)) { $verif=false; echo "Format de prenom invalide : $prenom"; } elseif (!ereg ("[0-9/-:+-]", $num_téléphone, $regs) or ereg ("[a-zA-Z]", $num_téléphone, $regs)) { $verif=false; echo "Format de telephone invalide : $num_téléphone"; } elseif (!ereg ("[0-9/-:+-]", $num_portable, $regs) or ereg ("[a-zA-Z]", $num_portable, $regs)) { $verif=false; echo "Format de telephone invalide : $num_portable"; } elseif (!ereg ("[0-9/-:+-]", $poste_interne, $regs) or ereg ("[a-zA-Z]", $poste_interne, $regs)) { $verif=false; echo "Format de telephone invalide : $poste_interne"; } elseif (!ereg ("[0-9/-:+-]", $fax, $regs) or ereg ("[a-zA-Z]", $fax, $regs)) { $verif=false; echo "Format de fax invalide : $fax"; } elseif(strlen($adresse)>255) { $verif=false; echo "Format d'adresse invalide : elle a dépassé 255 caractères"; } //Aucun champ n'est vide, on peut enregistrer dans la table else { if($verif) { // connexion à la base $result = db_connect(); if (!$result) die(mysql_error()); // selection de la base de données $select = @mysql_select_db($dbName,$result); if (!$select) die(mysql_error()); // on écrit la requête sql $sql = "INSERT INTO hd_utilisateur (nom, prenom,email, username, passwd,telephone,user_mobile,poste_interne,fax,adresse,division,profession) VALUES('$nom','$prénom','$email','$login','$passwd','$num_téléphone','$num_portable','$poste_interne','$fax ', '$adresse ','$division','$profession ')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'); mysql_close(); // on affiche le résultat pour le visiteur echo 'Vos données ont été ajoutées.'; } } } // Tente d'enregistrer l'uitilsateur. // Cette fonction peut également lever une exception. //register($login, $email, $passwd); // Enregistre la variable de session. // $_SESSION['valid_user'] = $login; //if username or password is blank, send to errorlogin.html //if ((!$username) || (!$password)) //{ // header("Location:erreur.php"); // exit; //} // { /*function to check the length of the requested password function password_check($min_pass, $max_pass, $pass) { $valid = "yes"; if ($min_pass > strlen($pass) || $max_pass < strlen($pass)) { $valid = "no"; } return $valid; } */ ?>
et le fichier fonctions.php :

Code : Tout sélectionner

<?php //require_once("db_connect.php"); /* ------------------------------------------------------------------------------------- *Fonction qui établit la connexion à la base de données MySQL ----------------------------------------------------------------------------------------- */ Function db_connect() { $dbHost = "localhost"; $dbUser = "root"; $dbPass = ""; $dbName = "db_helpdesk"; $result = @mysql_connect($dbHost, $dbUser, $dbPass) ; $select= @mysql_select_db($dbName,$result); if (!$select) die (mysql_error()); if (!$result) die(mysql_error()); else return $result; } // ALL PATHS BELOW ARE RELATIVE TO THE DIRECTORY WHERE YOU HAVE INSTALLED vAuthenticate //$resultpage = "login1.php"; // THIS IS THE PAGE THAT WOULD CHECK FOR AUTHENTICITY //$admin = "administrateur/accueil.php"; // THIS IS THE PATH TO THE ADMIN INTERFACE //$success = "administrateur/index.php"; // THIS IS THE PAGE TO BE SHOWN IF USER IS AUTHENTICATED //$failure = "erreur.php"; // THIS IS THE PAGE TO BE SHOWN IF USERNAME-PASSWORD COMBINATION DOES NOT MATCH /* ------------------------------------------------------------------------------------- *Fonction qui vérifie que le formulaire a bien été rempli ----------------------------------------------------------------------------------------- */ function filled_out($form_vars) { // Teste si chaque variable contient une valeur. foreach ($form_vars as $key => $value) { if (!isset($key)||($value == '')) return false; } return true; } /* ------------------------------------------------------------------------------------- *Fonction qui vérifie que l'adresse e-mail est valide ----------------------------------------------------------------------------------------- */ function valid_email($address) { // Vérifie que l'adresse e-mail est valide. if (ereg('^[a-zA-Z0-9 \._\-]+@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]+$', $address)) return true; else return false; } /* ------------------------------------------------------------------------------------- *Fonction login() - vérifie les informations d'ouverture de session d'un utilisateur ----------------------------------------------------------------------------------------- */ Function login($login, $password) // Vérifie le nom de l'utilisateur et son mot de passe avec // la base de données. // Si c'est bon, on retourne le type d'ouverture de session. // Sinon on retourne false. { // Connexion à la base de données. $conn = db_uconnect(); if (!conn){ echo"Echec de la connexion "; return 0; } $query = "select username from hd_utilisateur where username = '$login' and passwd = sha1('$password')"; $result = mysql_query($query); if(!$result){ echo"Impossible d'éxécuter la requète, réessayez plus tard"; return false; } if (mysql_num_rows($result)<1) return false; $row = $result->fetch_array(); if ($row[0] =='admin') { return 'admin'; header("location:accueil.php"); } else { return 'normal'; header("location:index1.php"); } } function Login_User(){ //global $_SESSION; global $username, $password, $submit; if(isset($_POST['submit'])) { $login = $_POST['login']; $password = $_POST['passwd']; if(!filled_out($_POST)) { echo"Vous n'avez pas remplis tous les champs"; include("../index.php"); exit; } if(login($login, $passwd)) { $_SESSION['valid_user'] = $username; if ($row[0] =='admin') { return 'admin'; header("location:accueil.php"); } else { return 'normal'; header("location:index1.php"); } exit; } else { echo"Le nom et le mot de passe sont incorrects"; include("../index.php"); exit; } } else include("../index.php"); } ?>


le fichier create.php qui permet de créer ma base et mes tables :


Code : Tout sélectionner

<?php //include("../connect.php"); $link = "CREATE DATABASE db_helpdesk"; $res = mysql_query($link) or die(mysql_error()); mysql_select_db("db_helpdesk"); $link = " CREATE TABLE `hd_utilisateur` ( `id_user` int(11) NOT NULL auto_increment PRIMARY KEY, `nom` text NOT NULL, `prenom` text NOT NULL, `email` varchar(255) NOT NULL default '', `username` varchar(16) NOT NULL, `passwd` varchar(50) NOT NULL default '', `telephone` varchar(50) NOT NULL default '', `user_mobile` varchar(50) NOT NULL default '', `poste_interne` varchar(50) NOT NULL default '', `fax` varchar(50) NOT NULL default '', `adresse` varchar(200) NOT NULL default '', `profession` text NOT NULL, `fk_division` int(11), `user_type` text NOT NULL ) AUTO_INCREMENT=1;" ; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_division` ( `id_division` int(11) NOT NULL auto_increment PRIMARY KEY, `division` text NOT NULL, `fk_centre_cout` int(11) ) AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_centre_cout` ( `id_centre_cout` int(11) NOT NULL auto_increment PRIMARY KEY ) AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_incident` ( `id_incident` int(11) NOT NULL auto_increment PRIMARY KEY, `fk_type_incident` varchar(200) NOT NULL default '', `fk_sous_type_incident` varchar(200) NOT NULL default '', `fk_statut` int(11), `fk_user` int(11), `Date_creation` date, `Date_échéance` date , `Date_fermeture` date , `objet` varchar(200) NOT NULL default '', `message` varchar(200) NOT NULL )AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_statut` ( `id_statut` int(11) NOT NULL auto_increment PRIMARY KEY, `nom_statut` text NOT NULL, `description` text NOT NULL )AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_type_incident` ( `id_type_incident` int(11) NOT NULL auto_increment PRIMARY KEY, `description` text NOT NULL, `fk_user` int(11) )AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); $link = " CREATE TABLE `hd_sous_type_incident` ( `id_sous_type_incident` int(11) NOT NULL auto_increment PRIMARY KEY, `description` text NOT NULL, `fk_type_incident` int(11), `fk_user` int(11) )AUTO_INCREMENT=1;"; $res = mysql_query($link) or die(mysql_error()); if ($res) die("<p>Base de données créee avec succés . SVP supprimez ce fichier pour des raisons de sécurité .</p>"); ?>

une question qui m'intrigue concernant les clés étrangères , pourai-je ajouter le type innodb dans le fichier create.php pour bien les gérer ? si oui au niveau de quelles tables ? est_ce celles contenant les clés étrangères ? et comment l'ajouter ?

désolée si vous trouvez mon code pas trés propre " je suis novice"

merci pour tous ceux qui prondront le temps pour lire mon message et de me dire où j'ai commis des erreurs