"No database selected"

Résolu
cs_batoule80 Messages postés 13 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 23 février 2010 - 14 août 2008 à 20:30
cs_batoule80 Messages postés 13 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 23 février 2010 - 16 août 2008 à 02:20
bonjour,

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

voici mon code :


fichier : add_user.php :
<tt style="font-size: 9pt;"><?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" > 

<td>

     

     sauver 


</td>

 

<td>





appliquer 
 

</td> 

<td >

Nom*:</td>

<td>

" maxlength="50"> </td>

</tr>

<tr>

<td>

Pr&amp;eacute;nom*: </td>

<td>

" maxlength="25"> </td>

<tr>

<td>Adresse E-mail* :</td>

<td>" maxlength="25"> </td>

</tr>

<tr>

<td>Login :</td>

<td>" maxlength="50"></td>

</tr>

<tr>

<td>Mot de passe* : </td>

<td></td>

</tr>

<tr>

<td> Confirmer le mot de passe: </td>

<td> </td>

</tr>

<tr>

<td>Numero de téléphone : </td>

<td>"></td>

</tr>

<tr>

<td>Numero de portable :</td>

<td>"></td>

</tr>

<tr>

<td >Poste interne : </td>

<td>"></td>

</tr>

<tr>

<td> Fax : </td>

<td>"></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>"></td>

</tr>

</table> </td>

</tr>

</table>

</form> 
</tt>




et le fichier : register_new.php :
<tt style="font-size: 9pt;"><?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 ('Attention, veuillez remplir tout les champs ');

//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 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.';

 

} }

 

}

?>
</tt>



et le fichier fonctions.php :

<tt style="font-size: 9pt;"><?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;

 

} 

/*

-------------------------------------------------------------------------------------

*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;

 

 

}

?>
</tt>



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

<tt style="font-size: 9pt;"> <?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("Base de données créee avec succés . SVP supprimez ce fichier pour des raisons de sécurité .

");

?>
</tt>

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

1 réponse

cs_batoule80 Messages postés 13 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 23 février 2010
16 août 2008 à 02:20
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 :
Function db_connect()
{

$dbHost = "localhost";
$dbUser = "root";
$dbPass = "";
$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 :

global $dbHost,$dbUser, $dbPass,$dbName; 


voilà et un problème de plus résolu
 

<hr size="2" width="100%" /><hr size="2" width="100%" /><hr size="2" width="100%" />
3
Rejoignez-nous