Das wäre extrem umständlich.
Probiere es mal mit der php.ini aus und wenn das nicht klappt, setzte dich mal mit dem Support von 1&1 in Verbindung, vielleicht können die dir helfen.
Das wäre extrem umständlich.
Probiere es mal mit der php.ini aus und wenn das nicht klappt, setzte dich mal mit dem Support von 1&1 in Verbindung, vielleicht können die dir helfen.
Ja schon, erstmal auf die Homepage, 1000 Weiterleitungen und dann ist mal vielleicht irgendwann da
Alles klar, dankeschön
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.
Es geht bei 1und1.. bin auch da Du machst damit übrigens auch nichts irgendwie "illegales"
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.
also erstma sorry, ich hab den code heute zur veranschaulichung einfach runtergeschrieben, während der arbeit und nicht auf fehlerfreiheit geachtet und auch nicht dazugeschrieben, dass es ungeprüfter beispielcode ist.
der fallback ist nichts anderes, als eine ausgabe, die nur dann stattfindet, wenn alle services nicht funktionieren (was bei 3 services auch eigentlich nicht so schnell passieren dürfte)
dieser fallback wird von dir definiert und dient eben dazu, dass die weiterleitung funktioniert und das script nicht einfach stirbt
und nein du kannst da auch EN reindengeln, statt DE
und nein du kannst da auch EN reindengeln, statt DE
Ich hätt's so gemacht:
So kannst du ja bei Bedarf den Fallback beim Aufruf ändern
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
ja das haste richtig erklärt
google doch einfach mal nach der begriffs-definition für fallback...
und JA du musst die weiterleitung für deinen fallback ja auch definieren, angenommen du hast SRB (serbien) als fallback und berücksichtigst dafür aber keine lösung für die weiterleitung, tritt das hier in kraft:
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:D
Danke danke.
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 leer
$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");
?>
Alles anzeigen
??
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
Genau deshalb mag ich diese Schreibweise nicht! Wenn man das anders macht, fällt sofort auf, wozu das else gehört:
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");
Alles anzeigen
Und so wär's richtig:
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");
Alles anzeigen
Geil, jetzt funktionierts, dankesehr
Und noch ein Tipp: schreibe nach header immer ein exit:
Das spielt in diesem Falle zwar keine große Rolle, aber man sollte sich darüber klar sein, dass das Script trotz header bis zum Ende ausgeführt wird. Will man wegen eines Fehler weiterleiten, würde trotzdem das Script weiterlaufen und das kann manchmal unangenehme Folgen haben.
Außerdem sollte man bei header eine vollständige URL nehmen, sprich http://www.blablabla.irgendwo/seite.html
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;-)
Hallo zusammen,
habe folgenden Skript über dem HTML-Bereich einer PHP-Seite...:
<?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;
?>
Alles anzeigen
Ich checke nicht, weshalb er mir die Page nicht anzeigt (bleibt einfach weiß)....
?
Grüße & Vielen Dank für Hilfe
Richtig debuggen
1.Man bemerkt, dass ein Skript nicht das tut, was es soll.
2.Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3.Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4.Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5.An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6.Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7.Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8.Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9.Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
Ja toll, dann bist du bis Punkt 3 von "Richtig debuggen" gekommen, aber wenn mich nicht alles täuscht, sollte man bis mindestens Punkt 6 alleine weitermachen!
Ich kriege es aber leider nicht hin Wenn der mir nicht mal anzeigt wo der Fehler ist