Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !
WDMedia-Hebergement
 


Rechercher dans le forum

Mots-clés :

Trouver :
un de ces termes tous les termes

Depuis :
7 j 15 j 30 j


Retour à l'index du forum

insertion formulaire notament champ type hidden

Message original de andre

Le : 30/12/2008 à 10:53:22

Dejà lu 4132 fois avant vous

Bonjour bonne fete a tous...;
J'ai un formulaire qui fonctionnait bien...j'ai voulu rajouter un champ hidden pour une autorisation par défaut et depuis ce champ n'est pas pris en compte car j'ai l'erreur : Column count doesn't match value count at row 1..

<label for="autorisation" class="float"></label><input type="hidden" name="autorisation" value="<?php if (isset($_POST['2'])) echo htmlentities(trim($_POST['2']));  ?>">


et le traitement

<?php
 
// on teste si le visiteur a soumis le formulaire  
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
// on teste l'existence de nos variables. On teste également si elles ne sont pas vides 
if ((isset($_POST['nom']) && !empty($_POST['nom'])) && (isset($_POST['prenom']) && !empty($_POST['prenom'])) && (isset($_POST['e_mail']) && !empty($_POST['e_mail'])) &&(isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass_md5']) && !empty($_POST['pass_md5'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))&& (isset($_POST['autorisation']) && !empty($_POST['autorisation']))) { 
// on teste les deux mots de passe 
if ($_POST['pass_md5'] != $_POST['pass_confirm']) { 
$erreur 'Les 2 mots de passe sont différents.'
   } 
   else { 
$base mysql_connect ('localhost''bonnefete''bonnefete'); 
mysql_select_db ('bonnefete'$base); 
// on recherche si ce login est déjà utilisé par un autre membre 
$sql 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'
$req mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
$data mysql_fetch_array($req); 
if (
$data[0] == 0) { 
$sql 'INSERT INTO membre(id,nom,prenom,e_mail,login,pass,autorisation) VALUES("", "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'","'.mysql_escape_string($_POST['e_mail']).'","'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass_md5']).'", "'.mysql_escape_string($_POST['autorisation'])).'")'
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
session_start(); 
$_SESSION['login'] = $_POST['login']; 
header('Location: administration.php'); 
exit(); 
         } 
         else { 
             
$erreur 'Un membre possède déjà ce login.'
          } 
       } 
    } 
    else { 
       
$erreur 'Au moins un des champs est vide.'
    }  
 }  
?>


Merci pour vos reponses.....
@

Re: insertion formulaire notament champ type hidden

Réponse de Moogli

Le : 30/12/2008 à 12:18:57

salut,

le problème est dû au fait que la colonne que tu essai d'utiliser n'existe pas.


Si tu nous montrer le message d'erreur complet on pourrais t'indiquer la ligne exact qui pose problème !


@+

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 30/12/2008 à 12:31:56

Re: insertion formulaire notament champ type hidden

Réponse de luce

Le : 30/12/2008 à 13:04:38

Salut,
Count retourne ZERO, à mon avis il aime pas trop.

Au lieu de faire un count, fait un mysql_num_rows().

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 30/12/2008 à 13:37:34

Slt, merci l'erreur a un peu évoluer maintenant il m'affiche au moins un des champs est vide......
Je me demandais si les champsde type hidden se traite dans la reception et insertion comme les autres?
Puisque c'est depuis que j'ai rajouter ce champ que j'ai l'erreur---> j'ai rajouter une colonne autorisation dans ma table de type tinyint() evidament...mdr
@+ andré

Re: insertion formulaire notament champ type hidden

Réponse de luce

Le : 30/12/2008 à 13:52:38

Re,

C'est exactement pareil qu'un champs text, mais là, la valeur de ton champs hidden provient d'un autre formulaire, et si il est vide, alors ton champs autorisatio n'a pas de valeur, change pour ça, tu veras ca va fonctionner :
<?php if (isset($_POST['2'])) { echo htmlentities(trim($_POST['2'])); } else { echo '1';} ?>

Par contre, n'oublie pas que les formulaires sont modifiables, donc n'importe qui peut changer la valeur d'autorisation.

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 30/12/2008 à 14:56:04

RE merci luce
Le formulaire s'envoie maintenant mais......
pfff!!!!! je me retrouve avec l'erreur d'avant ....

Erreur SQL !INSERT INTO membre(id,nom,prenom,e_mail,login,pass,autorisation) VALUES("", "Brassac","André","andre.brassac@free.fr","Tintindelacite", "974bd4df433ae66cff6e8e83d96de4c5")
Column count doesn't match value count at row 1


Pourtant le nombre de champ de ma table correspond au nombre de champ de mon formulaire
D'habitude j'ai cette erreur quand je ne traite pas tous les champs de la table...je crois mes la????
[citation]
Par contre, n'oublie pas que les formulaires sont modifiables, donc n'importe qui peut changer la valeur d'autorisation.
[/citation]
Même les champs cachés?
Merci de ta patience....

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 30/12/2008 à 15:05:33

Dans VALUES, il n'y a pas la valeur pour "autorisation".....

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 30/12/2008 à 15:07:17

Et ce n'est pas la peine d'insérer le champ id si c'est pour lui transmettre une valeur « vide ».

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 30/12/2008 à 15:28:48

Re slt dionysos merci id j'avais pas vu en fait je l'avais rajouté a un moment quand je chercher mon erreur.....Pour values j ne savais pas s'il fallait mettre la valeur ou le nom du champ.....
ça fonctionne...
Si quelqu'un peut m'expliquer la difference entre ces input

<input type="hidden" name="autorisation" value="<?php if (isset($_POST['2'])) { echo htmlentities(trim($_POST['2'])); } else { echo '1';} ?>">


et

<input type="hidden" name="autorisation" value="<?php if (isset($_POST['2'])) echo htmlentities(trim($_POST['2']));  ?>">


Merci beaucoup à tous je pense que je reviens bientot pour rediriger en fonction de l'autorisation....

session_start(); 
if $_SESSION['login'] = $_POST['login']; 
header('Location: lightforum.php'); 


@+

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 30/12/2008 à 19:38:17

Re slt, en fait j'ai parlé trop vite ma table se remplie de facon decalé
id ->ok
nom->vide
prenom->le nom
e_mail-> prenom
login->e_mail ect....pour pass_md5 et autorisation ne s'inscrit pas....
Merci a tous ceux qui pourront m'éclairer
@+ andré

Re: insertion formulaire notament champ type hidden

Réponse de luce

Le : 31/12/2008 à 10:57:35

Salut,

Donne nous la structure de ta table.

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 31/12/2008 à 12:49:37

Salut, ça fonctionnait avant que je rajoute le champ de type hiden donc a moins que j'ai modifié sans faire gaffe....
J'ai change le type du champ autorisation en int avant j'avais tinyint....
id int(11) Non auto_increment
nom varchar(25) latin1_swedish_ci Non
prenom varchar(20) latin1_swedish_ci Non
e_mail varchar(25) latin1_swedish_ci Non
login varchar(12) latin1_swedish_ci Non
pass_md5 varchar(12) latin1_swedish_ci Non
autorisation int(1) Non
Voila la structure de ma table......
Merci @+

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 31/12/2008 à 13:54:50

Et si tu donnais aussi la requête qui plante ?
Car j'imagine que ce n'est plus la même que celle que tu as fourni précédemment ?
Et en faisant en sorte qu'elle entre dans la page car une chaîne de 300 caractères, j'en vois peut-être les 100 premiers, c'est tout...

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 31/12/2008 à 14:50:33

Salut dionysos merci de te pencher sur mon problème.....je vais essayer de faire rentrer la requete dans les codes

$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
$data = mysql_fetch_array($req); 
if ($data[0] == 0) { 
$sql = 'INSERT INTO membre(nom,prenom,e_mail,login,pass_md5,autorisation) VALUES("","'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'",
"'.mysql_escape_string($_POST['e_mail']).'","'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass_md5']).'", "'.mysql_escape_string($_POST['2'])).'")'; 
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
session_start(); 


@+ merci

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 31/12/2008 à 14:52:55

re je re teste

$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
$data = mysql_fetch_array($req); 
if ($data[0] == 0) { 
$sql = 'INSERT INTO membre(nom,prenom,e_mail,login,pass_md5,autorisation) VALUES("","'.mysql_escape_string($_POST['nom']).'",
"'.mysql_escape_string($_POST['prenom']).'",
"'.mysql_escape_string($_POST['e_mail']).'","'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass_md5']).'",
 "'.mysql_escape_string($_POST['2'])).'")'; 
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />
'.mysql_error()); 


@+ merci

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 31/12/2008 à 14:58:44

Quand je t'ai dit qu'il était inutile d'insérer le champ id puisque tu lui donnait une valeur « vide », cela voulait dire AUSSI supprimer la valeur « vide » dans VALUES !!!!

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 31/12/2008 à 15:14:42

Re si je le vire dans value j'avais essyer mais ca me retourne

Erreur SQL !INSERT INTO membre(nom,prenom,e_mail,login,pass_md5,autorisation) VALUES("Brassac","André","andre.brassac@free.fr","Tintindelacite", "df665875611c9bf70d406d456606f407")
Column count doesn't match value count at row 1


Desolé mais je crois que je vais tout reprendre de zero et voir.....
@ + merci

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 31/12/2008 à 15:20:18

Parce que cette fois-ci, tu n'as pas mis la valeur du champ « autorisation » dans VALUES !!
Tu le fais exprès ou quoi ?

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 31/12/2008 à 16:01:52

Re sisi j'ai la valeur du champ autorisation alors j'ai pas bien compris la syntaxe.....

<?php
$sql 
'INSERT INTO membre(nom,prenom,e_mail,login,pass_md5,autorisation) VALUES("'.mysql_escape_string($_POST['nom']).'",
"'
.mysql_escape_string($_POST['prenom']).'",
"'
.mysql_escape_string($_POST['e_mail']).'",
"'
.mysql_escape_string($_POST['login']).'",
 "'
.md5(mysql_escape_string($_POST['pass_md5']).'", 
"'
.mysql_escape_string($_POST['2'])).'")'
?>


merci @+

Re: insertion formulaire notament champ type hidden

Réponse de Dionysos

Le : 31/12/2008 à 16:19:46

VALUES("Brassac","André","andre.brassac@free.fr","Tintindelacite", "df665875611c9bf70d406d456606f407")


Il est où la dedans ton champ autorisation ?

Si tu as bien utiliser la requèe que tu viens de donner, c'est que "'.mysql_escape_string($_POST['2'])).'" est vide.
À noter qu'il y a une parenthèse fermante en trop.

Sur ce, bonne soirée et bon réveillon à tout le monde !

Re: insertion formulaire notament champ type hidden

Réponse de luce

Le : 31/12/2008 à 16:32:18

Normal,

Tu ajoutes un champs hidden, appeler "autorisation", et tu appeles le champs "$_POST['2']"

Alors je ne sais pas pour toi, mais 2 ne veut pas dire autorisation !

Re: insertion formulaire notament champ type hidden

Réponse de andre

Le : 02/01/2009 à 13:27:37

Slt, bon codage 2009.....
Apparament il faut que je passe dans post le nom du champ et la valeursi j'ai bien compris.....
J'ai tester plusieurs syntaxe sans resultats....
Je vais essayer de trouver la bonne syntaxe...
Merci @+ andre
Retour à l'index du forum


Ajouter une réponse

Nom :

Email :

Titre :

Message :

Combien font 3 + 4 ?

Mise en forme : gras = [b]...[/b], italic = [i]...[/i], souligné = [u]...[/u], citation = [quote]...[/quote], lien = [url]liens_externe[/url] ou [url nom=texte]liens_externe[/url], code source : [code]...[/code]

Recevoir les réponses par mail :
Oui Non

Mémoriser mon nom et mon email :
Oui Non

 

Charte des forums PHPDébutant

Bienvenue à vous,

Vous voici donc prêt à poster sur les forums de PHPDébutant. Avant toute chose, merci de prendre le temps de lire les quelques lignes qui suivent.

Attention, à partir du moment ou vous postez dans les forums, vous acceptez la présente charte. Si votre message est modéré ou supprimé, vous ne pourrez pas dire que vous n'étiez pas au courant des règles !

Pourquoi une charte

Le but de cette charte est simple : que ces forums restent cordiaux et que les personnes aidant les autres ne se sentent pas lésées, insultées, critiquées. Pour que ces forums fonctionnent, il faut des personnes qui répondent aux questions. Pour que celles ci restent sur le forum, il faut les traiter avec respect, et ne pas les confondre avec des bonnes poires, esclaves, etc...

Mesures de régulation

  • Un nouveau message ne disant pas bonjour, ou insultant, dont le titre est tout en majuscules, pourra être supprimé sans justification (raisons non limitatives).
  • Prenez le temps de vérifier que la question que vous allez poser n'a pas déjà été posée, à l'aide du formulaire de recherche.
  • Prenez également le temps de vérifier que la réponse à votre question ne se trouve pas dans les tutoriaux. Nous ne pouvons pas répeter pour chaque visiteur tous les cours, il sont écrits, profitez-en (dans l'ordre tant qu'à faire) !
  • Nous ne faisons pas de scripts tout prêts. Nous aidons et vous guidons pour que vous puissiez trouver vous même la réponse, ce qui est beaucoup plus formateur.
  • Si vous comptez poster un message publicitaire, abstenez-vous. Au mieux le message sera supprimé, au pire les habitués descendront votre service en flamme.
  • Pour tout message de recrutement, précisez bien votre demande. Inutile de poster pour trouver un développeur pour faire gratuitement votre site de webmastering qui vous rapportera plein de sous. Les seuls coups de mains donnés en développement sont pour des associations ou des sujets passionnant un développeur.
  • Toute personne tenant des propos racistes ou illicites sera bannie et pourra faire l'objet de poursuites.
  • L'humour étant très présent sur ces forums, ne réagissez pas violemment à des propos qui pourraient être à prendre au second degré et avec de l'humour.
  • Attention aux trolls ! Leur multiplication peut entraîner la mort des forums, et sans forum, plus d'aide !
  • Respectez les thèmes des forums. Pensez aussi à vérifier que votre message n'a pas été déplacé si vous le croyez effacé.

Conseils

  • N'oubliez pas que les personnes à qui vous vous adressez sont des bénévoles qui donnent de leur temps pour vous. Si vous êtes méchants avec eux, il n'aideront plus et vous n'aurez plus d'aide !
  • Ne soyez pas pressé. Nous avons une vie aussi, et nous ne sommes par forcément tout le temps disponibles.
  • N'oubliez pas que les smileys sont la pour faire comprendre l'humeur dans laquelle vous rédigez un message. Il est indispensable de mettre des smileys quand vous faites de l'humour, sinon le message pourrait être mal perçu (ca serait quand même idiot de plomber l'ambiance en faisant de l'humour !).
  • Surveillez votre orthographe, nous ne vous demandons pas d'être littéraire, mais que votre message soit au moins compréhensible. Evitez à tout prix le style SMS.
  • Expliquez clairement le problème, ce n'est pas toujours facile, mais mieux vaut essayer de le faire le plus possible.
  • Ne postez pas de questions trop vagues du genre "comment faire un forum". Cela ne sert à rien, cela ne s'explique pas sur un coin de forum.
  • Mettez un titre clair, correspondant au sujet que vous allez poster. A l'aide, au secours, etc... ne sont pas d'une grande utilité pour ceux qui vont vous aider. Parfois nous passons en coup de vent, et si nous ne savons pas ce que va contenir le message, nous ne le regarderons même pas.
  • Ne mettez par [URGENT] ou autre joyeuseté du genre dans vos titres de messages. Cela irrite les gens (il y'a plus urgent dans la vie, pensez aux gens qui meurent de faim ou ayant besoin des pompiers, ça c'est urgent), et vous n'aurez pas votre réponse plus vite pour autant.
  • Si vous connaissez déjà à quel domaine votre question d'adresse (par exemple mysql, html, php, javascript), n'hésitez pas à le marquer au début de votre message, avec un [html] par exemple (notez les minuscules).
  • Ne dites pas "ça marche pas". Il y a toujours des raisons. Je vous invite à consulter le tutorial "ça marche pas" qui vous aidera à mieux expliquer votre problème.
  • Ne postez pas 36000 lignes de code. Sur le forum, le code apparaît non coloré et sans indentation, ce qui est illisible. Au dessus de 5 lignes, plus personne ne lit et vous n'aurez pas de réponse. Utilisez le wall
  • En règle générale restez courtois et clair, n'oubliez pas que la politesse fait partie de la vie courante. Il est de bon ton de dire bonjour même pour une réponse, même plusieurs fois dans la journée (ceux qui vous lisent n'ont pas forcément lu vos autres messsages)

La Fin

Avec tout ces conseils vous augmenterez les chances de réponse, leur pertinence et leur rapidité

Voilà, ça sera tout, bonne écriture :)

Fermer les règles et poster un message


www.phpdebutant.org © 2012 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement