12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)
  • Q:
    Bijdrager
    idenniske

    link op ip-adres.

    Ik heb een vraag:

    We willen in ons menu het volgende doen, als

    Als iemand met het ip192.168.4.0 erop klikt wat anders te zien krijgen dan mensen met het ip192.168.5.0.

    is dit te realiseren met php?

    namelijk zoiets van:
    als 192.168.4.0 klikt stuur hem dan daarheen,
    als 192.168.5.0klikt stuur hem dan daarheen.

    Ik vraag me af wat jullie ervan denken.

    Bijdrager
    Jello

    [code:1:b414f22fd1]
    function getUserIP() {
    return $_SERVER[’REMOTE_ADDR’];
    }

    if (getUserIP() == "192.168.4.0") {
    echo "<a href=’link a’>;
    echo "<a href=’link b’>;
    } else if (getUserIP() = "192.168.5.0") {
    echo "<a href=’link c’>;
    echo "<a href=’link d’>;
    } else {
    // default
    echo "<a href=’link f’>;
    echo "<a href=’link g’>;
    }
    [/code:1:b414f22fd1]

    Bedoel je zo iets?

    Bijdrager
    idenniske

    Als ik je tekst goed begrijp:

    vraag je eerst het ip op, en als dat ip 192.168.4.0 is dan stuur je hem naar a of b

    anders als het ip 192.168.5.0 is stuur hem dan naar c of d

    maar waar zijn die defaults voor?

    Bijdrager
    Jello

    Neen, mijn code was een code die een andere link ‘toonde’…
    echo = write = toon = schrijf…

    dus bezoeker A zou in bovenstaande code een link zien naar A en naar B, bezoeker B naar C en D etc…

    Als je wilt dat een bezoeker direct wordt doorgeschakelt, naar een bepaalde pagina ofzo kan je zo werken…

    [code:1:f0821b284c]
    unction getUserIP() {
    return $_SERVER[’REMOTE_ADDR’];
    }

    if (getUserIP() == "192.168.4.0") {
    header("Location: url/waar/192.168.4.0/naar/toe/moet/gaan");
    } else if (getUserIP() = "192.168.5.0") {
    header("Location: url/waar/192.168.5.0/naar/toe/moet/gaan");
    } else {
    // default
    header("Location: url/waar/de rest/naar/toe/moet/gaan");
    } [/code:1:f0821b284c]

    Het is maar wat je wilt hé …

    Bijdrager
    idenniske

    dat onderste is meer waar ik naar op zoek ben.
    ik zal het eens proberen.

    Bijdrager
    idenniske

    Dat met de headers werkt beter dan met echo’s,
    nu heb ik nog een vraag:
    de ip’s zitten zegmaar in een range van 192.168.4.0 tot 192.168.4.254 en met de andere hetzelfde.

    moet ik daar nou een array van maken? of zijn er andere mogelijk heden

    (“Location: url/waar/192.168.4.0/naar/toe/moet/gaan”);

    word dit dan bijvoorbeeld

    (“Location: test.html”);

    ps. dit is wat ik nu heb:
    [code:1:defce69f13]
    <?php
    function getUserIP() {
    return $_SERVER[’REMOTE_ADDR’];
    }

    $i=array[192.168.4.0 … 192.168.4.254];
    $e=array[192.168.5.0 … 192.168.5.254];

    if (getUserIP() == "$i") {
    header("Location: test.html");
    } else if (getUserIP() = "$e") {
    header("test1.html");
    } else {
    header("Location: test2");
    }
    ?>
    [/code:1:defce69f13]

    Bijdrager
    Jello

    [code:1:c604c6573b]
    <?php
    function getUserIP() {
    return $_SERVER[’REMOTE_ADDR’];
    }

    function getRange($prefix) {
    $ar = array();
    for ($i=0;$i<255;$i++)
    $ar[] = $prefix.".".$i;

    return $ar;
    }

    $i=getRange("192.168.4");

    $e= getRange("192.168.5");

    if (in_array(getUserIP(), $i)) {
    header("Location: test.html");
    } else if (in_array(getUserIP(), $e)) {
    header("Location: test1.html");
    } else {
    header("Location: test2.html");
    }
    ?>
    [/code:1:c604c6573b]

    Wat d8 je hiervan? (niet getest op fouten.. even snel getypt…)
    Maar PHP is gewoon zelf creatief leren zijn!
    En leer zoeken op php.net, dan vind je alles in een handomdraai!

    Gegroet,

    Bijdrager
    idenniske

    Bedankt,

    wat kan je met die range allemaal aangeven dan?

    Bijdrager
    Jello
    ”idenniske”

    Bedankt,

    wat kan je met die range allemaal aangeven dan?

    ? Wat bedoel je?
    getRange is gewoon een eigen functie die een array returnt met daarin 255 keer ‘prefix + ‘.’ + nummer van 1 tot 255 in een array…

    Wat is je vraag juist?

    Bijdrager
    idenniske

    Mijn vraag was verkeerd en overbodig sorry daarvoor.

    volgens mij is de code goed,
    ik heb in mijn www map index.php, test.html , test1.html, test2.html. staan

    als ik via mijn editor ( maguma studio ) een external view doe ( Firefox )
    dan krijg ik de fout dat hij de pagina niet kent, en mijn eigen ip is 4.54 dus die zit in de range van test.html. Maar ik krijg die fout.

    is er dan iets fout in mijn mapping of met mijn wamp,

    ik snap het niet meer

    Bijdrager
    Jello

    Wel, ik zal nog 1 tip geven… en daarna moet je toch even zelfstandig blijven zoeken.

    [code:1:5b16379994]
    <?php
    function getUserIP() {
    return $_SERVER[’REMOTE_ADDR’];
    }

    function getRange($prefix) {
    $ar = array();
    for ($i=0;$i<255;$i++)
    $ar[] = $prefix.".".$i;

    return $ar;
    }

    $i=getRange("192.168.4");

    $e= getRange("192.168.5");

    $debug = true; //false
    if ($debug) {
    echo "<pre>";
    print_r($i);
    print_r($e);
    echo "</pre>";
    }

    if (in_array(getUserIP(), $i)) {
    if ($debug) echo "Link naar test.html";
    header("Location: test.html");
    } elseif (in_array(getUserIP(), $e)) {
    if ($debug) echo "Link naar test1.html";
    header("Location: test1.html");
    } else {
    if ($debug) echo "Link naar test2.html";
    header("Location: test2.html");
    }
    ?> [/code:1:5b16379994]

    *Opmerking: Na een echo (of wnr er al iets geschreven is), zal header() niet meer werking (php error: cannot chnge header…).
    In bovenstaand voorbeeld echo’en we even wat waardes om te kijken of de values goed zijn.

    Edit: echo getUserIP() kan ook soms nuttig zijn.

    Bijdrager
    ieperlingetje

    Je weet toch dat je gebruikt maakt van interne ip adressen ? Tenzij je website binnen het netwerk gehost wordt is er niets aan de hand , maar anders ben je bezig verkeerde criteria op te stellen.;)

12 berichten aan het bekijken - 1 tot 12 (van in totaal 12)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.