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 :

[Sécurité] Perte de variables de session dans formulaire


Sujet :

Langage PHP

  1. #21
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    alors la requête fonctionne?!
    vérifie dans ta bdd que les champs nom et prénoms sont vides ou pas!
    si ça te donne le reste des infos c'est que ces 2 champs là sont vides!
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  2. #22
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    oui ils sont vides !
    alors j'ai essayé cette manip: je les modifie depuis la base...
    Donc mon espace membre est complet...et si je clique sur modifier
    Paf !
    Le prénom et le nom disparaissent !
    Chuis sure que tu n'as jamais vu ça

  3. #23
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    bizarre!!!
    es-tu sûr qu'ils ne sont pas vides au départ?
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  4. #24
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    ecoute....je viens de supprimer tout simplement l'enregistrement dans la base de données, je me suis réinscrite....et là :
    tout fonctionne !!!!!!

    Merci de t'être penchée sur le sujet...qui tient de la troisième dimension, non ??? c'est dingue ça quand meme !

  5. #25
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    en fait mon bidule n'est pas résolu du tout !!!
    Car maintenant si je veux modifier le prénom : mettre tartentpion à la place de trucmuche, il me remet tartenpion !!! c'est bloqué !

  6. #26
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    heu pour mettre de nouvelles valeurs tu dois récupérer celles envoyées via le formulaire! hors dans ta requête update tu utilises ce qui a été sélectionné de la bdd !!
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  7. #27
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par allyson
    heu je crois que tu devrais faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $updateMembres = "UPDATE membres SET login='".$_SESSION['login']."', nom='".$_SESSION['nom']."', prenom='".$_SESSION['prenom']."', pass='".$_SESSION['pass']."', pass2='".$_SESSION['pass2']."', adresse='".$_SESSION['adresse']."', code_postal='".$_SESSION['code_postal']."', ville='".$_SESSION['ville']."', email='".$_SESSION['email']."', tel='".$_SESSION['tel']."', naissance='".$_SESSION['naissance']."'";
    $updateMembres .= "WHERE login='".$_SESSION['login']."'";
    Mais qu'est ce qui explique quand même que je peux faire des modifs sur les autres champs....enlever ou ajouter une date de naissance par exemple???
    donc je dois reprendre ce que tu m'avais suggéré ?
    C'est ça ?
    Peux tu me donner un exemple sinon ?
    Merci

  8. #28
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    je crois avoir compris !
    enfin....
    A l'issue de l'UPDATE....
    Je fais un header....donc je perdais les infos de session...
    J'ai corrigé en mettant ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //---Mise à jour dans la base
    mysql_select_db($database, $connexion);
    $updateMembres = "UPDATE membres SET login='".$_POST['login']."', nom='".$_POST['nom']."', prenom='".$_POST['prenom']."', pass='".$_POST['pass']."', pass2='".$_POST['pass2']."', adresse='".$_POST['adresse']."', code_postal='".$_POST['code_postal']."', ville='".$_POST['ville']."', email='".$_POST['email']."', tel='".$_POST['tel']."', naissance='".$_POST['naissance']."'";
    $updateMembres .= "WHERE login='$login'";
    mysql_query($updateMembres, $connexion) or die(mysql_error()); 
    header("Location: moncompte.php");
    }
    ?>
    tu en penses quoi ?
    Je me pose la question de la sécurité !!!!!
    Il faut mettre quoi devant les $_POST pour empecher un éventuel piratage.... :

  9. #29
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    bonjour,
    je crois que c'est plus correcte comme celà!
    pour ce qui est de la sécurité tu as déjà une première protection (la concaténation: prenom='".$_POST['prenom']."') elle permet d'éviter les sql injections!
    mais il te faut plus et ce petit plus c'est mysql_real_escape_string() (clique sur le lien )
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  10. #30
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    merci !
    Oui c'est ce que j'avais mis dans ma page valid.php, et j'ai du le supprimer
    car :
    Fatal error: Call to undefined function: mysql_real_escape_string() in /opt/vhost/xxxxxxxxxx/xxxx/xxxxx/includes/valid.php on line 14"
    Je crois que chez cet hébergeur, la version php es trop ancienne, c'est ça ?
    Pour l'instant, il s'agit d'un espace TEST....donc je le ferais apres.
    La syntaxe est bien la suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST) && !empty($_POST['login']) &&!empty($_POST['pass2'])) { // premier test à faire, est-ce qu'un login est passé ? si non, pas la peine de faire d'autre controle, on passe direct à la fin  
      $login=trim(htmlentities(addslashes($_POST['login'])));
      $pass=trim(htmlentities(addslashes($_POST['pass2']))); // on stock dans $login pour simplifier l'écritude et la lisibilité 
      mysql_connect($dbhost,$dblogin,$dbpassword); 
      mysql_selectdb($dbname); 
      $result=mysql_query("SELECT nom, prenom FROM membres WHERE login='$login' AND pass2='$pass'",
      	mysql_real_escape_string($login),
    	mysql_real_escape_string($pass));

  11. #31
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result=mysql_query("SELECT nom, prenom FROM membres WHERE login='".mysql_real_escape_string($login)."' AND pass2='".mysql_real_escape_string($pass)."'");
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

  12. #32
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 22
    Points : 5
    Points
    5
    Par défaut
    merci Alysson,
    c'est ce que j'avais fait précédemment, mais je viens de faire une vérif par phpinfo, et je m'aperçois que je suis en PHP4.1.2 et que donc
    mysql_escape_string est activé mais pas l'autre.
    il faut que je me renseigne aussi sur le magic quotes....!
    Merci en tous cas de ton aide !

  13. #33
    Membre actif Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Points : 277
    Points
    277
    Par défaut
    je t'en prie
    très bon courage
    .: and Justice for all :.
    ------------------------------------------------------------
    Membre du jury de l'élection de Mister DVP.com
    les règles du forum
    de penser au tag

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Perte de variables de session + projets
    Par papawemba dans le forum C#
    Réponses: 2
    Dernier message: 19/06/2007, 17h55
  2. Réponses: 5
    Dernier message: 01/05/2007, 14h22
  3. Bloquer page précédente car perte de variable de session
    Par phoenix3011 dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2006, 17h39
  4. Perte des variables de sessions
    Par Dayom dans le forum Langage
    Réponses: 12
    Dernier message: 17/07/2006, 11h04
  5. Réponses: 11
    Dernier message: 11/05/2006, 10h09

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