[PHP] Ca marche pas..... mais pkoi ? Need help! ;-)

Ca marche pas..... mais pkoi ? Need help! ;-) [PHP] - PHP - Programmation

Marsh Posté le 29-11-2002 à 22:06:53    

Il me fait les 2 erreurs suivantes :
 
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in XXX on line 84
 
ligne 84

Code :
  1. $resultat = mysql_query ($request, $connexion);


 
Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in XXX on line 105
 
-> Message de mysql : [vide]
 
Ligne 105

Code :
  1. echo "<B>Message de MySQL :</B> " . mysql_error($connexion);


 
 
Voilà le code :
 

Code :
  1. <?php
  2.  if (isset($enregistrer))
  3.   include("connexion.php" );
  4.   $request = "INSERT INTO spartateur_spartaproprios (Id, Pseudo, Post_address, Mail_address, PM_address, FTP_address, FTP_port) "
  5.    . " VALUES ('$Id', '$Pseudo', '$Post', '$Mail', '$PM', '$FTP', '$Port') ";
  6.   $resultat = mysql_query ($request, $connexion);
  7.   if ($resultat)
  8.    {
  9.    echo "<p><strong>Le nouveau compte $Pseudo a bien été enregistré, voilà ses données : </strong>";
  10.    echo "<table class=\"tableau1\" border=\"1\" cellpadding=\"3\">";
  11.      while ($proprios = mysql_fetch_array ($resultat))
  12.        {
  13.     echo "<tr>
  14.       <td width=\"17%\" height=\"38\"><a href=\"". $url ."". $proprios["Post_address"] ."\">". $proprios["Pseudo"] ."</a></td>\n
  15.         <td width=\"38%\" height=\"38\">". $proprios["Mail_address"] ." / <a href=\"". $pm_url. "" .$proprios["PM_address"]. "\">PM</a></td>\n
  16.         <td width=\"25%\" height=\"38\">". $proprios["FTP_address"] ."</td>\n
  17.         <td width=\"5%\" height=\"38\" class=\"center\">". $proprios["FTP_port"] ."</td>\n
  18.         <td width=\"15%\" height=\"38\" class=\"center\"><a href=\'javascript:PopupCentrer(\"verif.php?pseudo=". $proprios["Pseudo"] ."&adresse=". $proprios["FTP_address"] ."&port=". $proprios["FTP_port"] ."\",350,20,\"menubar=no,scrollbars=no,statusbar=no\" )\'>Online ?</a></td>\n
  19.       </tr>";
  20.        }
  21.      echo "</table>";
  22.    }
  23.   else
  24.   {
  25.     echo "<B>Erreur dans l'enregistrement.</B><BR>";
  26.     echo "<B>Message de MySQL :</B> " . mysql_error($connexion);
  27.   }
  28.   ?>


 
et le fichier "connexion.php" :

Code :
  1. $connexion = mysql_connect (SERVEUR, NOM, PASSE);
  2.  if (!$connexion)
  3.  {
  4.    echo "Désolé, la connexion à " . SERVEUR . " est impossible.\n";
  5.    exit;
  6.  }
  7.  if (!mysql_select_db (BASE, $connexion))
  8.  {
  9.    echo "Désolé, l'accès à la base " . BASE . " est impossible\n";
  10.    exit;
  11.  }
  12. ?>


 
je comprends pas....il doit y avoir un problème avec la variable $connexion non? d'après ce que dit le serveur... mais bon je suis newbie...donc je sais pas trop.

Reply

Marsh Posté le 29-11-2002 à 22:06:53   

Reply

Marsh Posté le 29-11-2002 à 22:13:08    

Code :
  1. if (isset($enregistrer))
  2.   include("connexion.php" );


 
si $enregistrer n'existe pas, pas de connexion !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2002 à 22:15:30    

Mara's dad a écrit a écrit :

Code :
  1. if (isset($enregistrer))
  2.   include("connexion.php" );


 
si $enregistrer n'existe pas, pas de connexion !




 
euh...oui en effet, il faut que je montre un peu + de code :
 

Code :
  1. <form method="post" action="update_database.php">
  2.         <p class="underline"><b>Enregistrer un nouveau proprio :</b></p>
  3.         <table class="tableau1" width="100%" border="0" cellspacing="0" cellpadding="0">
  4.           <tr>
  5.             <td width="29%" height="47">Pseudo :
  6.               <input type="text" name="Pseudo_new" /> </td>
  7.             <td width="71%">Numéro post:
  8.               <input type="text" name="Post_new" size=6 /></td>
  9.           </tr>
  10.           <tr>
  11.             <td height="44">Mail :
  12.               <input type="text" name="Mail_new" size=30 /> </td>
  13.             <td>Numéro PM :
  14.               <input type="text" name="PM_new" size=8 /></td>
  15.           </tr>
  16.           <tr>
  17.             <td height="83">Adresse FTP :
  18.               <input type="text" size=40 name="FTP_address" /></td>
  19.             <td>Port du FTP :
  20.               <input type="text" name="FTP_new" size="4" /></td>
  21.           </tr>
  22.           <tr>
  23.             <td height="42" colspan="2">Date de mise à jour :
  24.               <?php
  25.     include("lang_fr.inc.php" ); 
  26.      $date = $jour[strftime("%w" )]." ".date("j" )." ".$mois[(strftime("%m" )-1)]." ".date("Y" );
  27.     echo $date;
  28.    ?>
  29.             </td>
  30.           </tr>
  31.           <tr>
  32.             <td height="48">
  33.    <input type="submit" name="enregistrer" value="Envoyer" /></td>
  34.             <td><input type="reset" name="Reset" value="Rétablir" /></td>
  35.           </tr>
  36.         </table>
  37.         </form>
  38.       <p>


 
voilà la partie qui vient juste en-dessus de la partie PHP. ;)

Reply

Marsh Posté le 29-11-2002 à 22:24:12    

Et alors, $enregistrer n'as une valeur que quand tu utilise le boutton "Envoyer".
 
Au premier passage, y'a rien dedans et çà plante.
 
Sinon, c'est du php3 ou du php4 ?
 
Est-que register_globals est activé ?
 
Comme d'hab, faut tout deviner !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 29-11-2002 à 22:33:24    

Mara's dad a écrit a écrit :

Et alors, $enregistrer n'as une valeur que quand tu utilise le boutton "Envoyer".
 
Au premier passage, y'a rien dedans et çà plante.
 
Sinon, c'est du php3 ou du php4 ?
 
Est-que register_globals est activé ?
 
Comme d'hab, faut tout deviner !




 
lol, désolé...j'suis newbie.
 
en effet, si je passe  include("connexion.php" );  avant  if (isset($enregistrer)) ...ca marche partiellement --> il me met ca :
 
Erreur dans l'enregistrement.
Message de MySQL : Query est vide
 
 
c'est pas possible d'éviter ce message tant que le user n'a pas appuyé sur "Enregistrer" ?
 
 

Reply

Marsh Posté le 29-11-2002 à 22:43:48    

Ben si, heureusement !
 
Bon la structure du script doit ressembler en gros à çà :
 

Code :
  1. SI BOUTTON ENVOYER
  2.    SE CONNECTER A LA BASE
  3.    FAIRE LES REQUETES
  4.    ENVOYER RESULTAT OU AUTRE...
  5. SINON
  6.    AFFICHER FORMULAIRE HTML
  7. FIN SI


 
En PHP :
 

Code :
  1. <?php 
  2. if( isset( $enregistrer ) )
  3. {
  4.  
  5.   include("connexion.php" );
  6.   $request = "INSERT ...
  7.   ...
  8.  
  9.   if( $resultat )
  10.   {
  11.  
  12.   ...
  13.   }
  14.   ...
  15. }
  16. else
  17. {
  18. ?>
  19. <form method="post" action="update_database.php">
  20. ...
  21. </form> 
  22. ...
  23. <?php
  24. }


?>
 
Et oui, c'est magique, tu peut mettre du HTML pur dans un if !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2002 à 12:41:50    

Mara's dad a écrit a écrit :

Ben si, heureusement !
 
Bon la structure du script doit ressembler en gros à çà :
 

Code :
  1. SI BOUTTON ENVOYER
  2.    SE CONNECTER A LA BASE
  3.    FAIRE LES REQUETES
  4.    ENVOYER RESULTAT OU AUTRE...
  5. SINON
  6.    AFFICHER FORMULAIRE HTML
  7. FIN SI


 
En PHP :
 

Code :
  1. <?php 
  2. if( isset( $enregistrer ) )
  3. {
  4.  
  5.   include("connexion.php" );
  6.   $request = "INSERT ...
  7.   ...
  8.  
  9.   if( $resultat )
  10.   {
  11.  
  12.   ...
  13.   }
  14.   ...
  15. }
  16. else
  17. {
  18. ?>
  19. <form method="post" action="update_database.php">
  20. ...
  21. </form> 
  22. ...
  23. <?php
  24. }


?>
 
Et oui, c'est magique, tu peut mettre du HTML pur dans un if !
 




 
ok ;) !
 
merci beaucoup pour ton aide!  
 
@++

Reply

Marsh Posté le 30-11-2002 à 13:05:59    

au fait, il n'y aura pas un petit problème ?
 
--> la variable "enregistrer" --> dans if (isset(enregistrer)) {
 
n'est pas déclarée au début de ma page.... le if (isset(enregistrer)) est avant la variable....donc il ne pourra pas la trouver.

Reply

Marsh Posté le 30-11-2002 à 13:33:30    

Ok, on reprend :
 
1- Le visiteur demande ta page.
2- Le script teste if( isset( $enregistrer ) )
   La variable n'existe pas, donc le script envoie le formulaire.
3- Le visteur reçoi le formulaire. Il le rempli et clique sur "Envoyer" ce qui à pour effet de redemander la page à ton serveur.
4- Le script recommence. Il teste if( isset( $enregistrer ) ) et cette fois, la variable existe, et donc il traite les donnée du formulaire qui viennent de lui être envoyé.
 
Je n'ai pas tout lu ton script, et je ne sais pas ce qu'il doit faire. J'ai supposé qu'une fois le formulaire saisi par l'utilisateur, il ne servait plus à rien. Si c'est faux, il suffit de modifier le code pour qu'il affiche le formulaire dans tous les cas :
 

Code :
  1. <?php   
  2. if( isset( $enregistrer ) )
  3. {
  4.  
  5. include("connexion.php" ); 
  6. $request = "INSERT ...
  7. ...
  8.  
  9. if( $resultat ) 
  10. {
  11.  
  12. ...
  13. }
  14. ...
  15. }
  16. ?>
  17. // Affichage systématique du formulaire.
  18. <form method="post" action="update_database.php"> 
  19. ...
  20. </form>   
  21. ...
  22. <?php
  23. }

 
?>
 
Il faut bien comprendre que le script s'execute sur le serveur et pas chez le client ! D'autre part, une fois que le serveur a envoyé des infos au client (navigateur), la connexion est terminée. A partir de ce moment là, le serveur ne connait plus le client. Si celui-çi veux quelque-chose, il faut qu'il le demande expressément.
 
Le mieux, pour que je sois sûr que tu ais bien compris, çà serais que tu m'explique comment tu vois les choses. Dis moi comment d'après toi les choses se passent à partir du moment ou le surfer demande ta page pour la première fois.
 
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2002 à 14:14:00    

ah ok! non, cette fois j'ai tout compris l'execution du script! merci beaucoup.
 
bon il me fait encore une erreur vraiment bizarre... -->
 
Parse error: parse error, unexpected $ in d:\easyphp\www\sparta_proprio\administration.php on line 125
 
et la ligne 125 correspond à ca : </html>   :D j'vois pas de fautes moi  :pt1cable:

Reply

Marsh Posté le 30-11-2002 à 14:14:00   

Reply

Marsh Posté le 30-11-2002 à 15:58:16    

Ben moi non plus.
Faut dire que j'ai pas leùsource, ni de boule de kristal, alors...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 30-11-2002 à 16:00:55    

probablement oublié de fermer une balise php ?> quelque part

Reply

Marsh Posté le 01-12-2002 à 09:23:49    

non, c bon, j'avais oublié un "$" à une place...  :pt1cable:  
 
merci pour votre aide!

Reply

Sujets relatifs:

Leave a Replay

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