annuaire telephonique

annuaire telephonique - PHP - Programmation

Marsh Posté le 28-05-2008 à 11:45:11    

Bonjour,
 
J'ai un soucis un peu particulier : mon script fonctionne si la page est ouverte depuis free.fr (identifiant et password modifier pour la connection a la base) par contre il ne fonctionne pas si j'ouvre la page avec Wamp (version2)
 
Pour commencer voici le code du script :
 

Citation :


<?php
error_reporting(E_ALL ^ E_NOTICE);
 
$host="localhost";
$user="root";
$pass="";
$base="intranet";
$table="annuaire";
 
$bdd=@mysql_connect($host,$user,$pass);
     @mysql_select_db($base,$bdd);
 
if (!$bdd)
  {
    echo"<center><h4>Impossible de se connecter à la base de données.</h4></center>";
    exit;
  };
   
      echo"<table width='0%' cellpadding='5' cellspacing='0' border='0' align='left' bgcolor='#E1E9F4'>
             <form name='recherche' action='annuaire.php?task=2' method='post'>
               <tr>
                 <td bgcolor='#9EBBFD' colspan='2' align='center'><h2>Rechercher</h2></td>
               </tr>
               <tr>
                 <td align='right'>Nom</td>
                 <td><input type='text' name='nom'></td>
               </tr>
               <tr>
                 <td align='right'>Prénom</td>
                 <td><input type='text' name='prenom'></td>
               </tr>
               <tr>
                 <td align='right'>Tel</td>
                 <td><input type='text' name='tel'></td>
               </tr>
      <tr>
                 <td align='right'>Service</td>
                 <td><input type='text' name='service'></td>
               </tr>
      <tr>
                 <td align='right'>Localité</td>
                 <td><input type='text' name='localite'></td>
               </tr>
               <tr>
                 <td>&nbsp;</td>
                 <td><input type='submit' name='op2' value='Rechercher'></td>
               </tr>
             </form>
           </table> <table width='70' cellpadding='5' cellspacing='0' border='0' align='left''><TR><TD>&nbsp;</TD></TR></table>";
     
if ($op2)
        {
          $query="SELECT * FROM $table WHERE an_id IS NOT NULL";
          if ($nom)
            {
              $query.=" AND an_nom LIKE '$nom%'";
            };
          if ($prenom)
            {
              $query.=" AND an_prenom LIKE '$prenom%'";
            };
          if ($tel)
            {
              $query.=" AND an_tel LIKE '%$tel%'";
            };
          if ($service)
            {
              $query.=" AND an_service LIKE '%$service%'";
            };
    if ($localite)
            {
              $query.=" AND an_localite LIKE '%$localite%'";
            };
          $query.=" ORDER BY an_nom";
          $res=mysql_query($query);
 
          echo"<table width='0%' cellpadding='5' cellspacing='1' border='0' align='left'>";
          echo"<td bgcolor='#9EBBFD' align='center'><b>Nom</b></td><td bgcolor='#9EBBFD' align='center'><b>Prénom</b></td><td bgcolor='#9EBBFD' align='center'><b>N° Téléphone</b></td><td bgcolor='#9EBBFD' align='center'><b>Service</b></td><td bgcolor='#9EBBFD' align='center'><b>Localité</b></td></tr>";
 
          while($val=mysql_fetch_array($res,$bdd))
            {
              $nom = $val['an_nom'];
              $prenom = $val['an_prenom'];
              $tel = $val['an_tel'];
     $service = $val['an_service'];
     $localite = $val['an_localite'];
 
              echo"<tr><td bgcolor='#E1E9F4'>".$nom."</td><td bgcolor='#E1E9F4'>".$prenom."</td><td bgcolor='#E1E9F4'>".$tel."</td><td bgcolor='#E1E9F4'>".$service."</td><td bgcolor='#E1E9F4'>".$localite."</td></tr>";
            };
 
          echo"</table>";
 
        };
mysql_close;
?>
 


 
Sur Free, quand je clic sur rechercher, il affiche la liste des resultats dans un tableau a coté du formulaire.
 
Sur wamp, au depart, j'avais meme pas le tableau qui s'affichait alors j'ai activé les option (presque toute sauf celle de test et d'erreur) dans le php config de wamp et du coup il affiche uniquement l'entete du tableau de resultat et des lignes de tableau vide (mais il met le bon nombre de ligne par rapport au resultat qu'il devrai afficher : si il doit sortir 2 noms, il affiche 2 ligne vierge).
 
Une idee de ce qui peut etre en cause ? Je doute d'une erreur de code vu qu'il fonctionne parfaitement sur free.fr. Je pense plutot a un parametrage dans wamp.
 
Merci de votre aide.

Reply

Marsh Posté le 28-05-2008 à 11:45:11   

Reply

Marsh Posté le 28-05-2008 à 12:02:58    

apparemment pas un pb de paramétrage de wamp :
lit la doc de mysql_fetch_array, le 2ème paramètre est faux
 
PS: utilise $_POST car register_globals n'est pas activé partout (heureusement)
 

Reply

Marsh Posté le 28-05-2008 à 12:14:30    

Je te remercie, effectivement il fallait bien modifier ce que tu as dit, mais je ne comprend pas pourquoi je n'avais pas le probleme chez free.
 
Merci


Message édité par esteban72 le 28-05-2008 à 12:21:13
Reply

Marsh Posté le 29-05-2008 à 14:49:42    

Bonjour, j'avance dans mon projet mais je bute sur une nouvelle difficulté. Je souhaite créer une page d'administration qui permettra d'ajouter, de modifier ou supprimer un contact. Pour l'ajout, aucun probleme, par contre pour la modification et la suppression ca ne fonctionne pas. J'ai probablement encore des erreurs dans mon code que je ne vois pas.
 
Quand je dis que ca ne fonctionne pas, c'est qu'il m'annonce que la modification ou suppression est faite mais il n'y a pas de modif dans la base.
 
Voici le code des boutons qui ouvre la page de modif et supprime un contact :
 

Citation :


              echo"<tr><td bgcolor='#E1E9F4' align='center'>".$nom."</td><td bgcolor='#E1E9F4' align='center'>".$prenom."</td><td bgcolor='#E1E9F4' align='center'>".$telintern."</td><td bgcolor='#E1E9F4' align='center'>".$teldirect."</td><td bgcolor='#E1E9F4' align='center'>".$portable."</td><td bgcolor='#E1E9F4' align='center'>".$service."</td><td bgcolor='#E1E9F4' align='center'>".$localite."</td><td bgcolor='#9EBBFD'><A HREF='annuairemod.php?id=\"$id\"&nom=\"$nom\"&prenom=\"$prenom\"&telintern=\"$telintern\"&teldirect=\"$teldirect\"&portable=\"$portable\"&service=\"$service\"&localite=\"$localite\"'>modifier</A></td><td bgcolor='#9EBBFD'><A HREF='annuairesup.php?id=\"$id\"'>Supprimer</A></td></tr>";
 


 
Voici le code de la page de modification :

Citation :


<?php
error_reporting(E_ALL ^ E_NOTICE);
 
$host="localhost";
$user="root";
$pass="";
$base="intranet";
$table="annuaire";
 
$bdd=@mysql_connect($host,$user,$pass);
     @mysql_select_db($base,$bdd);
 
if (!$bdd)
  {
    echo"<center><h4>Impossible de se connecter à la base de données.</h4></center>";
    exit;
  };
   
if ($op4)
  {
          $query="UPDATE $table SET an_nom='$nom', an_prenom='$prenom', an_telintern='$telintern', an_teldirect='$teldirect', an_portable='$portable', an_service='$service', an_localite='$localite' WHERE an_id='$id'";
          $res=mysql_query($query);
          if ($res)
            {
              echo"<center><h4>Entrée modifiée</h4></center>";
            }
            else
            {
              echo"<center><h4>Erreur</h4></center>";
            };
        };
      echo"<table width='0%' cellpadding='5' cellspacing='0' border='0' align='center' bgcolor='#CCCCCC'>
             <form name='modifier' action='annuairemod.php' method='$_post'>
               <tr>
                 <td colspan='2' align='center'><h2>Modifier</h2></td>
               </tr>
               <tr>
                 <td align='right'>Nom</td>
                 <td><input type='text' name='nom' value=$nom></td>
               </tr>
               <tr>
                 <td align='right'>Prénom</td>
                 <td><input type='text' name='prenom' value=$prenom></td>
               </tr>
               <tr>
                 <td align='right'>N° Interne</td>
                 <td><input type='text' name='telintern' value=$telintern></td>
               </tr>
               <tr>
                 <td align='right'>N° Direct</td>
                 <td><input type='text' name='teldirect' value=$teldirect></td>
               </tr>
      <tr>
                 <td align='right'>Portable</td>
                 <td><input type='text' name='portable' value=$portable></td>
               </tr>
               <tr>
                 <td align='right'>Service</td>
                 <td><input type='text' name='service' value=$service></td>
               </tr>  
               <tr>
                 <td align='right'>Localité</td>
                 <td><input type='text' name='localite' value=$localite></td>
               </tr>          
               <tr>
                 <td>&nbsp;</td>
                 <td>
                   <input type='hidden' name='id' value='$id'>
                   <input type='submit' name='op4' value='Modifier'></td>
               </tr>
             </form>
           </table>";
     
mysql_close;
?>
 


 
Et le code de suppression :

Citation :


<?php
error_reporting(E_ALL ^ E_NOTICE);
 
$host="localhost";
$user="root";
$pass="";
$base="intranet";
$table="annuaire";
 
$bdd=@mysql_connect($host,$user,$pass);
     @mysql_select_db($base,$bdd);
 
if (!$bdd)
  {
    echo"<center><h4>Impossible de se connecter à la base de données.</h4></center>";
    exit;
  };
 
 $query="DELETE FROM $table WHERE an_id = '$id'";
      $res=mysql_query($query);
      if ($res)
        {
          echo"<center><h4>Entrée supprimée</h4></center>";
        }
        else
        {
          echo"<center><h4>Erreur</h4></center>";
        };
     
mysql_close;
?>


 
Merci une fois de plus ;)

Reply

Marsh Posté le 02-06-2008 à 13:28:55    

Personne n'a une idee de l'erreur ?

Reply

Marsh Posté le 02-06-2008 à 15:03:19    

Reply

Marsh Posté le 02-06-2008 à 15:10:08    

$id c'est la variable pour le numero de l'enregistrement de la fiche du contact.
 
Dans la base on a :
 
ID Nom prenom teldirect....
1 DUPONT Eric 222
2 MARTIN Pierre 228
....

Reply

Marsh Posté le 02-06-2008 à 15:11:02    

Ce que je veux dire, c'est d'où est-ce que ça sort ? C'est déclaré nulle part. [:petrus75]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-06-2008 à 15:19:10    

Si il est defini dans la page annuaire juste avant le code que j'avais mis pour l'affichage de la liste
 

Citation :


 while($val=mysql_fetch_array($res, MYSQL_BOTH))
            {
     $id = $val['an_id'];
              $nom = $val['an_nom'];
              $prenom = $val['an_prenom'];
              $telintern = $val['an_telintern'];
     $teldirect = $val['an_teldirect'];
     $portable = $val['an_portable'];
     $service = $val['an_service'];
     $localite = $val['an_localite'];
 
              echo"<tr><td bgcolor='#E1E9F4' align='center'>".$nom."</td><td bgcolor='#E1E9F4' align='center'>".$prenom."</td><td bgcolor='#E1E9F4' align='center'>".$telintern."</td><td bgcolor='#E1E9F4' align='center'>".$teldirect."</td><td bgcolor='#E1E9F4' align='center'>".$portable."</td><td bgcolor='#E1E9F4' align='center'>".$service."</td><td bgcolor='#E1E9F4' align='center'>".$localite."</td><td bgcolor='#9EBBFD'><A HREF='annuairemod.php?id=\"$id\"&nom=\"$nom\"&prenom=\"$prenom\"&telintern=\"$telintern\"&teldirect=\"$teldirect\"&portable=\"$portable\"&service=\"$service\"&localite=\"$localite\"'>modifier</A></td><td bgcolor='#9EBBFD'><A HREF='annuairesup.php?id=\"$id\"'>Supprimer</A></td></tr>";
            };


 
Apres quand on clic sur modif il apparait bien si je l'affiche dans la page annuairemod.php.
 

Reply

Marsh Posté le 02-06-2008 à 15:25:05    

Non mais je te parle de la page de modification et de suppression.
 
Ton id il est dans $_GET['id']...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-06-2008 à 15:25:05   

Reply

Marsh Posté le 02-06-2008 à 15:33:02    

Alors je dois mettre dans la requete tout les variable comme ça ?
 

Citation :


$query="UPDATE $table SET an_nom=$_GET['nom'], an_prenom=$_GET['prenom'], an_telintern=$_GET['telintern'], an_teldirect=$_GET['teldirect'], an_portable=$_GET['portable'], an_service=$_GET['service'], an_localite=$_GET['localite']WHERE an_id=$_GET['id']";
 

Reply

Marsh Posté le 02-06-2008 à 15:41:01    

Oui mais en concaténant proprement, et en utilisant mysql_real_escape_string (à défaut de mieux). :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 02-06-2008 à 15:43:35    

Je suis desolé, mais comme je debute en php, je comprend pas tout. Tu peux me montrer l'exemple avec mysql_real_escape_string et mes données concaténées proprement ?

Reply

Marsh Posté le 02-06-2008 à 16:03:19    

Je comprend pas le document sur la concatenation par rapport a mon cas.
 
J'ai mis les crochet et les guillemets partout.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed