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é] Pb de transfert de données de pages en pages


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut [Sécurité] Pb de transfert de données de pages en pages
    Bonsoir tout le monde!!

    alors un léger souci, je suis en train de créer un formulaire sur plusieures pages voici le schéma :


    Index.php-->Login.php-->Form1.php --> traitement1.php -->Form2.php --> traitement2.php --> Form3.php --> traitement3.php --> Merci.php

    j'ai un problème pour transmetre de page en page le "username"... j'arrive a le transmettre juska traitement 1 mais plus apres..

    voici le code que de la page traitement1.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <? 
    /* Include Files *********************/
    session_start();
    include("database.php");
    $user=$_POST['user'];
    $civ = $_POST["CIV"];
    $nom = $_POST["nom"];
    $prenom = $_POST["prenom"];
    $date = $_POST["date"];
    $email = $_POST["email"];
    $pro = $_POST["PRO"];
    $ent = $_POST["ENT"];
    $on1 = $_POST["ON1"];
    $pay = $_POST["PAY"];
    $opt = $_POST["OPT"];
    $dip = $_POST["DIP"];
    $dipl = $_POST["dipl"];
    echo "username = ".$_POST['user']."<br />";
    /*************************************/
    ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="refresh" content="10;URL=Form2.php" >
    </head>
    <body>
    <?
    if (isset($_POST['user']))
    {
        $user=$_POST['user'];
     
       } 
       else {
         var_dump($_POST);
         die('Erreur à la soumission du formulaire');
     
    }
    function transfer1($user,$civ,$nom,$prenom,$date,$email,$pro,$ent,$on1,$pay,$opt,$dip,$dipl){
       global $conn;
       $q = "UPDATE utilisateur SET civ='".$civ."', nom='".$nom."', prenom='".$prenom."', date='".$date."', email='".$email."', pro = '".$pro."', ent= '".$ent."', on1 = '".$on1."', pay = '".$pay."', opt = '".$opt."', dip= '".$dip."', dipl = '".$dipl."' WHERE user='".$user."' ";
       echo $q;
       return mysql_query($q,$conn) or die(mysql_error($conn));
    }
     
    transfer1($user,$civ,$nom,$prenom,$date,$email,$pro,$ent,$on1,$pay,$opt,$dip,$dipl);
    ?> 
    <form name="form1" method="post" action="">
      <input type="hidden" name="hiddenField" value="<? echo $username;?>">
    </form>
    <p align="center"><strong>TRAITEMENT DES DONNEES EN COURS....</strong></p>
    </body>
    </html>
    Help!!!

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    dans ton type="hidden", tu fais bien un echo de ton $username

    et il est défini ou et quand, ce $username ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    oui j'ai oublié de déclarer..donc je l'ai bien fait cette fois ci
    mais je me dis le 'hiddenfield' n'est pas posté car je ne presse aucun bouton pour valider le formulaire..
    je ne fais qu'une redirection..est ce que je dois mettre ce qu'il ya dans traitement1.php directement dans form2.php

  4. #4
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    En fait, je crois que ta variable est $user et non $username

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    Citation Envoyé par sagitarium
    mais je me dis le 'hiddenfield' n'est pas posté car je ne presse aucun bouton pour valider le formulaire..
    il ne sera effectivement pas posté

    Citation Envoyé par sagitarium
    je ne fais qu'une redirection..est ce que je dois mettre ce qu'il ya dans traitement1.php directement dans form2.php
    c'est à mon avis la meilleure solution :
    • primo, tu as une page en moins, et donc un appel de page en moins.
    • secundo, ta redirection ne se fait qu'au bout de 10 secondes, pendant lesquelles ton client attend pour rien, et cela l'incite à aller voir ailleurs
    • tertio, si tu mets un bouton, tu demandes à ton client de cliquer sur un bouton qui pour lui ne sert à rien.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    maintenant j'ai une erreur du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur de syntaxe près de 'organisme :', te12='Coût :',te13='Durée :',te14='Appréciation :'' à la ligne 1
    quand je lance la requtes suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function transfer2($user,$Q21,$com,$Q22e1,$Q22e2,$Q22e3,$Q23e1,$Q23e2,$Q23e3,$Q24e1,$Q24e2,$Q24e3,$Q25e1,$Q25e2,$Q25e3,$RAI1,$RAI2,$RAI3,$Q26e1,$Q26e2,$Q26e3,$Q27e1,$Q27e2,$Q27e3,$Q28e1,$Q28e2,$Q28e3,$Q29e1,$Q29e2,$Q29e3,$Q210e1,$Q210e2,$Q210e3,$Q211e1,$Q211e2,$Q211e3,$Q212e1,$Q212e2,$Q212e3,$CA1,$CA2,$CA3,$Q213e1,$Q213e2,$Q213e3,$te11,$te12,$te13,$te14,$te21,$te22,$te23,$te24,$te31,$te32,$te33,$te34){
       global $conn;
    $q = "UPDATE utilisateur SET Q21='".$Q21."', com='".$com."', Q22e1='".$Q22e1."', Q22e2='".$Q22e2."',Q22e3='".$Q22e3."',Q23e1='".$Q23e1."',Q23e2='".$Q23e2."',Q23e3='".$Q23e3."',Q24e1='".$Q24e1."',Q24e2='".$Q24e2."',Q24e3='".$Q24e3."',Q25e1='".$Q25e1."',Q25e2='".$Q25e2."',Q25e3='".$Q25e3."',RAI1='".$RAI1."',RAI2='".$RAI2."',RAI3='".$RAI3."',Q26e1='".$Q26e1."',Q26e2='".$Q26e2."',Q26e3='".$Q26e3."',Q27e1='".$Q27e1."',Q27e32='".$Q27e2."',Q27e3='".$Q27e3."',Q28e1='".$Q28e1."',Q28e2='".$Q28e2."',Q28e3='".$Q28e3."',DEP1='".$DEP1."',DEP2='".$DEP2."',DEP3='".$DEP3."',PAY1='".$PAY1."',PAY2='".$PAY2."',PAY3='".$PAY3."',Q29e1='".$Q29e1."',Q29e2='".$Q29e2."',Q29e3='".$Q29e3."',Q210e1='".$Q210e1."',Q210e2='".$Q210e2."',Q210e3='".$Q210e3."',Q211e1='".$Q211e1."',Q211e2='".$Q211e2."',Q211e3='".$Q211e3."',Q212e1='".$Q212e1."',Q212e2='".$Q212e2."',Q212e3='".$Q212e3."',CA1='".$CA1."',CA2='".$CA2."',CA3='".$CA3."',Q213e1='".$Q213e1."',Q213e2='".$Q213e2."',Q213e3='".$Q213e3."', te11='".$te11."', te12='".$te12."',te13='".$te13."',te14='".$te14."',te21='".$te21."',te22='".$te22."',te23='".$te23."',te24='".$te24."',te31='".$te31."',te32='".$te32."',te33='".$te33."',te34='".$te34."' WHERE user='".$user."' ";
       return mysql_query($q,$conn) or die(mysql_error($conn));
    }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    quand je lance la requete dans le SGBD easyphp tout fonctionne a merveille...

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    elle n'est pas un peu longue ta ligne ? je ne sais pas s'il y a une limite ou non, mais bon j'aurais fait plus court

    quitte à faire une concaténation sur plusieurs lignes

    et surtout je me serais débrouillé pour faire une boucle for. peut-être plusieurs en fonction du nom de tes champs

    es-tu sûr que c'est bien cette ligne qui est la source de l'erreur ? mets y juste un seul SET pour voir ...

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    alors la l'erreur a disparu..
    c'était peut etre le nombre de set..
    comment on fait la concaténation..?c'est en utilisant les .points. ...?

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    si, avec des points
    tu peux faire (il y a d'autre possibilités ou syntaxes !)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $q = "UPDATE tralala";
    $q = $q . 'SET blabla';
    $q = $q . 'suite';
    si tu insères la totalité des champs de ta table, tu peux faire quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ajout = "INSERT INTO conjoints VALUES ('" .$conjoint[0] ."'";
    for ($i = 1; $i < $champs; $i++) $ajout = $ajout .", '" .$conjoint[$i]. "'";
    $ajout = $ajout .")";
    Il y a deux avantages : ton code est plus court, et tu ne dois pas faire un SET individuel pour chaque champ. Il y a un bon tutoriel sur ce site pour te montrer les différentes possibilités

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    merci bien je v opter pour la premiere methode..enfin la dodo jai plus trop les yeux en face des trous!!

    bonne soirée!

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut Parse error
    Est ce que quelqu'un pourrait vérifier cette syntaxe svp..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $q = "UPDATE utilisateur";
    $q = $q.'SET Q21='".$Q21."', com='".$com."', Q22e1='".$Q22e1."', Q22e2='".$Q22e2."',Q22e3='".$Q22e3."',Q23e1='".$Q23e1."',Q23e2='".$Q23e2."',Q23e3='".$Q23e3."',Q24e1='".$Q24e1."',Q24e2='".$Q24e2."',Q24e3='".$Q24e3."',Q25e1='".$Q25e1."',Q25e2='".$Q25e2."',Q25e3='".$Q25e3."',RAI1='".$RAI1."',RAI2='".$RAI2."',RAI3='".$RAI3."',Q26e1='".$Q26e1."',Q26e2='".$Q26e2."',Q26e3='".$Q26e3."',Q27e1='".$Q27e1."',Q27e2='".$Q27e2."',Q27e3='".$Q27e3."'';
    $q = $q.'Q28e1='".$Q28e1."',Q28e2='".$Q28e2."',Q28e3='".$Q28e3."',DEP1='".$DEP1."',DEP2='".$DEP2."',DEP3='".$DEP3."',PAY1='".$PAY1."',PAY2='".$PAY2."',PAY3='".$PAY3."',Q29e1='".$Q29e1."',Q29e2='".$Q29e2."',Q29e3='".$Q29e3."',Q210e1='".$Q210e1."',Q210e2='".$Q210e2."',Q210e3='".$Q210e3."',Q211e1='".$Q211e1."',Q211e2='".$Q211e2."',Q211e3='".$Q211e3."',Q212e1='".$Q212e1."',Q212e2='".$Q212e2."',Q212e3='".$Q212e3."',CA1='".$CA1."',CA2='".$CA2."',CA3='".$CA3."',Q213e1='".$Q213e1."',Q213e2='".$Q213e2."',Q213e3='".$Q213e3."', te11='".$te11."', te12='".$te12."',te13='".$te13."',te14='".$te14."',te21='".$te21."',te22='".$te22."',te23='".$te23."',te24='".$te24."',te31='".$te31."',te32='".$te32."',te33='".$te33."',te34='".$te34."' WHERE user='".$user."'';
    j'ai une erreur du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    Parse error:  parse error in c:\program files\easyphp1-8\www\questionnaire\form3.php on line 53

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    Re!!! Je galère trop!! je n'arrive pas à trouver l'erreur..je suis la dessus depuis ce matin..J'ai tout concaténé mais ca ne marche tjrs pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function transfer2($user,$Q21,$com,$Q22e1,$Q22e2,$Q22e3,$Q23e1,$Q23e2,$Q23e3,$Q24e1,$Q24e2,$Q24e3,$Q25e1,$Q25e2,$Q25e3,$RAI1,$RAI2,$RAI3,$Q26e1,$Q26e2,$Q26e3,$Q27e1,$Q27e2,$Q27e3,$Q28e1,$Q28e2,$Q28e3,$Q29e1,$Q29e2,$Q29e3,$Q210e1,$Q210e2,$Q210e3,$Q211e1,$Q211e2,$Q211e3,$Q212e1,$Q212e2,$Q212e3,$CA1,$CA2,$CA3,$Q213e1,$Q213e2,$Q213e3,$te11,$te12,$te13,$te14,$te21,$te22,$te23,$te24,$te31,$te32,$te33,$te34){
       global $conn;
     
    $q= "UPDATE utilisateur";
    $q=  $q." SET Q21='".$Q21."', com='".$com."', Q22e1='".$Q22e1."', Q22e2='".$Q22e2."',Q22e3='".$Q22e3."',Q23e1='".$Q23e1."',Q23e2='".$Q23e2."',Q23e3='".$Q23e3."',Q24e1='".$Q24e1."',Q24e2='".$Q24e2."',Q24e3='".$Q24e3."',Q25e1='".$Q25e1."',Q25e2='".$Q25e2."',Q25e3='".$Q25e3."'";
    $q=  $q.",RAI1='".$RAI1."',RAI2='".$RAI2."',RAI3='".$RAI3."',Q26e1='".$Q26e1."',Q26e2='".$Q26e2."',Q26e3='".$Q26e3."',Q27e1='".$Q27e1."',Q27e2='".$Q27e2."',Q27e3='".$Q27e3."',Q28e1='".$Q28e1."',Q28e2='".$Q28e2."',Q28e3='".$Q28e3."',DEP1='".$DEP1."',DEP2='".$DEP2."',DEP3='".$DEP3."',PAY1='".$PAY1."',PAY2='".$PAY2."',PAY3='".$PAY3."'";
    $q=  $q." ,Q29e1='".$Q29e1."',Q29e2='".$Q29e2."',Q29e3='".$Q29e3."',Q210e1='".$Q210e1."',Q210e2='".$Q210e2."',Q210e3='".$Q210e3."',Q211e1='".$Q211e1."',Q211e2='".$Q211e2."',Q211e3='".$Q211e3."',Q212e1='".$Q212e1."',Q212e2='".$Q212e2."',Q212e3='".$Q212e3."',CA1='".$CA1."'";
    $q=  $q." ,CA2='".$CA2."',CA3='".$CA3."',Q213e1='".$Q213e1."',Q213e2='".$Q213e2."',Q213e3='".$Q213e3."', te11='".$te11."', te12='".$te12."',te13='".$te13."',te14='".$te14."',te21='".$te21."',te22='".$te22."',te23='".$te23."',te24='".$te24."',te31='".$te31."',te32='".$te32."',te33='".$te33."',te34='".$te34."' WHERE user='".$user."'";
       return mysql_query($q,$conn) or die(mysql_error($conn));
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur de syntaxe près de 'organisme :', te12='Coût :',te13='Durée :',te14='Appréciation :'' à la ligne 1

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    puisque tu as avancé je suppose que tu as trouvé ton parse error

    si tu as toujours ton erreur de syntaxe, refais ce que je t'ai proposé avant : raccourcis la partie SET de ton code pour voir si l'instruction n'est pas trop longue

    et si c'est le cas fais quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $q = "REPLACE INTO utilisateur VALUES ('" .$Q21 ."','" .$com ."','" .etc ."')";
    Il faut que le nombre de values soit égal au nombre de champs dans ta table pour que cela fonctionne, mais je pense que c'est le cas chez toi ...

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    en fait j'a i trpuvé l'erreur c'était une chaîne caractère contenant un apostrophe..et comme je n'avais pas mis le "addlashes" ca a provoquer un erreur...

    morale tjrs mettre addslashes() lorsqu'il s'agit d'un champ de texte!!!


    Merci kan même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [newbie] Transfert de données multibases
    Par Thierryx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/07/2005, 09h35
  2. [C#] [Excel] Transfert de données
    Par bartoumi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/04/2005, 14h08
  3. Transfert de données securisées via Internet ???
    Par franck06 dans le forum Développement
    Réponses: 3
    Dernier message: 22/11/2004, 17h16
  4. [Designer] Problème de transfert de données entre modul
    Par BILLYPATOU dans le forum Designer
    Réponses: 11
    Dernier message: 09/03/2004, 18h15
  5. Transfert de données vers My SQL
    Par zoso dans le forum Outils
    Réponses: 2
    Dernier message: 30/09/2003, 10h21

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