No database selected [Résolu]

Signaler
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011
-
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
-
bonjour à tous,
je rencontre un petit soucis avec un de mes formulaire depuis que je l'ai mis en ligne.il doit me permettre de faire des enregistrements de bordereaux, j'ai ce message d'erreur chaque fois que je clic que le bouton 'ENREGISTRER' :
No database selected
. j'ai beau fouillé mais je ne vois toujours pas d'ou vient le probleme, tout me semble correcte. voici le code de ma page
<script src="champsdyna1.js"></script>
<style type="text/css">
<!--
.Style6 {color: #000000; }
.Style7 {font-size: 10px}
.Style8 {font-size: 9px}
-->
</style>

<?php 
 require_once ("mes_fonctions.php");
 connection_bd(); 
?>

<script language="javascript">

 function controle()
 {
   var a=document.expedition.nombord.value;
 
   var b=document.expedition.provenance.value; 
   var c=document.expedition.destination.value;
   
   var d=document.expedition.nomexp.value; 
   var e=document.expedition.prenomexp.value; 
   var f=document.expedition.villexp.value;
   var g=document.expedition.ruexp.value;
   var h=document.expedition.telephonexp.value;
   
   var i=document.expedition.nomdes.value;
   var j=document.expedition.prenomdes.value;
   var k=document.expedition.villedes.value;
   var l=document.expedition.ruedes.value;
   var m=document.expedition.telephonedes.value;
   
   var x=document.expedition.paysexp.value;
   var y=document.expedition.paysdes.value;
   
     if (a=="")
        {
          alert(" Entrez un numero de bordereau! "); 
          document.expedition.num_bo.focus();        
        }
     else    
           if (b=="")
             {
               alert(" vous preciser la provenance du colis "); 
               document.expedition.provenance.focus();        
             }
    else         
           if (c=="")
             {
               alert(" vous devez preciser la destination du colis"); 
               document.expedition.destination.focus();        
             }
    else              
           if (d=="")
             {
               alert(" vous devez preciser le nom de l'expediteur"); 
               document.expedition.nomexp.focus();        
             }
    else         
           if (e=="")
             {
               alert(" vous devez preciser le prenom de l'expediteur "); 
               document.expedition.prenomexp.focus();        
             }
    else         
           if (f=="")
             {
               alert(" vous devez preciser la ville de l'expediteur "); 
               document.expedition.villexp.focus();        
             }
    else         
           if (x=="")
             {
               alert(" vous devez preciser le pays de l'expediteur "); 
               document.expedition.paysexp.focus();        
             } 
    else         
           if (g=="")
             {
               alert(" vous devez preciser la rue de l'expediteur "); 
               document.expedition.ruexp.focus();        
             }
    else
           if (h=="")
             {
               alert(" vous devez preciser le telephone de l'expediteur "); 
               document.expedition.num_bo.focus();        
             }
           else
               if (isNaN(h))
               alert (" le numero de telephone doit etre entierement numerique ");
    else    
           if (i=="")
             {
               alert(" vous devez preciser le destinataire "); 
               document.expedition.nomdes.focus();        
             }
    else         
           if (j=="")
             {
              alert(" vous devez preciser le prenom du destinataire "); 
              document.expedition.prenomdes.focus();        
             }
    else         
           if (k=="")
             {
              alert("  vous devez preciser la ville du destinataire "); 
              document.expedition.villedes.focus();        
             }
    else         
           if (y=="")
             {
               alert(" vous devez preciser le pays du destinataire "); 
               document.expedition.paysdes.focus();        
             } 
    else             
          if (l=="")
            {
              alert(" vous devez preciser une rue pour le destinataire "); 
              document.expedition.ruedes.focus();        
            }
    else        
          if (m=="")
            {
             alert(" vous devez preciser le telephone du destinataire "); 
             document.expedition.telephonedes.focus();        
            }
          else
             if (isNaN(m))
             alert (" le numero de telephone doit etre entierement numerique ");
     else
          document.expedition.submit();    
 }
</script>

<script type="text/JavaScript">
<!--
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&amp;&amp;i[escale.php ][escale.php ][livraison.php ]

  EXPEDITION 

  
  
  <form method="post" action="expedition.php" name="expedition">
      ----

      <fieldset>
<legend> Details </legend>
<table width="661" border="0" cellspacing="0" cellpadding="5">
  ----

   , <label></label></td>
    Nom de l'agence:,
    <select name="agence" id="agence">
        <?php
      $mesagences="SELECT * FROM agences"; //*****************selection des agences dans la base de données
      $resultagence=mysql_query($mesagences) or die (mysql_error());
      while($ligne=mysql_fetch_array ($resultagence)){ //listage des agences
  ?>
            <option><?php echo @$ligne['nom_agence']; ?></option>
            <?php } ?>
    </select>,
    &amp;nbsp;,
    &amp;nbsp;,
 
  ----

    &amp;nbsp;,
    N° du Bordereau:,
    <label>
      
    </label>,
    &amp;nbsp;,
 
  ----

    <label>
     
Provenance:

    </label>,
    <label>
    
    </label>,
    <label>
     
Destination:

    </label>,
    <label>
      
    </label>,
 

  ----

    <fieldset>
    <legend>Expéditeur</legend>
    <table width="267" border="0">
      ----

       , Nom:</td>
        <label>
        
        </label>,
     
      ----

        Prenom(s):,
        <label>
          
        </label>,
     
      ----

        Ville:,
        <label>
        
        </label>,
     
      ----

        Pays:,
        <label>
          <select name="paysexp" id="paysexp" style="font-size:9px">
            <option></option>
            <?php
      $sql="SELECT * FROM pays"; //*****************selection des pays dans la base de données
      $resultat=mysql_query($sql) or die (mysql_error());
      while($row=mysql_fetch_array ($resultat)){ //listage des pays
  ?>
            <option><?php echo @$row['fr']; ?></option>
            <?php } ?>
           </select>
        </label>,
     
      ----

        Rue:,
        <label>
        
        </label>,
     
      ----

        T&amp;eacute;l&amp;eacute;phone:,
        <label>
        
        </label>,
     
   

    </fieldset>    </td>
    <td width="34">&amp;nbsp;</td>
    <td width="395" colspan="2"><fieldset id="destinataire">
    <legend>Destinataire</legend>
          ----

        Noms:,
        <label>
        
        </label>,
     
      ----

        Pr&amp;eacute;noms:,
        <label>
        
        </label>,
     
      ----

        Ville:,
        <label>
        
        </label>,
     
      ----

        Pays:,
        <label>
          <select name="paysdes" id="paysdes" style="font-size:9px">
            <option></option>
            <?php
      $sql="SELECT * FROM pays"; //*****************selection des pays dans la base de données
      $resultat=mysql_query($sql) or die (mysql_error());
      while($row=mysql_fetch_array ($resultat)){ //listage des pays
  ?>
            <option><?php echo @$row['fr']; ?></option>
            <?php } ?>
           </select>
        </label>,
     
      ----

        Rue:,
        <label>
        
        </label>,
     
      ----

        T&amp;eacute;l&amp;eacute;phone:,
        <label>
        
        </label>,
     
   

    </fieldset></td>
    </tr>
</table>
      </fieldset>

</td>
    </tr>
  </table>

  ----

    <fieldset id='fichiers' style="font-size:11px">
     <legend> Details colis </legend>
      
      <table width="459" height="28" border="0">
        ----

         ,
Quantit&amp;eacute;
</td>
          D&amp;eacute;signations,
          Poids,
       
     

      

      

    </fieldset>                                      </td>
    </tr>
  
  <tr>
    <td width="0"></td>
    </tr>
</table>

  ----

    <fieldset>
<legend>Details:</legend>
<table width="725" border="0" cellspacing="0" cellpadding="5">
  ----

   , <label>Statut:</label></td>
    <select name="statut" id="statut">
      <option value="en cours de traitement">en cours de traitement</option>
      <option value="en route">en route</option>
    </select>,
          <label>Compteur
     
      
      </label>
    ,
 

</fieldset></td>
  </tr>
</table>

  

<?php
// verifie si le numero de bordereau n'existe pas deja dans la base de données 
if ($_POST) {
@$numbe=htmlentities ($_POST['nombord']);$requette" select * from bordereaux where num_be '$numbe' " ;
$resultat=mysql_query($requette);
$lign=mysql_num_rows($resultat);

if ($lign > 0)
{
echo '<script language="Javascript">alert("il existe deja un bordereau à ce numero !!!");</script>';
}
else
{  
// insertion des donnees dans la base de donnees si le numero n'existe pas

  @$nomagence=securiseChaineTxt($_POST['agence']);
  @$prove=securiseChaineTxt($_POST['provenance']);
  @$desti=securiseChaineTxt($_POST['destination']);
  @$nomexp=securiseChaineTxt($_POST['nomexp']);
  @$prenomexp=securiseChaineTxt($_POST['prenomexp']);
  @$paysexp=securiseChaineTxt($_POST['paysexp']);
  @$villeexp=securiseChaineTxt($_POST['villexp']);
  @$rueexp=securiseChaineTxt($_POST['ruexp']);
  @$telexp=securiseChaineTxt($_POST['telephonexp']);
  @$nomdest=securiseChaineTxt($_POST['nomdes']);
  @$prenomdest=securiseChaineTxt($_POST['prenomdes']);
  @$paysdest=securiseChaineTxt($_POST['paysdes']);
  @$villedest=securiseChaineTxt($_POST['villedes']);
  @$ruedest=securiseChaineTxt($_POST['ruedes']);
  @$teldest=securiseChaineTxt($_POST['telephonedes']);
  @$statut=securiseChaineTxt($_POST['statut']); 
  @$dat=date("Y/m/d");
  @$heur=date("H:i");
  
     @$valeur=count( securiseChaineTxt($_POST['mesquantite']) );
     @$valeurdes=count( securiseChaineTxt($_POST['mesdesignation']) );
     
     for ($i=0;$i<$valeur;$i++)
     {
     //valeurs
      @$quantite=array_values($_POST['mesquantite']);
      @$designation =array_values($_POST['mesdesignation']);
      @$poids=array_values($_POST['mespoids']);
      @$produitfacture=mysql_query("INSERT INTO produits (num_prdt,num_be,designation,qute,poids) values ('','$numbe','$designation[$i]','$quantite[$i]','$poids[$i]')") or die (mysql_error());
      //envoi dans la base de données
       }
 $resultat2=mysql_query("INSERT INTO bordereaux(num_be,nom_agence,provenance,destination,statut_depart,date_depart,heure_depart,nom_exp, prenom_exp,pays_exp,ville_exp,rue_exp,tel_exp,nom_recep,prenom_recep,pays_recep,ville_recep,rue_recep,tel_recep) values ('$numbe','$nomagence','$prove','$desti','$statut','$dat','$heur','$nomexp','$prenomexp','$paysexp','$villeexp','$rueexp','$telexp','$nomdest','$prenomdest','$paysdest','$villedest','$ruedest','$teldest')") or die (mysql_error());// execute le requette

echo '<script language="Javascript">alert(" enregistrement effectué !!!");</script>';
}
}

?>

</form>

voici le code mes_fonctions.php
<!-- ceci est le fichier de connection au serveur et a la base de données -->
<?php
// fonction de connection à la base de données
function connection_bd()
{
  $seveur="localhost";
  $user="user";
  $bdd="xxx_mabase";
  $password="xxx";
  $link=mysql_connect($serveur, $user, $password) or die (" erreur de connexion à la base de données ");
  mysql_select_db($bdd) or die ( mysql_error() );
}
// fonction de deconnection à la base de données
function deconnection_bd()
{
 mysql_close();
}
//Sécurisé la chaine de caractères contre les injection XSS
function securiseChaineTxt($string)
{   
             //On securise chaques balise HTML
    $string = htmlspecialchars ($string);
             //On securise la variable contre les injection SQL
    $connecte=mysql_connect("localhost", "user", "xxx");
    $string = mysql_real_escape_string($string, $connecte);

    return $string;
}
//Sécurise un nombre(si on envoi 145APL par exemple, la fonction revoie 145)
function securiseNombre($nombre)
{
    $nombre = intval ($nombre);    //On ne recupere dans la variable que les nombres
    return $nombre;
}
?>

5 réponses

Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
en utilisant mysql_escape_string( $string ), sans le paramètre de connexion, il utilisera la connexion par défaut...

Mais, à mon avis, il vaudrait mieux migrer peu à peu à PDO et aux abstractions d ebases de données. Non seulement le code serait plus portable, mais l'escaping est transparent, tu ne t'en occupes plus.

Et dans l'idéal, coder en pur PHP 5 et séparer la logique métier de la présentation, la maintenance du tout en serait grandement simplifiée.
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
àa signifie tout simplement qu'il y a certainement un appel à un SELECT ou INSERT avant l'ouverture de la base.
Dans du code spaghetti qui ne sépare pas clairement le traitement de la présentation, il est parfois peu évident de retrouver les erreurs de ce type.
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

bon c vrai que ç'est un peu toufu,,, je ne pense que ça vienne de la puisque je me connecte directment a ma base de donnees au chargement de ma page avec la fonction  ' connection_bd ' au debut de mon script.
ce code marche pourtant en local ,,,ce n'est que lorsque j'ai heberge mon application que j'ai commencé à avoir ce probleme
cdlt
Messages postés
661
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Un script qui fonctionne dans un environnement, mais plus dans un autre, là, il faut vérifier en mode trace où ça coince. Les sauses peuvent être très nombreuses (différences de versions de PHP, de MySQL, etc..). Commences par vérifier ces différences là, et aussi la configuration de PHP. Le problème provient certainement de là.
Messages postés
324
Date d'inscription
dimanche 12 août 2007
Statut
Membre
Dernière intervention
26 août 2011

j'ai
viré le mysql_connect( ) et le $connecte de
mysql_real_escape_string() je n'ai plus de probleme de connection a la
base de donnees mais maintenant ma fonction mysql_real_escape_string ne
passe plus ????