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 :

[Tableaux] comparaison de variables


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut [Tableaux] comparaison de variables
    Bonjour,

    j'essaie d'établir un système de mot de login et de mot de passe via l'entete http pour le servuer intranet/extranet de ma boite.

    Le but de la manoeuvre est que l'internaute qui se connecte sur l'extranet soit détecter de part son ip afin qu'il se "chope" la boîte d'identification. Pour celui qui se connecte en interne sur notre réseau local, ça doit être transparent, pas de boîte d'idnetification.

    J'ai codé comme ça :

    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
     
    //identification de l'ip du client
    $ip = $_SERVER['REMOTE_ADDR'];
     
     
    //définition de l'ip et des dhcp interne
     
    //déf variable $x
    $x != 0 && $x > 0 && $x < 251;
     
    //déf des dhcp
    $dhcp = "10.1.0.$x";
     
    $dhcp1 = "10.1.1.$x";
     
    $dhcp2 = "10.1.2.$x";
     
    $dhcp3 = "10.1.3.$x";
     
    $dhcp4 = "10.6.0.$x";
     
    $dhcp5 = "10.4.0.$x";
     
    $dhcp6 = "10.3.0.$x";
     
    $dhcp7 = "10.7.0.$x";
     
    //script pour envoyer le login et le mot de passe 
    if ($ip != $dhcp || $ip != $dhcp1 || $ip != $dhcp2 || $ip != $dhcp3 || $ip != $dhcp4 || $ip != $dhcp5 || $ip != $dhcp6 || $ip != $dhcp7)
    {
    reste du script....
    }
    Le truc c'est que ça marche pas , il n'établit pas la relation entre la variable $x et $dhcp à mon avis.

    Quelqu'un aurait il une idée parce que j'suis pas une star en php et je sens que ça va vite me prendre la tête ? Merci d'avance.

  2. #2
    Membre émérite
    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
    Par défaut
    Qu'est-ce que c'est que ça ?!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //déf variable $x
    $x != 0 && $x > 0 && $x < 251;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    $x doit être compris entre 1 et 251, alors voilà j'ai essayé de le définir

  4. #4
    Membre émérite
    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
    Par défaut
    Ce n'est pas comme cela qu'on fait (avec des &&).
    Quel valeur veux-tu lui donner à x ?

  5. #5
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    tu pourrais déjà te contenter de filtrer l'ip juste sur le "10" c'est une ip que tu ne trouveras que en local. Donc pas besoin de filter selon les sous-domaine (à moins que ça ne te soit utile pour la suite ?)

    $ip = $_SERVER['REMOTE_ADDR'];

    ensuite tu fais :

    $ipAccepT='10';

    if ($ip==substr($ip, 0, 2)) //lit les 2 premiers caractères de $ip
    {

    OK
    }
    else
    {
    page de log
    }

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    ouais ce serait une solution. J'essaye.

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $x != 0 && $x > 0 && $x < 251;
    Me semble équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ($x != 0) and ($x > 0) and ($x < 251);
    Et cela ne fait absolument rien : tu effectues 3 comparaisons avec la valeur de $x mais tu n'utilises pas le résultat de ces comparaisons.

    Sinon, juste une mise en garde rapport à la solution proposée par dj-julio : même si 10 n'est pas une IP classique pour un réseau local, cela n'empêche pas un grand nombre d'admins de l'utiliser pour sa rapidité d'écriture et pour les possibilités mnémotechniques qu'elle offre.
    De plus, la comparaison proposée exclut toutes les IP en 10x comme 103 ou 109.
    Je te propose ceci à la place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ip==substr($ip, 0, strpos($ip, '.')))

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Ya un truc qui marche pas :

    Test en local avec esayphp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //identification de l'ip du serveur
    $ip = $_SERVER['REMOTE_ADDR'];
    echo $ip;
    $ip2 == substr($ip, 0, 2);
    echo $ip2;
    $ip retourne 127.0.0.1
    $ip2 retourne rien !!! Pourquoi ???

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ah ben je sais pas, ça dépend de ce que tu veux mettre dedans.
    Une chsoe est certaine : tu dois mettre quelque chose dans $x avant d'arriver à //déf des dhcp.

    Si je pige bien, tu veux attribuer un rang de valeurs à $x ?
    Houlàlà...

    Je te propose une boucle :
    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
    for($x=0; $x<251; ++$x){
    	//déf des dhcp
    	$dhcps = array("10.1.0.$x",
    				"10.1.1.$x",
    				"10.1.2.$x",
    				"10.1.3.$x",
    				"10.6.0.$x",
    				"10.4.0.$x",
    				"10.3.0.$x",
    				"10.7.0.$x");
     
    	//script pour envoyer le login et le mot de passe
    	if (in_array($ip, $dhcps)){
    		// ...
    	}
    	else{
    		// ...
    	}
    }

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 109
    Par défaut
    Citation Envoyé par cheucher
    Ya un truc qui marche pas :

    Test en local avec esayphp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //identification de l'ip du serveur
    $ip = $_SERVER['REMOTE_ADDR'];
    echo $ip;
    $ip2 == substr($ip, 0, 2);
    echo $ip2;
    $ip retourne 127.0.0.1
    $ip2 retourne rien !!! Pourquoi ???
    L'erreur vient de la !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ip2 == substr($ip, 0, 2); => $ip2 = substr($ip, 0, 2);
    un seul =

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    En fait, c'est presque ça sauf que moi je voudrais exclure du login et du mot de passe tout ceux qui ont les ip incluent dans la boucle (ceux qui accèdent à l'intranet/extranet par le réseau local et l'imposer aux autres qui viennent de l'extérieur avec une ip différente de celles définies sur le réseau.

    Je suppose donc qui me faudrait un l'inverse de in_array .

    Mais ton code fonctionne tout de même , sauf que je nai pas à m'identifier de l'extérieur et que je dois m'identifer de l'intérieur

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ah, alors tu as deux solutions : soit tu mets ton code dans le else, soit tu précèdes in_array par un point d'exclamation.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    Merci de m'avoir dépanner.

  14. #14
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    de rien et n'oublis pas le petit

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 21
    Par défaut
    merci à tous

  16. #16
    Membre Expert Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Par défaut
    essaye de vérifier avant de la declarer qu'elle n'existe pas
    http://fr2.php.net/manual/fr/functio...ion-exists.php

  17. #17
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Ah, ouais mais, vois-tu, j'ai supposé que cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $x != 0 && $x > 0 && $x < 251;
    Traduisait ton désir d'utiliser un intervalle de valeurs, j'ai donc traduit par une boucle.
    Peut-être me suis-je trompé...

    Sinon, tu peux déclarer ta fonction en début de script, une seule fois. Il suffit de l'appeler pour la rendre utile (dans la boucle, j'imagine).

  18. #18
    Membre chevronné Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Par défaut
    pourquoi n'utilises-tu pas ce que je t'ai donné ? à savoir vérifier juste le 10 de l'ip ?
    comme ça ciao les problèmes d'echo ... de tableaux, ... ^^

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/01/2013, 21h20
  2. Réponses: 3
    Dernier message: 07/06/2007, 23h03
  3. [Tableaux] Appeler une variable que si non NULL
    Par GarGamel55 dans le forum Langage
    Réponses: 6
    Dernier message: 08/10/2005, 15h07
  4. Réponses: 4
    Dernier message: 05/10/2005, 19h19
  5. Probleme comparaison de variable
    Par dynxd dans le forum Access
    Réponses: 2
    Dernier message: 02/10/2005, 22h48

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