Website nur bestimmten Ländern zugänglich machen?

  • Hallo und einen schönen Tag zusammen,

    wie bekomme ich das hin, dass ich meine Website nur bestimmten Ländern zugänglich mache?
    Also dass die Länder wo sie verfügbar sein soll die Seite ganz normal sehen und bei allen anderen Ländern,
    wenn man auf die Seite geht eine Meldung kommt "This site isn't available in your country." oder sowas in der Art?

    Vielen Dank und mfG
    Gast 1 2 3 4

  • Vielen Dank für eure Antworten :)

    @Bandit:
    Danke. Aber geht das nicht einfacher?

    Z.B.
    If country DE, elseif IT (bzw. Ip-Adressen) elseif usw. (die Länder wo die Page verfügbar sein soll)
    -> Seite

    Else
    -> Seite "Nicht verfügbar"

    ?

    synaptic: Vielen Dank.
    Leider verstehe ich noch nicht ganz, was das Skript genau tut?
    Würde dieses es nur für Deutschland zugänglich machen?
    Denn ich brauche für mehrere Länder.

    Bin ziemlicher Neuling auf dem Gebiet und möchte halt sichergehen,
    dass dann auch alles funktioniert.

    Viele Grüße
    Gast 1 2 3 4

  • PHP
    $strIsoCountry = $getCountry();

    in der variablen $strIsoCountry wird dir ein isocode gespeichert (für deutschland zB DE, für Frankreich FR)

    und du brauchst später zB nur ein array definieren zB

    PHP
    $arrAllowed = array('DE','FR','NL');


    dann fragste ab, ob der code aus der variablen im array ist und wenn ja zeigste die page an, wenn nich machste ne weiterleitung!
    aber.. das sind echt basics, mit denen du dich auseinandersetzen solltest, wenn du ein solches vorhaben hast.

    was das script macht: es fragt bei 3 verschiedenen webservices nach, ob die ip nach land aufgelöst werden kann, ist das nicht der fall, also wenn alle 3 versagen sollten, dann wird DE als fallback zurückgegeben, diesen fallback kannste aber bei

    PHP
    $strFallBack = 'DE';

    selber definieren!


  • Danke schonmal vielmals für die gute Erklärung.
    Hört sich sehr gut an.

    .......Das heißt ich müsste eine PHP-Seite erstellen, in der oben das Skript drin ist.
    Und unter dem Skript in der selben Datei dann

    z.B. $arrAllowed = array('DE','FR','NL','IT');

    Und darunter sowas wie:

    <?php
    if ($arrAllowed == DE) {
    Header "Location: http://webseitenname.domainendung/de";
    } elseif ($arrAllowed == FR) {
    Header "Location: http://webseitenname.domainendung/fr";
    } elseif ($arrAllowed == NL) {
    Header "Location: http://webseitenname.domainendung/nl";
    } elseif ($arrAllowed == IT) {
    Header "Location: http://webseitenname.domainendung/it";
    }
    else {
    Header "Location: http://webseitenname.domainendung/locked";
    }
    ?>

    Achso das <?php würde ja schon dann ganz oben stehen und somit würde es direkt mit "if (..." weitergehen?
    Wäre der Code richtig?

    Das mit dem Fallback verstehe ich auch noch nicht ganz..
    Heißt es einfach, dass er dann nochmal von vorne Anfängt die 3 Services abzufragen wegen dem return?
    Oder heißt es dass er wenn er komplett failt dann DE als isocode speichert und diesen dann benutzt?
    Oder was geschieht da genau?

    Oder mal anders gefragt: Was passiert wenn ich $strFallBack = 'EN'; eintrage im Gegensatz zu $strFallBack = 'DE'; ?

    Sorry, wie gesagt, bin da ein ziemlicher Neuling, habe etwas gegoogelt zwar eben aber..
    Naja das ist auch so eine Sache denke ich wie kann man sowas testen? Mit Proxyserver?

    Darf ich das Skript benutzen (auch für kommerzielle Websites)?


    Wäre sehr dankbar auch für die Beantwortung meiner weiteren Fragen :)

    Viele Grüße
    Gast 1 2 3 4

  • Auweia! Bitte lerne die Grundlagen!! Du verstehst ja absolut garnichts von dem was synaptic dir geschrieben hat und dein Beispiel ist sowas von falsch..


    Darf ich das Skript benutzen (auch für kommerzielle Websites)?


    Du willst doch wohl nicht damit sagen, dass du mit dem Wissensstand an kommerziellen Seite rumstrickst?

    PHP
    $arrAllowed = array('DE','FR','NL','IT');  
    
    
    $strIsoCountry = $getCountry();
    
    
    if (in_array($strIsoCountry, $arrAllowed))
      echo "Erlaubt";
    else
      echo "Nicht erlaubt";
  • @Bandit: Hahaha, oh nein, das habe ich mir schon gedacht...
    Aber das habe ich extra gemacht um meine Unwissenheit zu offenbaren....
    hahaha und wer weiß vielleicht wäre es ja richtig gewesen :) ...^^
    Spaß beiseite. Danke für deine Antwort.

    Naja.

    Also der PHP-Code den du gepostet hast..
    ich verstehe jetzt noch weniger??

    Aber mit dem echo ist ja auch quatsch für den angestrebten Zweck,
    ...


    PS: Mist habe mich undeutlich ausgedrückt.
    Darf ich das Skript kostenlos für kommerzielle Webseiten benutzen?


    Werde mich wohl dann mal weiter mit den PHP Grundlagen beschäftigen....
    Hoffe trotzdem auf eine Antwort von synaptic.


    Danke euch für die Hilfe.

  • Danke für den PHP-Code, Bandit.

    Ich glaube ich verstehe jetzt schon 0,00054589849486465 Prozent mehr

    ...^^

  • Ich glaube der PHP-Code ist vom Anfang her sehr gut.

    Oh man, ich glaube ich muss mich anmelden, dass ich meine Beiträge editieren kann usw.

    :/

    Sorry für den Tripple-Post

    ....

    OMG

  • ja anmelden roxx..
    und ja du darfst das script nutzen, es ist von mir erstellt und ich habe extra nur kostenlose services genommen, die sowas machen!
    wenn möglich kannst du ja meinen schützlingen eine spende zukommen lassen http://kaninchenrettung.de

    und dieses unterfangen ist echt schwierig, wenn du wirklich 0 plan hast.
    das macht alles ungleich schwieriger für dich und uns.

    ich mach es nur ungern, aber evtl hilft dir das ja hier beim verstehen...


  • Schonmal herzlichen Dank für die Hilfe :)

    Das ist 'ne super Sache! Spenden bei mir auch zurzeit schwer, aber ich werde die Seite im Auge behalten und sehr wahrscheinlich (wenn ich eine gute finanzielle Situation bekomme...) ein anderes mal etwas spenden!

    Ja, ich habe leider wirklich nicht allzuviel Plan von PHP zurzeit.
    Habe mich zwar gestern abend noch stundenlang mit den PHP Grundlagen beschäftigt, bin aber trotzdem noch nicht so ganz draus schlau geworden.

    Meine PHP-Datei sieht jetzt so aus:

    Leider (?) bekomme ich noch die Fehlermeldung:
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in .../index.php on line 42

    Mir ist gerade leider auch unerklärlich weshalb.
    Ich habe keine Ahnung was da falsch sein soll. Habe auch schon verschiedenes probiert, es kam immer wieder diese Meldung.
    Hmm...

    Einmal editiert, zuletzt von Gast 1 2 3 4 (10. Juli 2012 um 13:37)

  • Eine der wichtigsten Dinge bei einem Parse-Error: AUGEN AUF!!!

    if ($strIsoCountry == DE)

    elseif ($strIsoCountry == 'FR') {

    Was fällt dir auf?

  • Ja, nur das Problem ist ich habe es mit sowohl mit DE als auch 'DE' versucht (schon davor), aber es kam trotzdem die selbe Fehlermeldung.

    Meine Datei sieht jetzt so aus:

    Das header("Location: de_test.htm"); so zu schreiben scheint den vorherigen Error behoben zu haben.

    Nur jetzt bekomme ich leider folgende Fehlermeldung:

    Fatal error: Function name must be a string in /.../index.php on line 37


    Hmm....


    Edit:
    $strIsoCountry->$getCountry();
    hat den Fehler auch nicht behoben

    Hmm, würde ich mich damit auskennen, wäre es jetzt bestimmt ganz einfach.

    Einmal editiert, zuletzt von Gast 1 2 3 4 (10. Juli 2012 um 14:49)

  • Edit:
    $strIsoCountry->$getCountry();
    hat den Fehler auch nicht behoben


    Mutter, hol' mich vonne Zeche, ich kann dat Schwatte nich mer sehn!

    getCountry() ist eine Funktion, vom Prinzip her nix anderes als jede PHP-Funktion auch. Du schreibst ja vor in_array auch kein $, also warum vor getCountry()????

  • Hahahahahahah :D
    Oh, sorry! Tatsächlich, ich dachte das muss eine Variable sein (aus welchen Gründen auch immer)... Danke...

    Er gibt mir jetzt folgendes aus:

    Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /.../index.php on line 10

    Warning: file_get_contents(http://geoip.wtanaka.com/cc/xx.xxx.xxx.xxx) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /.../index.php on line 10


    Kann ich da irgendwas machen? Habe meinen Webspace bei 1und1

    2 Mal editiert, zuletzt von Gast 1 2 3 4 (10. Juli 2012 um 22:46)

  • Tja, schlechte Karten. Bei deinem Webspace ist das Öffnen von Dateien per URL abgeklemmt, sprich, verboten. Jetzt hast du ein schönes Script, was du aber nicht nutzen kannst :D

    alxy
    Ich bezweifele, dass du bei 1&1 diese Einstellung ändern kannst.

  • Hahaah.

    alxy: Danke, ich werde es ausprobieren bzw. erst meinen Webhoster fragen, ob ich das darf.

    @Bandit: Das gibts doch nicht.
    :D

    Hmm. Ich könnte ja wenn man auf die Seite geht eine Weiterleitung machen die zuerst auf einen anderen Webhoster weiterleitet bei dem man das Skript benutzen kann und der danach bei Bedarf wieder auf meinen Webhoster weiterleitet. Meint ihr das wäre eine gute Lösung bzw. würde funktionieren?

    VG

    Einmal editiert, zuletzt von Gast 1 2 3 4 (10. Juli 2012 um 15:41)