Beiträge von Gast 1 2 3 4
-
-
Hallo zusammen,
habe folgenden Skript über dem HTML-Bereich einer PHP-Seite...:
PHP
Alles anzeigen<?php function getCountry(){ $intIp = $_SERVER['REMOTE_ADDR']; $strFallBack = 'DE'; $webSrv1 = 'http://geoip.wtanaka.com/cc/'; $webSrv2 = 'http://freegeoip.net/xml/'; $webSrv3 = 'http://ip2country.sourceforge.net/ip2c.php?format=XML'; // webservice 1 probieren $webSrv1 $strCountryIso = file_get_contents($webSrv1.$intIp); if(strtoupper($strCountryIso) == 'ZZ'){ // webservice 2 probieren $webSrv2 $objCountryIsoXml = simplexml_load_file($webSrv2.$intIp); if($objCountryIsoXml->CountryCode == 'RD'){ // webservice 3 probieren $webSrv3 $objCountryIsoXml = simplexml_load_file($webSrv3); if($objCountryIsoXml->country_code != 'RD'){ return strtoupper($objCountryIsoXml->country_code); }else{ //hier angekommen failen alle 3 services return $strFallBack; } }else{ return strtoupper($objCountryIsoXml->CountryCode); } }else{ return strtoupper($strCountryIso); } } //Oben ist das Skript von synaptic von www.forum-hilfe.de - Stand 10.07.2012 $arrAllowed = array('DE','CH','ES','IT','LU','BE','SE','PL','CZ','HU','NO','LV','JP','MT','RO','RU','UA','GR','CY','BG','DK','US','CA','EE'); $strIsoCountry = getCountry(); if (in_array($strIsoCountry, $arrAllowed)) { if ($strIsoCountry == 'DE') { // do nothing } elseif ($strIsoCountry == 'CH') { // do nothing } elseif ($strIsoCountry == 'ES') { // do nothing } elseif ($strIsoCountry == 'IT') { // do nothing } elseif ($strIsoCountry == 'LU') { // do nothing } elseif ($strIsoCountry == 'BE') { // do nothing } elseif ($strIsoCountry == 'SE') { // do nothing } elseif ($strIsoCountry == 'PL') { // do nothing } elseif ($strIsoCountry == 'CZ') { // do nothing } elseif ($strIsoCountry == 'HU') { // do nothing } elseif ($strIsoCountry == 'NO') { // do nothing } elseif ($strIsoCountry == 'LV') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'MT') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'RO') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'RU') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'UA') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'JP') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'CY') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'BG') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'DK') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'GR') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'US') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'CA') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } elseif ($strIsoCountry == 'EE') { header("Location: http://www.testdomain1234.de/page2.php"); exit; } } else header("Location: http://www.testdomain1234.de/page5.php"); exit; ?>
Ich checke nicht, weshalb er mir die Page nicht anzeigt (bleibt einfach weiß)....
?
Grüße & Vielen Dank für Hilfe
-
Hey zusammen,
ich danke euch allen vielmals für die Fragen & Antworten.
Echt super. Zum Glück auch noch an den Timestamp gedacht@Unregistriert: Download nachweisen? Das wird ja immer lustiger... bisher habe ich noch nichts davon gehört, dass sowas jemals jemand machen musste... Wäre ja auch viel zu übertrieben das zu verlangen, wenn z.B. bei einem Online-Shop automatisiert Downloads ausgeliefert werden oder?!? Und wenn es allgemein funktioniert... Ich meine wenns nicht funktionieren würde, wären ja alle Kunden davon betroffen...? !!
Freundliche Grüße:)
-
Vielen Dank für die Antwort. Klingt sehr gut.
Werde mich näher damit beschäftigen und hoffe dass ich das zeitnah hinbekomme und es nicht so schwer ist.
Vielleicht gibt es ja dafür auch schon fertige Skripte.Freundliche Grüße
Gast 1 2 3 4 -
Guten Tag sehr geehrte Community,
bin auf der Suche es irgendwie hinzubekommen, dass wenn ich z.B. Paypal als Zahlungsanbieter für meine Website anbiete, der Kunde nach dem Bezahlen nicht den gleichen Link zum gleichen Produkt bekommt wie alle anderen, sondern dass jeder Kunde für den gleichen Download unterschiedliche Links bekommen, aber dass sich das Produkt trotzdem nur an einer Stelle auf dem Server befindet.
Also sozusagen, dass man die wahre URL des Produktes nicht herausbekommt, aber herunterladen kann nach Bezahlung.Hoffe, ihr könnt mir Tipps dazu geben, wie sowas am besten gelöst wird.
Vielen Dank
-
Danke:D Das sind echt so Sachen, ob ich da noch drauf gekommen wäre....:-)
Das ist einfach super, vielen Dank für die großartige Hilfe in diesem Board;-) -
Geil, jetzt funktionierts, dankesehr
-
Hi zusammen,
hätte da noch 'ne Rückfrage...
Da ich jetzt mal dazugekommen bin das ganze mit einem Proxy-Server zu testen.Die Länderweiterleitungen zu den im Array definierten erlaubten Ländern funktionieren auch wunderbar.
Nur wenn ich mit dem Proxy aus einem "unerlaubten" Land surfe, macht er keine Weiterleitung auf die
angegebene Seite, sondern lässt die Seite einfach leerPHP
Alles anzeigen$arrAllowed = array('DE','FR','NL','IT'); $strIsoCountry = getCountry(); if (in_array($strIsoCountry, $arrAllowed)) if ($strIsoCountry == 'DE') { header("Location: de_test.htm"); } elseif ($strIsoCountry == 'FR') { header("Location: fr_test.htm"); } elseif ($strIsoCountry == 'NL') { header("Location: nl_test.htm"); } elseif ($strIsoCountry == 'IT') { header("Location: it_test.htm"); } else header("Location: lock_test.htm"); ?>
??
Habe auch 3 mal überprüft, ob die lock_test.htm tatsächlich mit hochgeladen ist und Inhalt enthält und das tut sie.
Hmm...Edit:
Da ich so viel Ahnung von PHP habe (... *räusper*) habe ich es auch mal so probiert:else {
header("Location: lock_test.htm");
}Aber Ergebnis natürlich (!?) das gleiche.
MfG
-
Ah, wunderbar, das freut mich. Auch danke für die abschließende Antwort und Erklärung
Sehr gut zu wissen
Das habe ich schon vor ein paar Tagen gegoogelt (ca. 3 Minuten:D), aber dadurch war es mir noch nicht ganz klar geworden, sry!
Aber jetzt finally denk ich... Hammer:DDanke danke.
-
synaptic: Kein Thema. Eher danke, so hatte ich dann gleich noch mehr Lerneffekt daraus
Außerdem hat es sehr weitergeholfen. Besten Dank für deine Hilfe.Achso. Also wenn ich DE reindengle (:D - ok das ist ja schon drin aber sagen wir mal DE) und alle 3 Services würden wirklich mal failen, wäre es so, dass DE zur Ausgabe käme und dies quasi sich so verhalten würde, als wäre der Besucher der Website aus DE (auch wenn er aus USA in Wirklichkeit ist) und er würde dann quasi auf die Seite weitergeleitet werden/die Seite wäre verfügbar, sofern dies in dem Array bestimmt ist + der If-Anweisung? Sorry dass ich so 'dumm' nachfrage, aber mit dem Fallback das habe ich immer noch nicht ganz verstanden... Zumindest nicht dass ich es dann falsch verstanden habe
@Bandit: Besten Dank für die Hilfe und den zusätzlichen Tipp.
This board rocks
-
Es geht bei 1und1.. bin auch da Du machst damit übrigens auch nichts irgendwie "illegales"
Super Sache Das freut mich, dann bin ich ja beruhigt danke
synaptic: Kannst du mir das bitte nochmal erklären mit dem Fallback was da genau passiert?
Was zum Beispiel der Unterschied wäre wenn ich statt DE EN hineinschreibe?Vielen Dank für alles.
-
Hi, wunderbar, habe mich getraut ohne zu fragen einfach die php.ini hochzuladen.
Ins Hauptverzeichnis hats erst nicht geklappt. Aber in das Verzeichnis wo ich die Dateien vom Skript habe.
Funktioniert nun erstmals ohne Error:-)Vielen Dank! VG
PS: Großen Respekt vor dem Skript synaptic.
Es ist der Hammer. -
Ja schon, erstmal auf die Homepage, 1000 Weiterleitungen und dann ist mal vielleicht irgendwann da
Alles klar, dankeschön
-
Hahaah.
alxy: Danke, ich werde es ausprobieren bzw. erst meinen Webhoster fragen, ob ich das darf.
@Bandit: Das gibts doch nicht.
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
-
Hahahahahahah
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
-
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:
PHP
Alles anzeigen<?php function getCountry(){ $intIp = $_SERVER['REMOTE_ADDR']; $strFallBack = 'DE'; $webSrv1 = 'http://geoip.wtanaka.com/cc/'; $webSrv2 = 'http://freegeoip.net/xml/'; $webSrv3 = 'http://ip2country.sourceforge.net/ip2c.php?format=XML'; // webservice 1 probieren $webSrv1 $strCountryIso = file_get_contents($webSrv1.$intIp); if(strtoupper($strCountryIso) == 'ZZ'){ // webservice 2 probieren $webSrv2 $objCountryIsoXml = simplexml_load_file($webSrv2.$intIp); if($objCountryIsoXml->CountryCode == 'RD'){ // webservice 3 probieren $webSrv3 $objCountryIsoXml = simplexml_load_file($webSrv3); if($objCountryIsoXml->country_code != 'RD'){ return strtoupper($objCountryIsoXml->country_code); }else{ //hier angekommen failen alle 3 services return $strFallBack; } }else{ return strtoupper($objCountryIsoXml->CountryCode); } }else{ return strtoupper($strCountryIso); } } //Oben ist das Skript von synaptic von www.forum-hilfe.de - Stand 10.07.2012 $arrAllowed = array('DE','FR','NL','IT'); $strIsoCountry = $getCountry(); #scheint Line 37 zu sein... if (in_array($strIsoCountry, $arrAllowed)) if ($strIsoCountry == 'DE') { header("Location: de_test.htm"); } elseif ($strIsoCountry == 'FR') { header("Location: fr_test.htm"); } elseif ($strIsoCountry == 'NL') { header("Location: nl_test.htm"); } elseif ($strIsoCountry == 'IT') { header("Location: it_test.htm"); } else header("Location: lock_test.htm"); ?>
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 behobenHmm, würde ich mich damit auskennen, wäre es jetzt bestimmt ganz einfach.
-
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:
PHP
Alles anzeigen<?php function getCountry(){ $intIp = $_SERVER['REMOTE_ADDR']; $strFallBack = 'DE'; $webSrv1 = 'http://geoip.wtanaka.com/cc/'; $webSrv2 = 'http://freegeoip.net/xml/'; $webSrv3 = 'http://ip2country.sourceforge.net/ip2c.php?format=XML'; // webservice 1 probieren $webSrv1 $strCountryIso = file_get_contents($webSrv1.$intIp); if(strtoupper($strCountryIso) == 'ZZ'){ // webservice 2 probieren $webSrv2 $objCountryIsoXml = simplexml_load_file($webSrv2.$intIp); if($objCountryIsoXml->CountryCode == 'RD'){ // webservice 3 probieren $webSrv3 $objCountryIsoXml = simplexml_load_file($webSrv3); if($objCountryIsoXml->country_code != 'RD'){ return strtoupper($objCountryIsoXml->country_code); }else{ //hier angekommen failen alle 3 services return $strFallBack; } }else{ return strtoupper($objCountryIsoXml->CountryCode); } }else{ return strtoupper($strCountryIso); } } $strIsoCountry = $getCountry(); //Oben ist das Skript von synaptic von www.forum-hilfe.de - Stand 10.07.2012 $arrAllowed = array('DE','FR','NL','IT'); $strIsoCountry = $getCountry(); if (in_array($strIsoCountry, $arrAllowed)) if ($strIsoCountry == DE) { Header "Location: de_test.htm"; #Das sollte Line 42 sein... } elseif ($strIsoCountry == 'FR') { Header "Location: fr_test.htm"; } elseif ($strIsoCountry == 'NL') { Header "Location: nl_test.htm"; } elseif ($strIsoCountry == 'IT') { Header "Location: it_test.htm"; } else Header "Location: lock_test.htm"; ?>
Leider (?) bekomme ich noch die Fehlermeldung:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in .../index.php on line 42Mir 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...