prob upload champ dans BD à partir d'un formulaire

prob upload champ dans BD à partir d'un formulaire - PHP - Programmation

Marsh Posté le 07-07-2003 à 12:28:43    

voilà, j'ai des difficultés à mettre au point mon système de modification de profil... en fait, je crée pour les users, le login et le pass, et eux lors de la first connexion ou par après devraient pouvoir se rendre dans la page de profil pour le modifier... seulement je n'arrive pas à faire ça...
 
J'ai mes champs de formulaire, mais quand je fais un :
 
mysql_query("update membre set nom=' ???? ' .... where id ='$id'" );
 
je sais pas quoi mettre pour spécifier le champ de formulaire...  
 
please help me


Message édité par neojack le 07-07-2003 à 18:17:26
Reply

Marsh Posté le 07-07-2003 à 12:28:43   

Reply

Marsh Posté le 07-07-2003 à 12:36:21    

si ton formulaire est en GET:  

Code :
  1. $_GET['nomdetonchamps']


si en POST

Code :
  1. $_POST['nomdetonchamps']


 

Reply

Marsh Posté le 07-07-2003 à 12:43:22    

voilà je viens de modifier mon code, et j'ai encore des problèmes.
 
voici mon code

Code :
  1. [cpp]mysql_query("Update membre SET nom =$_POST['nom_membre'] where id=\"$id\"" );


 
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\nicolas\siteweb\160\profil.php on line 49

Reply

Marsh Posté le 07-07-2003 à 12:46:03    

et dis tu veux pas qu'on te le fasse en entier aussi des fois????
ça te dis pas de chercher un peu?
 
Juste une question comme ça en passant, c'est quoi le type de nom dans ta table?

Reply

Marsh Posté le 07-07-2003 à 12:48:37    

Anapajari a écrit :

et dis tu veux pas qu'on te le fasse en entier aussi des fois????
ça te dis pas de chercher un peu?
 
Juste une question comme ça en passant, c'est quoi le type de nom dans ta table?


 
ouais je veux bien que tu me le fasses car là je suis désespéré ça fait des heures que je cherche sans résultat... le type dans la BD de nom c'est VARCHAR

Reply

Marsh Posté le 07-07-2003 à 12:53:58    

je crois que la question de Anapajari était ironique :sarcastic:  
 
enfin, comme ça ça devrait être mieux:

Code :
  1. mysql_query("Update membre SET nom ='".$_POST['nom_membre']."' where id=\"$id\"" );


Reply

Marsh Posté le 07-07-2003 à 12:57:51    

Ou comme çà :
 

Code :
  1. mysql_query("Update membre SET nom ='{$_POST['nom_membre']}' where id=$id" );


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

Marsh Posté le 07-07-2003 à 13:08:28    

:pt1cable: l'enregistrement d'update ne se fait pas dans la base de données........................ je vais devenir complètement  :pt1cable:

Reply

Marsh Posté le 07-07-2003 à 14:30:14    

:bounce:

Reply

Marsh Posté le 07-07-2003 à 14:51:37    

T'es sur d'avoir un enregistrement avec cet id la?
Si tu remplaces les variables par leurs valeurs tu obtiens quoi comme requete?

Reply

Marsh Posté le 07-07-2003 à 14:51:37   

Reply

Marsh Posté le 07-07-2003 à 15:03:58    

si au lieu de référer une variable de champ de formulaire je met ce qui devrait apparaître, entre les quotes, ben là l'enregistrement sera actif dans la BD... franchement je capte plus rien.... ça fait des heures que j'essaie

Reply

Marsh Posté le 07-07-2003 à 15:23:01    

// mysql_query("Update membre SET nom ='{$_POST['nom_membre']}' where id=$id" );
echo("Update membre SET nom ='{$_POST['nom_membre']}' where id=$id" );
exit;


 
Il affiche quoi l'echo ?


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

Marsh Posté le 07-07-2003 à 15:51:19    

Mara's dad a écrit :

// mysql_query("Update membre SET nom ='{$_POST['nom_membre']}' where id=$id" );
echo("Update membre SET nom ='{$_POST['nom_membre']}' where id=$id" );
exit;


 
Il affiche quoi l'echo ?


 
j'ai pas d'écho, vu que je dois rien afficher mais juste pouvoir enregistrer dans la base de données.

Reply

Marsh Posté le 07-07-2003 à 16:00:58    

Neojack a écrit :


 
j'ai pas d'écho, vu que je dois rien afficher mais juste pouvoir enregistrer dans la base de données.


:lol:  t'es enorme ...
Justement mara te disait d'en rajouter un afin que la requete qui est executée soit affichée et qu'on puisse verifier!

Reply

Marsh Posté le 07-07-2003 à 16:11:35    

ouais sorry mais je capte vraiment rien à ce que vous me raconter... pfffff j'ai tellement modifier mon code avec ce que vous me disiez et tellement eu d'erreur différente et débile que là j'ai plus rien capté...

Reply

Marsh Posté le 07-07-2003 à 18:16:59    

bon, j'ai encore essayé tout mon après midi, mais là je crois que je vais me tirer une balle, je n'arrive pas à faire ce que je veux... j'ai donc mon formulaire avec mes champs de formulaire... prenons en un, nom_membre
je voudrais que quand l'utilisateur le complete et valide, l'upload soit fait dans la base de données...
 
j'ai mis dans mon code php inclut directement dans ma page profil.php ce code :

Code :
  1. $upload = "update membre set nom='$_POST['nom_membre'] where id='$id'";

qui donc en fait est une variable nommée upload.
 
Sur mon formulaire, j'ai mis ceci :

Code :
  1. <form method:"post" action="$upload">


 
Mais quand je charge la page profil pour vouloir aller le modifier, j'ai ceci comme message d'erreur :

Code :
  1. Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in d:\nicolas\siteweb\160\profil.php on line 43


 
Là je deviens complètement fou.... s'il vous plait aidez moi encore ... merci

Reply

Marsh Posté le 07-07-2003 à 18:27:29    

:bounce: allez j'ai b'soin d'aide........................................................................................................................

Reply

Marsh Posté le 07-07-2003 à 18:34:53    

Neojack a écrit :

bon, j'ai encore essayé tout mon après midi, mais là je crois que je vais me tirer une balle, je n'arrive pas à faire ce que je veux... j'ai donc mon formulaire avec mes champs de formulaire... prenons en un, nom_membre
je voudrais que quand l'utilisateur le complete et valide, l'upload soit fait dans la base de données...
 
j'ai mis dans mon code php inclut directement dans ma page profil.php ce code :

Code :
  1. $upload = "update membre set nom='$_POST['nom_membre'] where id='$id'";

qui donc en fait est une variable nommée upload.
 
Sur mon formulaire, j'ai mis ceci :

Code :
  1. <form method:"post" action="$upload">




 
 
faut changer ça d'abord :

Code :
  1. <form method="post" action="lenomdetonscriptquivaafireupdate.php">


 
puis dans le script php en question, tu te connecte à la base et tu exécute la requete :
"UPDATE member SET nom=".$POST['nom']." WHERE id=".$POST['id']
 
si l'id est passée aussi par le formulaire, sinon tu mets :
 
"UPDATE member SET nom=".$POST['nom']." WHERE id=$id"
 


Message édité par ratibus le 07-07-2003 à 18:36:56
Reply

Marsh Posté le 07-07-2003 à 18:38:00    

ratibus a écrit :


 
 
faut changer ça d'abord :

Code :
  1. <form method="post" action="lenomdetonscriptquivaafireupdate.php">


 
puis dans le script php en question, tu te connecte à la base et tu exécute la requete :
"UPDATE member SET nom=".$POST['nom']." WHERE id=".$POST['id']
 
si l'id est passée aussi par le formulaire, sinon tu mets :
 
"UPDATE member SET nom=".$POST['nom']." WHERE id=$id"
 
 


 
donc je crée un nouveau fichier .php contenant l'information d'upload.... elle ne doit pas se trouver dans la même page que les infos uploader ? c'est ça ?

Reply

Marsh Posté le 07-07-2003 à 18:55:41    

t'es pas obligé de faire un fichier séparé, le fichier vers lequel le formulaire est posté peut etre le meme que celui qui affiche le formulaire mais qui réagit différemment.
 
faut voir si c'est pertinent ensuite de faire des fichiers séparé ou non

Reply

Marsh Posté le 07-07-2003 à 19:00:27    

bon j'ai créé un fichier upload.php contenant ça :

Code :
  1. <?php
  2. require("conf.php" );
  3. // CONNEXION MYSQL
  4. $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  5. if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
  6. // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  7. $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
  8. // upload dans la bd
  9. mysql_query="UPDATE member SET nom=".$POST['nom_membre']." WHERE id='$id'";
  10. // DECONNEXION MYSQL  
  11. mysql_close($db_link);
  12. ?>


 
et j'ai une erreur que voici... de plus, l'enregistrement n'est pas effectué dans la base.

Code :
  1. Parse error: parse error, unexpected '=' in d:\nicolas\siteweb\160\upload.php on line 9


Message édité par neojack le 07-07-2003 à 19:02:54
Reply

Marsh Posté le 07-07-2003 à 19:00:43    

Au fait, merci à toi ratibus,
 
edit : voici les spécifications des champs de la table membre :
 

Code :
  1. Champ Type Attributs Null Défaut Extra 
  2. id_membre  int(10)   Oui  NULL   
  3. id  varchar(20)   Oui  NULL   
  4. pseudo  varchar(20)   Oui  NULL   
  5. passe  varchar(20)   Oui  NULL   
  6. nom  varchar(30)   Oui  NULL   
  7. prenom  varchar(30)   Oui  NULL   
  8. totem  varchar(30)   Oui  NULL   
  9. email  varchar(50)   Oui  NULL   
  10. telephone  varchar(15)   Oui  NULL   
  11. gsm  varchar(15)   Oui  NULL   
  12. rue  varchar(100)   Oui  NULL   
  13. postal  varchar(5)   Oui  NULL   
  14. localite  varchar(30)   Oui  NULL


Message édité par neojack le 07-07-2003 à 19:02:25
Reply

Marsh Posté le 07-07-2003 à 20:34:45    

Neojack a écrit :

bon j'ai créé un fichier upload.php contenant ça :

Code :
  1. <?php
  2. require("conf.php" );
  3. // CONNEXION MYSQL
  4. $db_link = @mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  5. if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier conf.php3"; exit;}
  6. // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  7. $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link) or die(mysql_error());
  8. // upload dans la bd
  9. mysql_query="UPDATE member SET nom=".$POST['nom_membre']." WHERE id='$id'";
  10. // DECONNEXION MYSQL  
  11. mysql_close($db_link);
  12. ?>


 
et j'ai une erreur que voici... de plus, l'enregistrement n'est pas effectué dans la base.

Code :
  1. Parse error: parse error, unexpected '=' in d:\nicolas\siteweb\160\upload.php on line 9




 
dejà j'appelerai pas le fichier upload.php mais plutot update (l'upload ça a rien à voir  :) )
 
sinon le problème c'est la clause where. Pour les champs numériques il ne faut pas mettre de guillement ou de quote autour de la valeur (par exemple id=5 et non pas id='5' ou id="5" )
 
sinon comment récupères-tu l'id ?

Reply

Marsh Posté le 07-07-2003 à 21:13:36    

ratibus a écrit :


 
dejà j'appelerai pas le fichier upload.php mais plutot update (l'upload ça a rien à voir  :) )
 
sinon le problème c'est la clause where. Pour les champs numériques il ne faut pas mettre de guillement ou de quote autour de la valeur (par exemple id=5 et non pas id='5' ou id="5" )
 
sinon comment récupères-tu l'id ?


 
ouais bon je sais la différence mais je l'ai mis comme ça mais ça change pas grand chose lol

Reply

Marsh Posté le 07-07-2003 à 21:14:58    

en fait, quand le user se connecte, il crée un id alternatif composé de chiffres et de lettres, qui va être repris dans chaque url pour accéder au fichier sécurisé. Donc l'id est créé alternativement...
 
 

Reply

Marsh Posté le 07-07-2003 à 21:19:50    

un identifiant de session en gros
 
la clé primaire de ta table membre c koi ?

Reply

Marsh Posté le 07-07-2003 à 21:38:17    

ratibus a écrit :

un identifiant de session en gros
 
la clé primaire de ta table membre c koi ?


 
dis, tu aurais pas msn par hasard ? ça serait un poil plus simple
 
EDIT : pas de clé primaire active


Message édité par neojack le 07-07-2003 à 21:38:46
Reply

Marsh Posté le 07-07-2003 à 21:57:39    

check tes MP

Reply

Marsh Posté le 07-07-2003 à 23:04:06    

Neojack a écrit :


// upload dans la bd
mysql_query="UPDATE member SET nom=".$POST['nom_membre']." WHERE id='$id'";


Tu devrais avoir des ' autour de la valeur de nom car c'est un type varchar ...
Dans le style:

Code :
  1. mysql_query="UPDATE member SET nom='".$POST['nom_membre']."' WHERE id='$id'";


Reply

Marsh Posté le 08-07-2003 à 09:16:03    

bon avec l'aide de ratibus, ça marche plus ou moins, par contre, si j'ai completé le profil, et que je veux venir le remodifier, la valeur modifiée dedans ne se change pas dans la base de données... vous avez une idée ? devrais créer un bouton delete pour chaque champ de formulaire, ce qui me paraît dommage ou alors est-il possible d'insérer un code qui ferait une UPDATE complet... car là j'utilise bien la fonction UPDATE, mais comme dit plus haut, si j'ai déjà une value , l'update ne se fait pas ...
 
Merci encore à tous

Reply

Marsh Posté le 08-07-2003 à 09:21:55    

t'as gardé l'update que je t'ai fait ?
si oui, il ne change pour l'instant que le nom
 
pour changer plusieurs champs en meme temps  :
http://www.phpdebutant.com/article64.php


Message édité par ratibus le 08-07-2003 à 09:22:48
Reply

Marsh Posté le 08-07-2003 à 09:24:29    

voilà problème réglé...
 
 :jap:  
 
tiens au fait ratibus, tu vois quand je viens de me logger, puis quand je vais dans la page de profil j'ai ce message d'erreur en haut de la page ...  
 

Code :
  1. Warning: Cannot add header information - headers already sent by (output started at d:\nicolas\siteweb\160\profil.php:3) in d:\nicolas\siteweb\160\modprofil.php on line 17


Message édité par neojack le 08-07-2003 à 09:24:46
Reply

Marsh Posté le 08-07-2003 à 09:28:16    

des gens t'ont déjà repondu la, c'est toujours la même chose:
http://forum.hardware.fr/forum2.ph [...] h=&subcat=

Reply

Marsh Posté le 08-07-2003 à 09:32:27    

Anapajari a écrit :

des gens t'ont déjà repondu la, c'est toujours la même chose:
http://forum.hardware.fr/forum2.ph [...] h=&subcat=


 
ben oui ben pourtant dans le code j'ai ça comme ça :
 
<?php include .... ?>
<html>
 
et ça change rien ...

Reply

Marsh Posté le 08-07-2003 à 09:34:32    

ratibus dis, si je me relogge, les données ne restent pas dans la base, elles sont remises à zéro  :pt1cable:
 
sauf le pseudo et le pass qui sont crée par moi


Message édité par neojack le 08-07-2003 à 09:34:48
Reply

Marsh Posté le 08-07-2003 à 09:53:51    

check tes MP

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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