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 :

cacher info envoyées


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut cacher info envoyées
    Bonjour à tous,
    bon, mon problème n'est pas simple et en plus, je ne vais pas pouvoir mettre beaucoup de code sachant que mon programme tient sur plusieurs fichiers et répertoires.
    en gros, voilà ce qu'il fait (exemple à 2 balles):
    Pour l'instant : x demande au service y un balai. Le service y prends en charge la demande, la traite, informe x qui note la prestation. Durant tout ce temps, le service de x peut voir la demande et où cela en est.
    Tout ça marche très bien.
    Ce que je veux : bin la même chose sauf que le service de x ne doit pas voir sa demande car cela sera des données confidentielles.
    là où c'est compliqué, c'est que tout se fait sur une interface commune pour les utilisateurs du service de x.
    je sais pas si je me suis bien fait comprendre.
    en tout cas, merci pour l'aide apportée

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    en quoi c'est compliqué?

    il suffit de rajouter un étage qui filtre les données confidentielles avant affichage. Enlever de l'information n'a jamais été compliqué.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    donc, en visu actuellement (sur d'autres programmes similaires, là c'est une option qui m'est demandé):
    x à demander à y
    z à demander à y
    w à demander à y
    sur la même page.

    je filtre avec quelle commande pour que x voit que la sienne et non pas les autres ? et pareil pour les autres.
    J'ai du mal à voir comment ça marche les données "cachées" pour les uns et visible pour x ou y, le tout sur la même page.
    merci encore

  4. #4
    Membre régulier Avatar de daheda
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 81
    Points : 109
    Points
    109
    Par défaut
    Bonjour,
    Serait-il pas mieux d'utiliser les sessions pour les filtres... ?
    x a sa propre session y aussi et ainsi de suite..

    Bon dev

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    tout à fait d'accord sur le fond. Pour l'instant, ils ont ce genre de méthode mais... par service (session ouverte via une carte et je récupère via un jeton le nom pour avoir son accès sécurisé).
    je pense que je vais creuser plus de ce coté même si ça doit me donner plus de boulot.

    Edit :
    j'ai ce petit bout de code qui pourrait vous aider à m'aider
    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
     
    <?php
     
        $requete="SELECT chrono FROM teleagent WHERE agentid=$agent";
        ($donnee_agent=mysql_fetch_object(mysql_db_query(BASE,$requete))) || erreur(3);
     
        $id_agt=$donnee_agent->chrono;
        $requete="SELECT num_agt, nom_agt, pren_agt, serv_agt FROM agents WHERE num_agt=$id_agt";
        ($donnee_complete_agent=mysql_fetch_object(mysql_db_query(BASE2,$requete))) || erreur(3);
     
    	$req_serv_agt="SELECT nom_serv FROM services WHERE cop_serv=$donnee_complete_agent->serv_agt";
           $resultat = mysql_db_query(BASE2,$req_serv_agt);
           $result_lib_serv=mysql_fetch_object($resultat);
     
        echo "<table border=0 width=100% cellpadding=8 cellspacing=0>";
        echo "<tr><td class='titre' colspan=2>Liste des demandes de maintenances en cours pour le service $result_lib_serv->nom_serv</td>";
        echo "</tr></table></form><br>";
    ?>
    d'après vous, comment dois-je mettre la condition : Si ce n'est pas toi l'agent demandeur, alors on n'affiche rien ? sinon, on voit ta demande.
    Merci d'avance.

    num_agt : on fonctionne par numéro (je ne suis pas un N°)
    cop_serv : numéro du service

    Edit : Re à tous,
    en fait, je touche le fond, je vois pas le jour sur ce programme (vu que je débute en php en plus...).
    y'a pas quelqu'un qui aurait pitié ?
    Merci d'avance

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Bonjour à tous,
    Bon, je voudrais vous poser une question qui pourrais vous sembler déprimante
    j'ai le code suivant qui me permet de m'identifier suivant le service ("grh_usr" - faites pas attention aux autres).
    donc, si je suis inscrit, je vois toutes les demandes de tout ceux qui sont inscrit à ce service. Comme vous pouvait le voir dans mes posts précédents, je cherche à faire en sorte que je sois le seul à voir mes demandes et ainsi de suite pour mes collègues. Pourquoi ne pas inscrire les autres sous un nom personnel ???...car on est 250 et puis le code serait pas terrible.
    vu que php est nouveau pour moi et que j'adapte un programme existant, quelle ligne faudrait il que je modifie pour avoir mon nom d'ouverture de session windows (qui est propre à chacun) plutôt qu'un nom de service commun ? je sais que je vous en demande beaucoup, en plus vous n'avez pas tout les fichiers.
    Merci d'avance

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    <?php
        require "include/param.php";
        require "include/func.php";
     
        	// pour le nom !
        	if ($nom2 != "")
        	{
        	    $nom = $nom1.$nom2;
    	}
         	else
         	{
         	    $nom = $nom1;
     	}
     
    	// pour le prenom
    	if ($prenom2 != "")
    	{
        	    $prenom = $prenom1.'-'.$prenom2;
    	}
         	else
         	{
         	    $prenom = $prenom1;
      	}
     
    	// pour le numéro d'agent
          	$num_agt = $num;
     
     
        (mysql_select_db(BASE,$lien=mysql_connect(HOST,USER,PASSWD))) || erreur(2);
     
       if ($service=="GRH_ADM")
        {
     
    	$requete="SELECT id FROM agent.agent WHERE chrono='".sprintf("%d",$num_agt)."' AND nom='$nom'";
    	$donnee=mysql_fetch_object(mysql_db_query(BASE,$requete));
     
    	if (empty($donnee->id))
    	{
    	    $requete="SELECT max(id)+1 maxx FROM agent.agent";
    	    ($donnee=mysql_fetch_object(mysql_db_query(BASE,$requete))) || erreur(3);
    	    $nouveau=(empty($donnee->maxx)) ? 1 : $donnee->maxx;
     
    	    $requete="INSERT INTO agent.agent VALUES($nouveau,'$nom','$prenom',".sprintf("%d",$num_agt).",'1')";
    	    (mysql_db_query(BASE,$requete)) || erreur(4);
    	    $donnee->id=$nouveau;
    	}
    	setcookie("agent",$donnee->id);
    	header("location: manager/cours.php");
    	exit;
        }
        elseif ($service=="GRH_USR")
        {
    	$requete="SELECT agentid FROM teleagent WHERE chrono='".sprintf("%d",$num_agt)."' AND nom='$nom'";
    	$donnee=mysql_fetch_object(mysql_db_query(BASE,$requete));
     
    	if (empty($donnee->agentid))
    	{
    	    $requete="SELECT max(agentid)+1 maxx FROM teleagent";
    	    ($donnee=mysql_fetch_object(mysql_db_query(BASE,$requete))) || erreur(3);
    	    $nouveau=(empty($donnee->maxx)) ? 1 : $donnee->maxx;
     
    	    $requete="INSERT INTO teleagent VALUES($nouveau,'".sprintf("%d",$num_agt)."','1','$nom','$prenom','')";
    	    (mysql_db_query(BASE,$requete)) || erreur(4);
    	    $donnee->agentid=$nouveau;
    	}
    	setcookie("agent",$donnee->agentid);
    	header("location:agt_dem/saisie.php");
        }
        elseif (substr($service,0,4)=="GRH_")
        {
    	$requete="SELECT id FROM agent.agent WHERE chrono='".sprintf("%d",$num_agt)."' AND nom='$nom'";
    	$donnee=mysql_fetch_object(mysql_db_query(BASE,$requete));
     
    	if (empty($donnee->id))
    	{
    	    $requete="SELECT max(id)+1 maxx FROM agent.agent";
    	    ($donnee=mysql_fetch_object(mysql_db_query(BASE,$requete))) || erreur(3);
    	    $nouveau=(empty($donnee->maxx)) ? 1 : $donnee->maxx;
     
    	    $requete="INSERT INTO agent.agent VALUES($nouveau,'$nom','$prenom','".sprintf("%d",$num_agt)."','1')";
    	    (mysql_db_query(BASE,$requete)) || erreur(4);
    	    $donnee->id=$nouveau;
    	}
    	setcookie("agent",$donnee->id);
    	setcookie("type",intval(substr($service,4,2))-1);
    	header("location:gest/cours.php");
        }
        elseif (ereg(",",$param[9]))
        {
    	$requete="SELECT id FROM agent.agent WHERE chrono='".sprintf("%d",substr($param[7],0,5))."' AND nom='$param[5]'";
    	$donnee=mysql_fetch_object(mysql_db_query(BASE,$requete));
     
    	if (empty($donnee->id))
    	{
    	    $requete="SELECT max(id)+1 maxx FROM agent.agent";
    	    ($donnee=mysql_fetch_object(mysql_db_query(BASE,$requete))) || erreur(3);
    	    $nouveau=(empty($donnee->maxx)) ? 1 : $donnee->maxx;
     
    	    $requete="INSERT INTO agent.agent VALUES($nouveau,'$param[5]','$param[6]','".sprintf("%d",substr($param[7],0,5))."','".substr($param[7],5,1)."')";
    	    (mysql_db_query(BASE,$requete)) || erreur(4);
    	    $donnee->id=$nouveau;
    	}
    	setcookie("agent",$donnee->id);
     
    	$tab=explode(",",$param[8]);
    	$url="gest/choix.php";
    	for($i=0;$i<count($tab);$i++) $url.=(empty($i) ? "?" : "&")."tab[$i]=".substr($tab[$i],4,2);
    	header("location:$url");
        }
        mysql_close($lien);
     
    ?>
    @+ j'espère car je désespère...et ma direction va faire pareil ;-)

    edit : ah oui, chez nous,nos ouverture de session sont de la forme : "nom_agent-numéro_agent" au cas où on puisse faire quelque chose avec "-numéro_agent" qui est unique.
    edit2 : je dis des conneries, grh_usr peut faire des demandes au service grh...pas pareil que fait partie du service grh.

    ou alors c'est peut-être ce bout de code là qu'il faut changer (je suis complètement paumé)
    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
    54
    55
     
     
     
         /*******************DEMANDES EN COURS*******************/
        echo "<tr><hr noshade width=640></tr><B><div align=center> - En cours - </div></B>";
        echo "<tr><hr noshade width=640></tr><BR>";
        $requete="SELECT num_d_rio,agt_d_rio,dat_d_rio,heur_d_rio,priorite_d_rio,reclam_d_rio,contact_d_rio,desc_d_rio,souh_d_rio,interv_d_rio";
        $requete.=" FROM dem_grh";
        $requete.=" WHERE ( etat_d_rio='NON_TRAITE' OR etat_d_rio='EN_COURS') AND (".$complete_req.")";
        $requete.=" ORDER BY dat_d_rio, heur_d_rio";
     
        ($resultat=mysql_db_query(BASE2,$requete)) || erreur(3);
     
        if (mysql_num_rows($resultat))
        {
            echo "<table align=center border=0 cellpadding=4 cellspacing=0><tr>";
    	echo "<td class='entete' align=center>Num&eacute;ro</td>";
    	echo "<td class='entete' align=center>Agent demandeur</td>";
    	echo "<td class='entete' align=center nowrap>Date/Heure de l'appel</td>";
    	echo "<td class='entete' align=center>Contact</td>";
    	echo "<td class='entete' align=center>Description</td>";
    	echo "<td class='entete' align=center>Remarque</td>";
    	echo "<td class='entete' align=center colspan=2>Type de probleme</td></tr>";
     
            while ($donnee=mysql_fetch_object($resultat))
            {
     
            $requete_bis="SELECT num_agt, nom_agt, pren_agt, serv_agt FROM agents WHERE num_agt=$donnee->agt_d_rio";
                ($donnee_complete_agent=mysql_fetch_object(mysql_db_query(BASE2,$requete_bis))) || erreur(3);
     
    	    echo "<td class='ligne",$numero%2,"' align=center>",$donnee->num_d_rio,"</td>";
    	    echo "<td class='ligne",$numero%2,"' align=center>",$donnee_complete_agent->nom_agt,"-",$donnee->agt_d_rio,"</td>";
                echo "<td class='ligne",$numero%2,"' align=center nowrap>",arrange_date($donnee->dat_d_rio)," $donnee->heur_d_rio</td>";
     
                $id_agt=$donnee->contact_d_rio;
                $requete2="SELECT num_agt, nom_agt, pren_agt, serv_agt FROM agents WHERE num_agt=$id_agt";
                ($donnee_complete_contact=mysql_fetch_object(mysql_db_query(BASE2,$requete2))) || erreur(3);
                echo "<td class='ligne",$numero%2,"' align=center nowrap>",$donnee_complete_contact->nom_agt,"-",$donnee->contact_d_rio,"</td>";
     
                $desc_reduit=substr($donnee->desc_d_rio,0,20);
                $rem_reduit=substr($donnee->souh_d_rio,0,20);
                echo "<td class='ligne",$numero%2,"' align=center nowrap>",$desc_reduit,"...</td>";
    	    echo "<td class='ligne",$numero%2,"' align=center nowrap>",$rem_reduit,"...</td>";
     
                $requete2="SELECT lib_typ_interv FROM typ_interv_grh WHERE num_typ_interv=$donnee->interv_d_rio";
                ($donnee_complete_interv=mysql_fetch_object(mysql_db_query(BASE2,$requete2))) || erreur(3);
    	    echo "<td class='ligne",$numero%2,"' align=center>",$donnee_complete_interv->lib_typ_interv,"</td>";
                echo "<td class='ligne",$numero%2,"' align=center></td>";
    	    echo "<td class='ligne",$numero%2,"' align=center><a href='visual.php?id=$donnee->num_d_rio' class='lien",$numero%2,"'><img src='../image/b_visu2.gif' border='0'></a></td></tr>";
     
    	    $numero++;
    	}
     
    	echo "</table><br>";
        }
    J'AI UNE IDEE !!! etonnant non ??? par contre je sais pas comment l'écrire.
    à la fin du code 2 j'ai ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<td class='ligne",$numero%2,"' align=center><a href='visual.php?id=$donnee->num_d_rio' class='lien",$numero%2,"'><img src='../image/b_visu2.gif' border='0'></a></td></tr>";
    c'est à dire, actuellement, je clique sur le bouton et hop je vois la fiche.
    comment pourrais-je dire, si nom-numéro_agent (qui précede le bouton actuellement) n'est pas = à ta session actuelle, renvoi un message disant qu'il interdit l'accès ?

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Bon j'ai parcouru rapidement ton code et je pense qu'il y a quelques soucis :
    Si les question de sécurité et de confidentialité sont essentielles, il te faut commencer par supprimer toute utilisation de cookie. Il me semble que tu stockes $agentid (en clair en plus) dans un cookie et qu'ensuite tu le récupères pour filtrer des données ! Déjà là c'est mort c'est pas une brèche de sécurité que tu as mais un canyon. Tu devrais, comme te le sugères daheda, utiliser des sessions qui elles sont toujours individuelles et sécurisées vue qu'elles sont gérées par le serveur. L'id de chaque agent devrait être stocké dans sa session.

    Ensuite, si tu ne veux afficher que des données spécifiques à un agent, il ne te reste plus qu'à filtrer en amont toutes tes requêtes d'extraction de données avec cet identifiant et ensuite remonter tes vues en conséquence.
    En gros tu dois te débrouiller pour rajouter à toutes tes chaines SQL une truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE ... AND agentid = $idAgent
    Bref rien de bien compliqué.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 50
    Points : 35
    Points
    35
    Par défaut
    Merci pour ta réponse Xysyo.

    Nous avons un serveur de sécurité ici et la session qui est récupérée est en fait récupérée par la carte de connexion de l'agent. Elle récupére nom-numéro via un jeton secjava.

    "Bref rien de bien compliqué. " heu ! je t'ai dit que je débutais ???? ;-)

    EDIT : t'es un chef Xysyo
    j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete.=" WHERE ( etat_d_rio='NON_TRAITE' OR etat_d_rio='EN_COURS') AND (".$complete_req.") AND agt_d_rio=$id_agt";
    comme tu m'as dit...et ça MARCHE !!!
    c'est nickel.
    Merci encore
    t'es noté ;-)

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

Discussions similaires

  1. Cacher paramètres envoyés dans un lien
    Par developpeur_débutant dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 23/10/2013, 00h41
  2. Recuperation d'infos + envoyer par mail
    Par lephyrexian dans le forum VBScript
    Réponses: 1
    Dernier message: 07/12/2006, 12h47
  3. Envoyer des infos vers deux scripts
    Par Samrock dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 20h05
  4. Script pour envoyer des info a mysql
    Par rhum1 dans le forum Linux
    Réponses: 6
    Dernier message: 15/04/2003, 17h19

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