IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire de modification


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Bonjour à tous,

    j'ai fais un formulaire d'inscription pour des personnes, où il indique le nom, prénom, etc...et j'aimerias faire un formulaire de modification.

    Où ils pourraient modifier leurs informations.

    J'ai la requete (update) mais je ne sais pas comment récuperer les valeurs dans les input?



    Bonne soirée.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as écris le formulaire pour la modification ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Ben je pensais reprendre le même que pour l'inscription....puis ce que c'est les mêmes champs....

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il y a un bon millier de discussions, exemples ou scripts sur ce sujet basique...

    Fais des recherches !

    + Réfléchis* !


    *Vas au bout de ta réflexion, avec LOGIQUE.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Oui mais je suis un peu pris par le temps....et j'ai un autre soucis c'est que je suis sur un espace privée et je n'arrive pas à voir comment je pourrais récuperer le pseudo sans passer par l'url??

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Un principe.

    Si tu es en mode création tu initialises les variables php qui seront dans le formulaire (exemple : $nom = ""; )
    Si tu es en mode modification lu lis la table avec l'identifiant passé en paramètre et tu remplis les variables php qui seront dans le formulaire (exemple : $nom = valeur prise dans la table; )

    Dans le formulaire tu fais <input type="text" name="nom" value="<?php print $nom; ?>" />
    Ne pas oublier de sauvegarder l'identifiant pour pouvoir faire la mise à jour.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu es sur la bonne piste : c'est le même formulaire, avec les champs pré-remplis

    Quant au pseudo... on utilisera plutôt l'id_user (auto-incrementé, donc UNIQUE).

    pseudo et id peuvent être enregistrés dans des variables de SESSION.
    auquel cas, il est plus utile de les "transmettre".

    On utilisera dans la requête préparée :
    • "UPDATE ........... WHERE id_user = :id"
    • en reliant ':id' à $_SESSION['id_user'].
    Dernière modification par Invité ; 28/04/2017 à 08h54.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    pour les champs (input ) c'est bon j'ai réussi à les remplir. Par contre j'ai deux champs les mots de passe, comment j edois faire pour récuperer le mot de passe en clair?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Pour une fois, on va VRAIMENT parler de SECURITE :

    ON N'AFFICHE JAMAIS les mots de passe en CLAIR !!!
    D'ailleurs, on doit les enregistrer cryptés en Bdd -> password_hash().

    REFLECHIS :
    si l'utilisateur est là, c'est qu'il s'est CONNECTE. Donc, il connait son mot de passe !

    Dans un formulaire de modification, pour "modifier le mot de passe" *, on demande :
    • 1/ de redonner le mot de passe actuel (celui avec lequel il s'est connecté !)
    • 2/ de donner un nouveau mot de passe
    • 3/ de confirmer le nouveau mot de passe

    Pour le coup, le formulaire de modification est différent du formulaire d'inscription !

    après, c'est au moment du traitement PHP qu'on vérifie si le "mot de passe actuel" est correct.


    DE MEME avec "J'ai oublié mon mot de passe" :
    • on NE renvoie PAS le mot de passe "actuel" ! (vu qu'il est crypté en Bdd, on ne peut de toute façon pas le faire !)
    • on demande l'email
    • -> on vérifie qu'il est bien en Bdd (et unique ** !)
    • -> on crée un nouveau mot de passe, qu'on enregistre cryptés en Bdd, mais qu'on envoie (en clair) à l'email fourni.


    A charge ensuite à la personne d'aller le modifier dans son espace privé

    * Généralement, on séparera en 2 formulaires : un pour "Modifier votre Profil", l'autre pour "Modifier vos paramètres de connexion"
    ** Généralement, on vérifie à l'inscription que l'email n'est pas déjà enregistré.
    Dernière modification par Invité ; 28/04/2017 à 10h02.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Ah enfin la sécurité!!!!!

    Pourles mots de passe c'est bon ils sont affichés en cryptés dans ma base.

    Mais en fait je vais donner les mots de passe pour la premiére connexion puis après j'aimerais qu'il modifie le mot de passe en allant sur l'espace.

    Et comment tu le récupère en clair pour le mettre dans l'email?

  11. #11
    Invité
    Invité(e)
    Par défaut
    On ne le "récupère" pas :

    • on le crée au moment d'envoyer l'email
    • $pwd_clair -> qu'on indique dans l'email
    • $pwd_crypt -> qu'on enregistre en Bdd

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    J'ai un message d'erreur lorsque je tentes une modification

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

  13. #13
    Invité
    Invité(e)
    Par défaut
    C'est ballot...

  14. #14
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    voici ma requete SQL:

    update matable set ("", "MySQL_escape_string(htmlspecialchars($_POST ['champ1']))", "MySQL_escape_string(htmlspecialchars($_POST ['champ2']))", ","MySQL_escape_string(htmlspecialchars($_POST ['champ3']))", ")

    ça vous paraît bien?

  15. #15
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Ce n'est pas du tout la syntaxe.

    update <table> set champ1 = valeur, champ2 = valeur where champ3 = valeur

    S'il s'agit de champs alphanumériques il faut mettre la valeur entre '. exemple champ4 = 'coucou'

    De plus je te conseille de ne mettre que des noms de variables.

    "update ma_table set champ1='$variable' where id = $mon_id"

    et de remplir les variables avant car c'est beaucoup plus lisible.

    $variable = MySQL_escape_string(htmlspecialchars($_POST ['champ1']));

    Mais le plus grand conseil que je puisse donner c'est de regarder la documentation.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le vrai conseil c'est surtout de ne pas utiliser mysql_ mais d'utiliser PDO et de ne pas utiliser ne pas utiliser htmlspecialchars() lors de l'insertion.

    Si tu es obligé d'utiliser mysql_, il faut au moins utiliser mysql_real_escape_string et pas MySQL_escape_string
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Pour mon formulaire quand je mets les valeurs en dures dans la requete ça marche et quand je mets des $variable cela ne fonctionne plus....

  18. #18
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    N'ayant pas de boule de cristal à côté de moi, pourrais-tu poster le code ?
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  19. #19
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Formulaire de modification
    Il y a un truc que je comprends pas pour visualiser dans ma page le contenu des champs à modifier je fais la premiere input.

    Mais pour pouvoir récupérer les données je fais la seconde input

    Comment je dois faire mon formulaire de modification pour pouvoir visualiser et après modifier?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <input id="type" type="text" name="id" size="15" value="<?php echo $data1['id']; ?>"/>
     
    	<input id="type" type="text" name="id" size="15" value="<? echo $_POST['id'];?>"/>

  20. #20
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Pour réafficher les données enregistrées, il faut les prendre dans la base de données. Regarde mon premier message dans cette discussion.
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

Discussions similaires

  1. formulaire de modification
    Par VIRGINIE87 dans le forum IHM
    Réponses: 7
    Dernier message: 24/01/2007, 10h04
  2. rafraichissement formulaire suite modif sous-form
    Par pontoise dans le forum IHM
    Réponses: 5
    Dernier message: 24/11/2006, 23h46
  3. Réponses: 14
    Dernier message: 19/10/2006, 14h23
  4. Formulaire et modifications
    Par climz dans le forum IHM
    Réponses: 7
    Dernier message: 24/05/2006, 08h19
  5. problème sur un formulaire de modification
    Par puppusse79 dans le forum Access
    Réponses: 13
    Dernier message: 14/04/2006, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo