Page 1 sur 1

pb sur formulaire HTML qui lance un script PHP

Posté : 17 mars 2006, 18:37
par sacco
Bonjour,

j'ai un formulaire

Code : Tout sélectionner

<H1> Formulaire d'ajout de serveur </H1> <form method="post" action="sebformulaireajoutserveur.php"> <P> Nom du Serveur : <INPUT type="text" size="15" name="nomserveur" value=""><BR> </P> <P> Qui sauvegarde : <input type="text" size="15" name="nomserveurbck" value=""><BR> </P> <P></P> Chemin log : <input type="file" name="cheminlog" value=""> </P> <P> <input type="submit" value="enregistrement"> </P> </form> </body> </html>
je suis sensé récupérer les données rentrées pour le script sebformulaireajoutserveur.php.

Or lorsque j'exécute ma page HTML cela lance bien ma page PHP mais ne fait rien. Alors qu'indépendament ma page PHP fonctionne

merci d'avance

Posté : 17 mars 2006, 19:01
par Truc
verifi le retour avec :
<pre>
<? var_dump($_POST); ?>
</pre>

Posté : 18 mars 2006, 11:25
par sacco
j'ai essayé

Code : Tout sélectionner

<pre> <? var_dump($_POST); ?> </pre>
dans mon fichier HTML mais pas de résultat.

Posté : 18 mars 2006, 11:43
par Truc
d'après toi le code php peut être exécuté dans un fichier HTML ?

Posté : 18 mars 2006, 17:33
par sacco
Voici mon code pour le script PHP

Code : Tout sélectionner

<html><head> <title> Formulaire Ajout Serveur </title> <link rel="stylesheet" href="sebfiche.css" type="text/css"> </head> </body> <pre> <? var_dump($_POST); ?> </pre> <?php $FServeurtable = file_get_contents('Serveurtable.sql'); $connect = mysqli_connect("localhost", "root", "", "test") or die("Impossible de se connecter"); $Testtable = mysqli_query($connect,'show tables serveur;'); if ($connect == false) {echo "base hs";} else { echo "base ok"; if ($Testtable == true) {echo "table ok"; } else { echo "table no ok"; mysqli_query($connect,$FServeurtable); } } /* récupération des données du formulaire pour intégration dans la base */ $Fnomserveur = 'cold'; //'nomserveur'; $Fnomserveurbck = 'truff'; //'nomserveurbck'; $Fcheminlog = 'c:\log' ; //'cheminlog'; /* Requete d' intégration donnée */ $Fintegration = mysqli_query($connect,"INSERT INTO serveur ('nomserveur','nomserveurbck','cheminlog') VALUES ('$Fnomserveur','$Fnomserveurbck','$Fcheminlog');"); ?> [php] Mais pas de réponse[/php]

Posté : 18 mars 2006, 17:37
par charabia
Tu parles toujours de "fichier HTML" or ton fichier doit être un fichier .php

C'est de ça dont voulait parler Truc. Est-ce le cas ? Ou ton fichier est en .htm ?

Posté : 18 mars 2006, 17:45
par sacco
non mon fichier ci-dessus est en PHP

j'ai mon formulaire

Code : Tout sélectionner

<H1> Formulaire d'ajout de serveur </H1> <form method="post" action="sebformulaireajoutserveur.php"> <P> Nom du Serveur : <INPUT type="text" size="15" name="nomserveur" value=""><BR> </P> <P> Qui sauvegarde : <input type="text" size="15" name="nomserveurbck" value=""><BR> </P> <P></P> Chemin log : <input type="file" name="cheminlog" value=""> </P> <P> <input type="submit" value="enregistrement"> </P> </form> </body> </html>
qui est un html

et mon scrip en php (ci-dessus)

Posté : 18 mars 2006, 17:50
par charabia
1ère chose, indente correctement tes pages pour que ce soit lisible. Tu remarqueras qu'il y a une fermeture de body juste après la fin du </head>...

Pour récupérer des variables passé en métodhe POST, tu dois utiliser $_POST['ta_variable']

Posté : 18 mars 2006, 18:20
par sacco
donc j'ai fait une modif:

Code : Tout sélectionner

<H1> Formulaire d'ajout de serveur </H1> <html> <body> <form method="post" action="sebformulaireajoutserveur.php"> <P> Nom du Serveur : <INPUT type="text" size="15" name="nomserveur" value=""><BR> </P> <P> Qui sauvegarde : <input type="text" size="15" name="nomserveurbck" value=""><BR> </P> <P></P> Chemin log : <input type="file" name="cheminlog" value=""> </P> <P> <input type="submit" value="enregistrement"> </P> </form> </body> </html>
et mon script php

<?php


$FServeurtable = file_get_contents('Serveurtable.sql');

$connect = mysqli_connect("localhost", "root", "", "test")
  or die("Impossible de se connecter");

$Testtable = mysqli_query($connect,'show tables serveur;');

 if ($connect == false) {echo "base hs";}
  else
  { 
  echo "base ok";	
  if ($Testtable == true) {echo "table ok";
   }
  else  
  {
  		echo "table no ok";
  		mysqli_query($connect,$FServeurtable);
   
  }
  }

   /* récupération des données du formulaire pour intégration
     dans la base */
  
  $Fnomserveur = $_POST['nomserveur'];
  $Fnomserveurbck = $_POST['nomserveurbck'];
  $Fcheminlog = $_POST['cheminlog'];
  
  /* Requete d' intégration donnée */
  
  $Fintegration = mysqli_query($connect,"INSERT INTO serveur 
  ('nomserveur','nomserveurbck','cheminlog') VALUES ('$Fnomserveur','$Fnomserveurbck','$Fcheminlog');");

    
 
  ?> 
  
  </head>
</body>
mais message d'information

Informations: C:\wamp\www\sebformulaireajoutserveur.php ligne 35 - Undefined index: nomserveur
Informations: C:\wamp\www\sebformulaireajoutserveur.php ligne 36 - Undefined index: nomserveurbck
Informations: C:\wamp\www\sebformulaireajoutserveur.php ligne 37 - Undefined index: cheminlog

Posté : 18 mars 2006, 18:31
par charabia
Testes ceci :
$host="localhost;"
$user="root";
$pass="";
$bdd="ta_base";
mysql_connect($host,$user,$pass) or die("SERVEUR HS");

$Fnomserveur = $_POST['nomserveur']; 
$Fnomserveurbck = $_POST['nomserveurbck']; 
$Fcheminlog = $_POST['cheminlog']; 
   
$Fintegration = "INSERT INTO serveur ('nomserveur','nomserveurbck','cheminlog') VALUES ('$Fnomserveur','$Fnomserveurbck','$Fcheminlog')";
$add2 = mysql_db_query("$bdd", $Fintegration);

Posté : 18 mars 2006, 18:42
par sacco
j'ai l'impression que les données rentrées dans mon formulaire html ne sont pas reprise par mon script php

Posté : 18 mars 2006, 18:54
par charabia
Essaies déjà juste d'afficher les 3 variables :
echo $_POST['nomserveur']; 
echo $_POST['nomserveurbck']; 
echo $_POST['cheminlog'];
Les as-tu où y a t-il une erreur ?

Posté : 18 mars 2006, 21:01
par sacco
non page blache.

Posté : 19 mars 2006, 12:07
par sacco
Après quelque rectification dans mon code c'est bon
mais par contre dans mon formulaire je récupère un chemin type c:\..\index.log

Or dans la base l'injection n'est que du nom du fichier type index.log au lieu du chemin entier.

Merci d'avance si astuce