Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2010, 13h55   #1
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Par défaut Récupérer données Post d'un tableau

Bonjour à tous,
je souhaite récupérer les données d'un formulaire /tableau pour ajouter à une table adhérent

j'ai un problème de syntaxe sur la ligne input, que je n'arrive pas à résoudre

un œil neuf et averti me serait d'un grand secours

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
/**Recupere variables d'un tableau formulaire
 */
echo "<div> <h1> Ajouter Adhérent </h1> </div>"; //Titre
 
echo "<form name=\"frmModif\" method=\"post\" >";
 
echo "<table align=center width=38% border=1px background-color=#f2e3c4>";
 
echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\" if ( isset($_POST[\'email_adh\']) ) echo htmlentities($_POST[\'email_adh\'])  </td></tr>">;
// et les suivants
echo"</table>";
echo "<br>";
echo '    <div style="text-align:center;"><input type="submit" name="submit" value="Envoyer l\'Ajout"></div>'.    "\n";
echo "<br>";
echo "</form>";
//echo"stop2";
 
 
?>
merci d'avance
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 11h44   #2
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

ton input n'est pas fermé, de plus l'encapsulation PHP et HTML n'est pas faite :

voici le code à modifier :

Code :
1
2
 
<input type=\"text\" name=\"email_adh\" value=\"<?php if ( isset($_POST[\'email_adh\']) ) echo htmlentities($_POST[\'email_adh\'])  ?>\" > </td></tr>">;
J'espère que ca pourra t'aider.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 14h11   #3
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Par défaut recettion d'un post sur une seule page

Merci Antony pour ta réponse, j'ai toujours la même erreur de syntaxe.

pour Mathieu, c'est bien de laisser un commentaire , j'eus préféré, qu'il soit constructif
j'essaye de faire un tableau de mise à jour INSERT par post sur:
* 1 seule page d'une bdd
* en php
si tu as une idée constructive, je suis preneur
Cordialement
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 14h26   #4
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
J'ai vu l'erreur, en fait c'est l'echo des POST qui est mauvais, ci-dessous la bonne ligne:

Code :
1
2
 
echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\"<?php if ( isset($_POST["email_adh"]) ) echo $_POST["email_adh"];  ?>\" > </td></tr>">;
J'espère que ca pourra t'aider.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 14h28   #5
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
oulà faut que j'arrête de fumer !

Code :
1
2
3
4
5
 
$mail = "";
if ( isset($_POST["email_adh"]) ) $mail = $_POST["email_adh"];
 
echo "<tr><td>&nbsp;&nbsp;Email:</td>   <td>    <input type=\"text\" name=\"email_adh\" value=\"".$mail."\" > </td></tr>">;
J'espère que ca pourra t'aider (excuses-moi pour mes réponses précédentes).
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 14h37   #6
Membre éclairé
 
Inscription : août 2007
Messages : 360
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 360
Points : 334
Points : 334
Bonjour,

C'est vrai que vu de cet angle la, c'est pas très constructif (humeur du moment)...

Je ne sais pas trop ou se situe ton code, ni pourquoi tu réalises des "echo" avec du code HTML dedans.

Tu ne respectes pas les standards W3C, ni les bases de la séparation des couches...

Voila une méthode plus propre de coder :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div> 
  <h1>Ajouter Adhérent</h1> 
</div>
<form name="frmModif" method="post" action="???" >
  <table align="center" width="38%" border="1px" background-color="#f2e3c4" style="">
    <tr>
      <td>Email:</td>
      <td>    
        <input type="text" name="email_adh" value="<?php if ( isset($_POST['email_adh']) ) echo htmlentities($_POST['email_adh']) ?>"
      </td>
    </tr>
  </table>
  <br />
  <div style="text-align:center;">
    <input type="submit" name="submit" value="Envoyer l'Ajout" />
  </div>
  <br />
</form>
TABLE ou DIV : décides toi...

Pour les conseils :

- Regardes du coté des DOCTYPE et choisi celui qui te sembles le plus adapté a ton cas.
- Ne confonds pas langage serveur (PHP), description de tes pages (HTML ou xHTML), style de tes pages (CSS).
- Une fois que tes pages te semblent correctes, soumets les a un validateur.
- Indente ton code source.
- Utilises un éditeur de code.

Voila...

Cordialement,

Mathieu
mathieu44800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 18h38   #7
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
merci a vous deux,
je rentre de province ce soir,

je vais essayer demain, avant la fête

je vous souhaite un bon réveillon et une bonne année 2011

je vous tiens au courant

Bonne soirée
Claude
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 17h03   #8
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Bonjour
je viens de faire les essais
1-le code d'Antony fonctionne bien pour envoyer le POST sur une autre page html et récupérer les données
2- le code de Mathieu me semble répondre exactement à ma recherche cad pouvoir récupérer les variables du post et de faire l'INSER sur une seule page, il fonctionne pour la création du tableau, mais je n'arrive pas à récupérer les variables et de faire l'INSER sur la table
je pense que mon code décode...complètement

si vous avez une solution, c'est dur à 63 ans de se mettre à la programmation pour une association !!!!!!
http://cg-aisne.org

Bon réveillon et Meilleurs vœux 2011
Fichiers attachés
Type de fichier : php essai.php (2,4 Ko, 2 affichages)
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2011, 12h44   #9
Membre éclairé
 
Inscription : août 2007
Messages : 360
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 360
Points : 334
Points : 334
Salut,

Essayes ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
 
<?php
require_once("_connect.php");
 
// Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
$sql = "INSERT INTO galette2_adherents (
          numero_adh, 
          nom_adh, 
          prenom_adh, 
          id_statut, 
          pseudo_adh, 
          login_adh
        ) VALUES (
          '".$numero_adh."', 
          '".$nom_adh."', 
          '".$prenom_adh."', 
          '".$id_statut."', 
          '".$pseudo_adh."', 
          '".$login_adh."'
        )";
 
$result = mysql_query($sql);
 
if ($result)
{
  header("Location: essai.php");
  // Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
}
?>
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="style.css">
    <link rel="icon" type="image/ico" href="/favicon.ico">
    <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
    <meta http-equiv="Content-Type" content="text/html; charset=iso 8859-1">
  </head>
  <body>
    <div>	
      <h1>Ajouter Adh&eacute;rent</h1>	
    </div>
    <form name="frmAjout" method="post" action="<?php echo $_SERVER['PHP_SELF']?>" >
      <table align="center" width="38%" border="1px" style="background-color:#f2e3c4">
          <tr>
            <td>Num&eacute;ro Adh&eacute;rent : </td>
            <td>
              <input type="text" value="<?php if ( isset($_POST['numero_adh']) ) echo htmlentities($_POST['numero_adh']) ?>" />
            </td>
            <td>
              <i>&nbsp;&nbsp;&nbsp; N° Adhérent = CGA0000
            </td>
          </tr>
          <tr>
            <td>Nom :</td>
            <td>		
              <input type="text" name="nom_adh" value="<?php if ( isset($_POST['nom_adh']) ) echo htmlentities($_POST['nom_adh']) ?>" />
            </td></tr>
          <tr>
            <td>Pr&eacute;noms :</td>
            <td>
              <input type="text" name="prenom_adh" value="<?php if ( isset($_POST['prenom_adh']) ) echo htmlentities($_POST['prenom_adh']) ?>" />
            </td>
          </tr>
          <tr>
            <td>Statut :</td>
            <td>
              <input type="text" name="id_statut" value="<?php if ( isset($_POST['id_statut']) ) echo htmlentities($_POST['id_statut']) ?>" />
            </td>
          </tr>
          <tr>
            <td>Pseudo Adh&eacute;rent :</td>
            <td>
              <input type="text" name="pseudo_adh" value="<?php if ( isset($_POST['pseudo_adh']) ) echo htmlentities($_POST['pseudo_adh']) ?>" />
            </td>
          </tr>
          <tr>
            <td>Login Adh&eacute;rent :</td>
            <td>
              <input type="text" name="login_adh" value="<?php if ( isset($_POST['login_adh']) ) echo htmlentities($_POST['login_adh']) ?>" />
            </td>
          </tr>
      </table>
      <br/>
      <div style="text-align:center;">
        <input type="submit" name="submit" value="Envoyer l'Ajout" />
      </div>
      <br />
    </form>
  </body>
</html>
Pas testé cependant...

Cordialement,

Mathieu
mathieu44800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2011, 10h09   #10
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Bonjour Mathieu et merci pour ton script,
je viens de l'essayer , le tableau est ok
j'ai une erreur sur les premières lignes du php

Notice: Undefined variable: prenom_adh in D:\wamp\www\adherents\essai2.php on line 15
qui correspond à:
'".$prenom_adh."',
et les lignes identiques

Merci de ton aide
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 00h32   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
les donnée viennent de post donc pour les recuperer c'est par exemple $_POST['prenom_adh']

mathieu44800 > ton code ca va pas dutout, y'a aucune vérification des variable, en plus elle n'existe pas, ton code est soumis au injection SQL même si ca reste de l'ajout, aucune verfication des erreur sql en cas d'échec,
au niveau html les &eacute; et compagnie n'ont rien a faire la, le action="<?php echo $_SERVER['PHP_SELF']?>" est a déconseiller, l'adresse du script php n'est pas forcement le même que l'adresse (rewriting), c'est plus htmlspecialschars que htmlentities, si y'a des soucis d'encodage tu ne pourras pas les détecter, <table> de doit pas servir pour la mise en forme, apres pour les attribut c'est a toi de voir, la c'est style HTML 4 pourquoi pas c'est correct

anthony89 > en HTML, <input> n'as pas besoin d'être fermer c'est la différence avec le XHTML
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 08h42   #12
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour Stealth35,
Je te souhaite d'abord de joyeuses fêtes.
Je te remercie de vouloir m'aider et de donner des précisions dans mes explications qui peuvent être imprécises, mais lorsque je parlais de fermer la balise, je faisait référence au caractère ">" qui manquait dans le code source de Claude77, non pas au "</inuput>" qui n'existe d'ailleurs pas.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 10h08   #13
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Bonjour à tous,
merci stealth de tes commentaires, Mathieu et Antony ont pris le temps de m'aider, pour l'instant je ne demande pas un script qui dise papa maman, mais un script qui me permette de mettre à jour ma BDD
j'ai essayé ta modif, mais j'ai les mêmes erreurs sur les mêmes lignes
mais je n'ai peut être pas tout compris à ton message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
//script essai2.php
	require_once("_connect.php");
 
// Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
$sql = "INSERT INTO galette2_adherents (
          numero_adh,
          nom_adh,
          prenom_adh,
          id_statut,
          pseudo_adh,
          login_adh
        ) VALUES (
          '".$_POST['numero_adh']."',
          '".$_POST['nom_adh']."',
          '".$_POST['prenom_adh']."',
          '".$_POST['id_statut']."',
          '".$_POST['speudo_adh']."',
          '".$_POST['login_adh']."'
        )";
 
$result = mysql_query($sql);
 
if ($result)
{
	header("Location: essai2.php");
	// Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
}
?>
Citation:
Notice: Undefined index: numero_adh in D:\wamp\www\adherents\essai2.php on line 13
et même erreur sur les lignes suivantes
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 10h19   #14
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

ce message veut dire que "prenom_adh" n'existe pas en POST.
afin d'isoler un tel problème, il suffit d'afficher les données qui sont envoyées.

Code à essayer :
Code :
1
2
3
4
5
6
7
 
//la balise pre met en forme le print_r.
//sans cela, le code sera difficilement lisible
echo "<pre>";
//en fin de compte, $_POST n'est rien d'autre qu'un tableau PHP...
print_r($_POST);
echo "</pre>";
J'espère que ca pourra t'aider
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 12h15   #15
Membre éclairé
 
Inscription : août 2007
Messages : 360
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 360
Points : 334
Points : 334
Bonjour,

Il faut ajouter un ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
<?php
//script essai2.php
require_once("_connect.php");
 
if (isset($_POST['numero_adh'])) 
{
// Cas de l'insertion (l'adhérant n'existe pas dans la base de données)
$sql = "INSERT INTO galette2_adherents (
numero_adh,
nom_adh,
prenom_adh,
id_statut,
pseudo_adh,
login_adh
) VALUES (
'".$_POST['numero_adh']."',
'".$_POST['nom_adh']."',
'".$_POST['prenom_adh']."',
'".$_POST['id_statut']."',
'".$_POST['speudo_adh']."',
'".$_POST['login_adh']."'
)";
 
$result = mysql_query($sql);
 
if ($result)
{
header("Location: essai2.php");
// Marche à condition qu'il n'y ai rien d'écrit précédemment dans la page
}
}
?>
Faut que je penses à me relire des fois...

Cordialement,

Mathieu
mathieu44800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h06   #16
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
Bonjour ,
j'ai fait ta modif
il n'y a plus d'erreur de syntaxe mais ça n'enregistre pas
il semble que je récupère pas le numéro d'adhérent et comme il est dans le isset,
avec le code d'Antony je récupère :
Code :
1
2
3
4
5
6
7
8
9
Array
(
    [nom_adh] => dibois
    [prenom_adh] => gg
    [id_statut] => 1
    [pseudo_adh] => cga2500
    [login_adh] => CGA2500
    [submit] => Envoyer l'Ajout
)
on est prés du but , juste une petite conne.... peut être au niveau de l'input

Cordialement
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h13   #17
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
après vérifications de ton source, le input du numéro d'adhérent n'a pas de name
il suffit d'en ajouter un :

Code :
1
2
3
4
5
6
7
8
9
10
 
<tr>
            <td>Num&eacute;ro Adh&eacute;rent : </td>
            <td>
              <input type="text" name="numero_adh" value="<?php if ( isset($_POST['numero_adh']) ) echo htmlentities($_POST['numero_adh']) ?>" />
            </td>
            <td>
              <i>&nbsp;&nbsp;&nbsp; N° Adhérent = CGA0000
            </td>
          </tr>
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 15h35   #18
Candidat au titre de Membre du Club
 
Inscription : février 2009
Messages : 94
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 94
Points : 11
Points : 11
un grand merci à vous deux pour votre aide de j'ai appréciée
çà fonctionne, je vais terminer avec le reste du formulaire
et je mettrai votre script sur le site avant de clôturer
Bonne soirée
claude77 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/01/2011, 16h58   #19
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par anthony89 Voir le message
Bonjour Stealth35,
Je te souhaite d'abord de joyeuses fêtes.
Je te remercie de vouloir m'aider et de donner des précisions dans mes explications qui peuvent être imprécises, mais lorsque je parlais de fermer la balise, je faisait référence au caractère ">" qui manquait dans le code source de Claude77, non pas au "</inuput>" qui n'existe d'ailleurs pas.
autant pour moi
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h38.


 
 
 
 
Partenaires

Hébergement Web