"No database selected"
Résolu
batoule80
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
batoule80 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
batoule80 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :
fichier : add_user.php :
et le fichier : register_new.php :
et le fichier fonctions.php :
le fichier create.php qui permet de créer ma base et mes tables :
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
j'ai beau cherché sur les forum une solution à mon problème , mais en vain
voici mon code :
fichier : add_user.php :
<?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%"> </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> </td> <td> <a class="toolbar" > <input type='submit' name='apply' value='' class='bt_apply'/> appliquer</a> <br> </td> <td> </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é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 :
<?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 :
<?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 :
<?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
A voir également:
- "No database selected"
- Borland database engine - Télécharger - Édition & Programmation
- Nº sur clavier ✓ - Forum Windows
- No such file or directory ✓ - Forum Linux / Unix
- No epg found - Forum Box et Streaming vidéo
- No signal tv - Guide
2 réponses
salut,
j'ai pu réglé le problème , j'ai désinstallé wamp et je suis passée à easyphp "problème de configuration" concernant l'affichage des erreurs
voici le nouveau message d'erreur :
Notice: Undefined variable: dbName in c:\program files\easyphp1-8\www\help desk\administrateur\add_user.php on line 50
No database selected
en effet dans ma fonction :
les variables déclarées dans cette fonction ne sont accéssible qu'à l'intérieur de cette meme fonction alors il suffisait d'ajouter la ligne suivante pour y accéder depuis n'importe quel fichier :
voilà et un problème de plus résolu
j'ai pu réglé le problème , j'ai désinstallé wamp et je suis passée à easyphp "problème de configuration" concernant l'affichage des erreurs
voici le nouveau message d'erreur :
Notice: Undefined variable: dbName in c:\program files\easyphp1-8\www\help desk\administrateur\add_user.php on line 50
No database selected
en effet dans ma fonction :
Function db_connect() { $dbHost = "localhost"; $dbUser = "root"; $dbPass = ""; global $dbHost,$dbUser, $dbPass,$dbName; $dbName = "db_helpdesk"; $result = mysql_connect($dbHost, $dbUser, $dbPass) ; if (!$result) die(mysql_error()); $select= mysql_select_db($dbName,$result); if (!$select) die (mysql_error()); else return $result; }
les variables déclarées dans cette fonction ne sont accéssible qu'à l'intérieur de cette meme fonction alors il suffisait d'ajouter la ligne suivante pour y accéder depuis n'importe quel fichier :
global $dbHost,$dbUser, $dbPass,$dbName;
voilà et un problème de plus résolu
Plusieurs points:
deja essaie de ne JAMAIS mélanger dans un meme fichier du php avec du html c'est vraiment la pire des erreurs a faire, utilises du templating (il en existe pleins, genre smarty)
2: Rend le code plus propre en programmant en objet, et en creant des classes, ca evite souvent de passer par des variables globales.
A la vu de ton code tu dois bien te prendre la tete a debugguer ;-)
bon courage
deja essaie de ne JAMAIS mélanger dans un meme fichier du php avec du html c'est vraiment la pire des erreurs a faire, utilises du templating (il en existe pleins, genre smarty)
2: Rend le code plus propre en programmant en objet, et en creant des classes, ca evite souvent de passer par des variables globales.
A la vu de ton code tu dois bien te prendre la tete a debugguer ;-)
bon courage
bonjour,
en effet, ma manière de cofidier est loin d'etre propre vue que je suis novice en programmation php/mysql , mais je vais m'améliorer dans les projets à venir " c'est juste une question de temps et de volonté surtout" .
pour le moment je me contenterai de la programmation procédurale , la programmation objet offre beaucoup d'avantages tel que la réutilisation du code ... mais pour le moment je ne la maitrise pas vraiment .
merci texouille d'avoir pris un peu de temps pour me donner ces conseils que sans doute je vais les prendre en considération prochainement
cordialement.
en effet, ma manière de cofidier est loin d'etre propre vue que je suis novice en programmation php/mysql , mais je vais m'améliorer dans les projets à venir " c'est juste une question de temps et de volonté surtout" .
pour le moment je me contenterai de la programmation procédurale , la programmation objet offre beaucoup d'avantages tel que la réutilisation du code ... mais pour le moment je ne la maitrise pas vraiment .
merci texouille d'avoir pris un peu de temps pour me donner ces conseils que sans doute je vais les prendre en considération prochainement
cordialement.