Enregistrement de formulaire HTML dans base de donnée MySQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Enregistrement de formulaire HTML dans base de donnée MySQL

par Nico789 » 14 juin 2007, 14:08

Merci de ton aide Iclo

Je vais essayer d'avancer, car je dois également finir mon rapport de stage,je dois le rendre demain apres midi

J'essayerai de mettre le code et appliquer tes conseils ;)

EDIT : excellent cela marche maintenant je vais essayer de l'inclure dans la base de données MySQL ou je pourrais tenter une $_SESSION peuit etre.

EDIT 2 : Excellent tout semble marcher je tente les modifs générales

par iclo » 14 juin 2007, 12:53

Pour ton problème de post, si tu veux, tu peux nous poster le code de ton formulaire, principalement le tag form de début.

par Nico789 » 14 juin 2007, 11:39

J'oublie toujours de me logger,car je suis au boulot et chez moi je me log automatiquement

Invité = Nico 789 :wink:

par Invité » 14 juin 2007, 10:54

Surement du à mon manque de connaissance PHP mais je n'arrive pas à envoyer mes données via la méthode "POST" j'ai toujours la réponse " index indéfini" or quand j'utilies la méthode GET cela marche. Je mettrai l'erreur que j'ai enfin si je la déclenche à nouveau

Dans tout les cas merci je ne savais pas du totu que name="champIP[]" fonctionnait je crois qu'un grand pas vient d'etre fait .

Il faut maintenant que j'arrive a envoyer via la méthode post et je pense que je pourrais mettre un [résolu] sur ce topic

par iclo » 14 juin 2007, 00:29

La solution avec un tableau, expliquée plus haute, est faite pour ton cas: tu nommes tout tes champs avec [] à la fin:
<?php for ($i=0^;$i<nombreWaveOSaConfigurer;$++){
     ?>
    //Creation d'un bouton
    <input type=text" name="champIP[]" value="" >
    <?php }  ?>
Et tu pourras les récupérés avec une simple boucle foreach:
<?php
// On passe en revue toutes les lignes du tableau
foreach( $_POST['champIP'] as $champ ){
   // ici $champ contient la valeur du champ courant
   echo $champ
}
?> 

par Nico789 » 13 juin 2007, 23:41

iclo => le probleme est que au départ le programme demande le nombre de Wave OS a configurer..Ensuite si il dit qu'il veut en configurer 2 par exemple

je fais
<?php for ($i=0^;$i<nombreWaveOSaConfigurer;$++)
?>
//Creation d'un bouton
<input type=text" name="champIP" value "" >
<?php }  ?>
La chose que je cherche a faire est de récuperer chaque valeurs entrées dans les champs de textes dans une base de donnée ou une autre méthodes plus pratiques ! Or comme tu le vois , les champIP s'écrasent les uns par rapport aux autres,si je fais une requete SQL seule la derniere adresses entrées sera sauvegardés :?

J'ai tenté quelques chose mais ca marche pas

Code : Tout sélectionner

<tr> <td>&nbsp;</td> <td><strong>Numero IP <?php echo $i ?></strong></td> <td><input type="text" value="" name=adresseIP<?php echo $i ?> style="width: 120px" /></td> </tr>
Je voulais que chaque name est un numéro or la récupération ne marche pas (logique)
for ( $i;$i<=2;$i++){

$adresse = $_GET['numIP[$i]']; 

echo " l'adresse $i est $adresse";

} 
Merci

par iclo » 13 juin 2007, 21:54

Iclo => Ton idée est pas mal du tout mais le probleme est que c'est aà l'utilisateur de définir le nombre de Wave OS a configurer
J'avoue que je ne comprends pas trop où est le problème ?

Comment l'utilisateur choisit-il le nombre de champs à mettre en place dans le formulaire ?

par Nico789 » 13 juin 2007, 21:49

Iclo => Ton idée est pas mal du tout mais le probleme est que c'est aà l'utilisateur de définir le nombre de Wave OS a configurer

C'est pour cela que j'ai utilisé une boucle 'for' pour avoir le nombre exacte demander

Code : Tout sélectionner

<tr> <td>&nbsp;</td> <td><strong>Numero IP <?php echo $i ?></strong></td> <td><input type="text" value="<?php echo $i; ?>" name=<?php echo $i ?> style="width: 120px" /></td> </tr>
Il semblerait que chaque champs d'adersse IP soit différents : 1,2,3,4,5 etc etc. Je vas tenter de voir si ont peut tout reprendre.. ! Dites moi si c'est possible au cas ou si j'échoue

Merci[/php]

par iclo » 13 juin 2007, 17:24

Tu ne peux pas avoir de form imbriqué.
Si tu veux avoir un formulaire général, il faut que ça soit un formulaire unique.
Maintenant rien ne t'empêche d'avoir plusieurs boutons submit, un par par partie de formulaire, et d'effectuer un test pour savoir quelle partie du formulaire doit être tester.

Si tu souhaites avoir des séries de champ identiques, tu peux les définir comme un seul tableau, en faisant suivre leur nom de crochets '[]' Tu récupereras alors toutes leurs valeurs dans un tableau.
Par exemple:
si tu as 3 champs "nom"
<form>
<input type="text" name="nom[]">
<input type="text" name="nom[]">
<input type="text" name="nom[]">
</form>
Tu récupereras un tableau "nom" de 3 lignes, et avec dans chaques lignes le contenu d'un des champs.
De là, tu peux facilement traiter chaque champs en parcourant le tableau.

par Invité » 13 juin 2007, 14:47

@rthur=> le probleme est que je ne sais pas comment sauvegarder le contenu de chaque cahmp de texte sans cliquer sur le bouton "submit",utilisant une boucle pour afficher les champs de textes. Le 1er champ d'adresse Ip est écrasé par le 2nd qui ensuite est écrasé par le dernier

en faite je ne sauvegarde que la derniere adresse IP..Il serait possible de sauvegarder sans cliquer sur le bouton validé?

par Nico789 » 13 juin 2007, 10:42

Si tu ne nous donne pas le code de la page qui contient tes requètes SQL ça va être dur.
Oui désolé de ne pas l'avoir mises : je fais une requete php assez simple voici le code
<?php mysql_connect("localhost", "root", "");
mysql_select_db("projet");
$adresse = $_POST['numIP']; 
mysql_query("INSERT INTO `ip` ( `ip`) 
				VALUES ('$adresse');");
mysql_close();
?>
ensuite il y a un formulaire pour enter les modifications pour un seul Wave OS

Code : Tout sélectionner

<table width="100%"> <tr> <td align="center"> <div style="color: red; font-size: 14px"> <h3>System Management Wave Os v1.0f</h3> </div> </td> </tr> <tr align="center"> <td align="center"> <form name=script ACTION="script.php" METHOD="GET"> <table width="550" style="border: 5px solid #cccccc; color: #000000;" cellpadding="0" cellspacing="0" > <tr> <td width="35">&nbsp;</td><td width="216">&nbsp;</td> <td width="297">&nbsp;</td> </tr> <tr> <td>&nbsp;</td> <td><strong>Adresse IP Wave OS</strong></td> <td><input type="text" value="192.168.1.122" name=adresseWaveOS style="width: 120px" /></td> </tr> <tr> <td>&nbsp;</td> <td><strong>Login</strong></td> <td><input type="text" value="admin" name=login style="width: 120px" /></td> </tr> <tr> <td>&nbsp;</td> <td><strong>Mot de passe</strong></td> <td><input type="text" value="" name=motdepasse style="width: 120px" /></td> </tr> <tr> <th colspan="3">Configuration Wave OS</th> </tr> <tr> <td>&nbsp;</td> <td><strong>Ajout nouvelle adresse</strong></td> <td><input type="text" value="192.168.1.125" name=nouvelleadresse style="width: 120px" /></td> </tr> <tr> <tr> <td colspan="3" align="center"><input type=submit value="Modification" /></td> </tr> <tr> <tr> <td>&nbsp;</td> </tr> </table> </form> </td> </tr> </table>
Je vais lire tes documents un autre probleme se pose en faite :

Ppur chaque champs d'adresse IP j'ai mis la fin du formulaire,c'est à dire un bouton "submit" or je voudrais un bouton "submit" général pour tout les chamsp de textes : est ce que si je fais

Code : Tout sélectionner

<form> <form> <input type=submit value="ModificationSeul.php"> </form> <input type=submit value="ModificationGenerale.php"> </form>
cela marche t-il?[/code]

par @rthur » 13 juin 2007, 09:48

Bonjour,

Si tu ne nous donne pas le code de la page qui contient tes requètes SQL ça va être dur.

Sinon une autre solution, peut être plus simple pour enregistrer tes adresses IP serait d'utiliser un fichier texte
http://fr.php.net/file_get_contents
http://fr.php.net/file_put_contents

Enregistrement de formulaire HTML dans base de donnée MySQL

par Nico789 » 12 juin 2007, 22:01

Bonsoir, je suis nouveau dans le forum. Je suis en fin de 2eme année de DUT Informatique,je suis actuellement en fin de stage en entreprise

Je n'ai pratiqué que tres peu PHP lors de ma 1ere année de DUT informatique ( moins de 1 mois) et je dois finir un projet pur le compte de mon entreprise

Le probleme est le suivant : mon maitre de stage désirerait que je fasse un programme en php qui permet de configurer un outil (Wave OS ) grace à son adresse IP

Je suis parvenu a réaliser le projet or je rencontre un sérieux probleme: Je suis arrivé a taper un programme qui permet de configurer seulement un Wave OS or mon maitre de stage désirerait qu'on puisse faire des modifications générale..

Exemple : Je tape 2 adresses IP et je clique sur un bouton "modification générale " je dois aller sur une page php qui permet de faire UNE SEULE modification pour les 2 Wave OS

Ma solution est de stocker les adresses IP dans une base de données,et lorsque j'en ai besoin je fais une requete qui me permettent de retrouver ses 2 adresses..

Malheureusement je ne sais pas trop comment procéder pour stocker 2 adresses car au départ on demadne à l'utilisateure le nombre de Wave OS a configurer et grace à une boucle "pour" en php je créer autant de champ d'adresse Ip que demander grace à la balise <Form> en HTML

mais la création successive de cham d'adresse IP écrase l'anciennce .. en désirant uen modif générale,je ne sauvegarde que la derniere adresse IP entrée voici le code

Code : Tout sélectionner

<html> <head> <title> Modification des Wave OS; </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <style type="text/css"> body {color: #0088dd; font-family: verdana ;} select,input { border: 1px solid #BBBBBB; padding: 2px; margin: 1px; font-size: 14px; color: #000000; } textarea{ border: 1px solid #BBBBBB; padding: 2px; margin: 1px; font-size: 14px; color: #000000; width : 20em; } a, a:link, a:visited, a:active { color: #0088dd; text-decoration: none; font-size: 10px; } a:hover { border-bottom: 1px dotted #c1c1c1; color: #000000; } img {border: none;} td { font-size: 14px; color: #000000; } tr {height: 30px;} </style> </head> <body> <?php $nbWaveOS = $_GET['nbWaveOS']; ?> <p algin="center"> <table width="100%"> <tr> <td align="center"> <div style="color: red; font-size: 14px"> <h3>System Management Hotspot v2.1f</h3> </div> </td> </tr> <tr align="center"> <td align="center"> <?php for ($i=1; $i<=$nbWaveOS;$i++){ ?> <form name=script ACTION="menumodif.php" METHOD="POST"> <table width="550" style="border: 1px solid #cccccc; padding: 0px;" cellpadding="0" cellspacing="0" > <tr> <td width="35">&nbsp;</td><td width="216">&nbsp;</td> <td width="297">&nbsp;</td> </tr> <tr> <th colspan="3">numero IP Wave OS</th> </tr> <tr> <td>&nbsp;</td> <td><strong>Numero IP</strong></td> <td><input type="text" value="192.168.1.122" name=numIP style="width: 120px" /></td> <!--<td><input type="button" value="modifier" onclick="self.location.href='menumodif.php'"> </td> --> </tr> <tr> <td colspan="3" align="center"><input type=submit value="Configurer" /></td> </tr> </table> </form> <?php } ?> </td> </tr> <tr> <td align="center"> </td> </tr> </table> </p> </body> </html>
Je ne sais pas si j'ai écris mon topic sur la bonne section,merci de la déplacer si je me trompe

Merci