Handy oder Computer > Unterschiedliche Weiterleitung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auslese
browser
code
dank
eingabe
erfahrung
erstellen
guter hinweis
header
hinweis
http
index
info
iris
machen
parameter
setzen
url
weiterleiten
weiterleitung
-
Hallo zusammen.
Manchmal Poste ich auf Facebook auch Links zu Webseiten die nur mit Flash funktionieren.
zbs: http://augenkrebs.de.vu/
80% der Dauer User auf Facebook sind aber natürlich mit dem Handy Online. Wiederum 80% mit einem iPhone.
Nun, die öffnen dann die Seite um merken dann, das die Seite leer ist. (Da das iPhone kein Flash unterstützt)
Deshalb suche ich eine Lösung.
Ich habe mir das so vorgestellt:
Anstelle des oben genanten Links, hätte ich solch einen Link:
http://example.com/weiterleitung/?http://augenkrebs.de.vu
Dort sollte dann automatisch an den eigentlichen Link weitergeleitet werden, falls es sich um einen Computer handelt.
Handys hingegen sollten auf eine andere Seite umgeleitet werden, auf der dann ein Hinweis zu finden ist.
Versteht ihr meine Absicht?
Das Hauptproblem besteht aber darin, das ich überhaupt keine Ahnung habe wie ich das Realisieren kann.
Ich weiss nicht wie man eine Weiterleitung macht, auch weiss ich nicht, wie man den Useragent erkenne lässt?
Gibt es dafür eine fertige Datei? bzw. Kann mit jemand eine machen?
Grüsse weissertiger2
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo!
Es gibt dazu zwar keine fertige Datei, aber ich könnte die problemlos etwas beispielcode posten wenn du sagst in welcher Sprache und in welcher Form du das umsetzen willst.
Normalerweise ist es so das du eine normale Seite hast (www.seite.de). Wenn der User diese besucht überprüftst du den Useragent. Wenn dieser ein nomaler Desktopbrowser ist zeigst du deine normale Seite an. Ansonsten lieferst du eine bestimmte Mobile Version oder einen Hinweis.
Diese Mobile Version kann entweder auf der gleichen URL liegen oder auf einer neuen URL (mobile.seite.de). Wenn du eine eigene Subdomain dafür machst musst du dann auf der normalen Seite wenn du erkennst das es sich um einen mobilen User handelt auf die mobile Seite weiterleiten. -
aklasse schrieb:
Wenn du lust und Zeit hast kann du das gerne machen, ich würde mich auf jeden Fall freuen. Sprache:
..aber ich könnte die problemlos etwas beispielcode posten wenn du sagst in welcher Sprache und in welcher Form du das umsetzen willst.
Hhm, ich weiss nicht. Macht man das mit PHP oder mit Javascript? Ich kenne mich leider mit beiden nicht aus.
aklasse schrieb:
Yep, das ist mir bewusst.
Normalerweise ist es so das du eine normale Seite hast (www.seite.de). Wenn der User diese besucht überprüftst du den Useragent. Wenn dieser ein nomaler Desktopbrowser ist zeigst du deine normale Seite an. Ansonsten lieferst du eine bestimmte Mobile Version oder einen Hinweis.
Ich fände es aber toll, wenn ich nicht für jeder Weiterleitung eine neue Datei erstellen / Uploaden muss, sondern eine für jede weiterleitende URL einsetzen kann.
zbs:
http://example.com/weiterleitung/?http://augenkrebs.de.vu
http://example.com/weiterleitung/?http://google.de
http://example.com/weiterleitung/?http://markus-mail.com
http://example.com/weiterleitung/?http://..... -
Ich vermute du hast bisher keine Erfahrung mit Programmiersprachen, daher ist es auch schwer dies umzusetzen.
Was du möchtest ist also eine Art Zwischenseite zu erstellen der man die URL übergibt und die einen dann entweder direkt weiterleitet oder einen Hinweis anzeigt? Dies wäre vergleichsweise einfach umzusetzen.
Wenn du noch ein paar mehr Infos raus lässt könnte ich dir gerne etwas PHP schreiben.
grüße
stefan -
aklasse schrieb:
Richtig vermutet .
Ich vermute du hast bisher keine Erfahrung mit Programmiersprachen
aklasse schrieb:
Genau. Entweder so wie du das gesagt hast, oder das der Besucher mit einem Handy auf eine andere Seite umgeleitet wird, wo dann der Hinweis angebracht wird. Welcher der beiden Methoden ist eigentlich egal.
Was du möchtest ist also eine Art Zwischenseite zu erstellen der man die URL übergibt und die einen dann entweder direkt weiterleitet oder einen Hinweis anzeigt?
aklasse schrieb:
Das währe natürlich super.
Wenn du noch ein paar mehr Infos raus lässt könnte ich dir gerne etwas PHP schreiben.
Was für Infos brauchst du denn noch? -
Folgenden Code kannst du auf dieser Zwischenseite einbauen:
<?php $mobile = "http://www.mobiler.user.de"; //Mobile Hinweisseite $url = $_GET['u']; //Ziel URL holen $useragent = $_SERVER['HTTP_USER_AGENT']; //User Agent auslesen //Riesieger Ausdruck zum überprüfen if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) { //Mobil header('Location: '.$mobile); //auf die mobile Hinweisseite weiterleiten } else { //Desktop header('Location: '.$url); //auf die angegebene URL weiterleiten } ?>
Wenn du den Code z.B. in folgende Seite einbaust: http://www.mobilecheck.de/index.php kannst du das Script dann so benutzen:
http://www.mobilecheck.de/?u=http://www.zielseite.de
Wenn diese Seite aufgerufen wird, wird der User danach dann entweder auf http://www.zielseite.de oder auf die im Code angegebene Mobile Hinweisseite weitergeleitet.
Da sich die Browser ständig weiterentwickeln kann es sein dass dieser Code mit der Zeit nicht mehr ganz aktuell ist. Hier hilft dir folgende Seite weiter, die ständig die regulären Ausdrücke (das ist diese ewig lange Zeile) aktualisiert. http://detectmobilebrowsers.com/ -
Hallo aklasse
Ich danke dir viel, viel mal. Ich habe es getestet und es funktioniert Perfekt. Genau so habe ich es mir vorgestellt .
Danke viel mal für die Mühe -
Sicherer wäre aber die URL zu encoded zu übergeben und decoded die Header Location zu setzen...
Besonders wenn mal QUERY's an der URL anhängen müssen...
URLENCODE:
// http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex echo urlencode ("http://www.dexus1985.tk/?sec=Index");
URLDECODE:
// http://www.dexus1985.tk/?sec=Index echo urldecode ("http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex");
EDIT: Oder gleich die RAW versionen...?
Beitrag zuletzt geändert: 5.2.2012 23:22:33 von dexus85 -
dexus85 schrieb:
Sicherer wäre aber die URL zu encoded zu übergeben und decoded die Header Location zu setzen...
Besonders wenn mal QUERY's an der URL anhängen müssen...
URLENCODE:
// http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex echo urlencode ("http://www.dexus1985.tk/?sec=Index");
URLDECODE:
// http://www.dexus1985.tk/?sec=Index echo urldecode ("http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex");
EDIT: Oder gleich die RAW versionen...?
Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded. Trotzdem ein guter Hinweis! -
aklasse schrieb:
Dann verwend halt statt
Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded. Trotzdem ein guter Hinweis!
so was wie$_GET['u']
.$_SERVER['QUERY_STRING']
Dabei muss nichts encoded/decoded werden.
Aufgerufen wird das dann so:seite.php?http://geh/dort/hin
-
aklasse schrieb:
dexus85 schrieb:
Sicherer wäre aber die URL zu encoded zu übergeben und decoded die Header Location zu setzen...
Besonders wenn mal QUERY's an der URL anhängen müssen...
URLENCODE:
// http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex echo urlencode ("http://www.dexus1985.tk/?sec=Index");
URLDECODE:
// http://www.dexus1985.tk/?sec=Index echo urldecode ("http%3A%2F%2Fwww.dexus1985.tk%2F%3Fsec%3DIndex");
EDIT: Oder gleich die RAW versionen...?
Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded. Trotzdem ein guter Hinweis!
Danke, doch es gibt ja noch Browser die noch einen kleinen Lebensanteil im WEB haben die das nicht automatisch machen.
Problematisch wird es wenn du es selber mal testen willst Weiterleitungs URL:
http://www.example.com/?i=something&blow=blala
so jetzt muss die eigene seite eigentlich z.b. noch nen anderen GET parameter bekommen...
Unsere Seite: wie wir verlinken:
http://www.dexus1985.tk/ext.php?url=http://www.example.com/?i=something&blow=blala
das geht möglicherweise gut in neuen Browsern
Jetzt braucht unsere eigene Seite aber noch evtl. ein zweiten Parameter (MobileDevice = 1) für mögliche Mobile Geräte Hinweis anzeige.
GEHT NICHT:
http://www.dexus1985.tk/ext.php?url=http://www.example.com/?i=something&blow=blala&MobileDevice=1
gehtmöglicher weiseNICHT
http://www.dexus1985.tk/ext.php?MobileDevice=1&url=http://www.example.com/?i=something&blow=blala
GEHT:
http://www.dexus1985.tk/ext.php?MobileDevice=1&url=http%3A%2F%2Fwww.example.com%2F%3Fi%3Dsomething%26blow%3Dblala
Ich habe es nun nicht getestet, aber wollte aus Erfahrung bei Ähnlichen Funktionen diesen Hinweis geben.
EDIT:
weNN ihr die Links eingebt werdet ihr sehen das die ORGINAL URL nie unter $_GET[URL] ohne URLENCODE erscheinen wird... wenn Sie mehr als 1 GET Parameter enthält!
Beitrag zuletzt geändert: 6.2.2012 16:53:58 von dexus85 -
Danke,
habe auch danach gesucht :D
Man kennt es ja auch von ebay oder so
Pc . ebay .de
Iphone whatever: ebay.de = m.ebay.de
Die erkennen sowas dann auch.
Und wie oben gesagt muss du einfach nur den UserAgent auslesen.
Mfg. -
hackyourlife schrieb:
Und was ist so schwer, das so zu machen?
Dann verwend halt statt
so was wie$_GET['u']
.$_SERVER['QUERY_STRING']
Dabei muss nichts encoded/decoded werden.
Aufgerufen wird das dann so:seite.php?http://geh/dort/hin
Da gibt es kein Problem mit urlencode, da ja der Query-String selbst die URL ist.
Es können aber keine weiteren Parameter angegeben werden. -
Hallo dexus85. Sorry das ich so doof frage, aber ich verstehe jetzt nicht wieso du mir eine neue Version andrehen willst?
Was spricht gegen das von aklasse? -
weissertiger2 schrieb:
Nichts. Das ist bis jetzt auch der beste Weg. Wichtig dabei ist aber, dass der GET-Parameter URL-Encoded wird!
Was spricht gegen das von aklasse?
aklasse schrieb:
Soweit ich das gesehen habe decodiert der Browser solche Parameter beim anzeigen soweit wie möglich. Geschickt wird der Parameter dann wieder codiert.
Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded. -
hackyourlife schrieb:
Nichts. Das ist bis jetzt auch der beste Weg.hackyourlife schrieb:
Das heisst also soviel wie, ich kann es so lassen wie es momentan ist. Oder?
Wichtig dabei ist aber, dass der GET-Parameter URL-Encoded wird! [..]
Soweit ich das gesehen habe decodiert der Browser solche Parameter beim anzeigen soweit wie möglich. Geschickt wird der Parameter dann wieder codiert.
Etwas anderes:<?php $mobile = "http://www.mobiler.user.de"; //Mobile Hinweisseite $url = $_GET['u']; //Ziel URL holen $useragent = $_SERVER['HTTP_USER_AGENT']; //User Agent auslesen //Riesieger Ausdruck zum überprüfen if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) { //Mobil header('Location: '.$mobile); //auf die mobile Hinweisseite weiterleiten } else { //Desktop header('Location: '.$url); //auf die angegebene URL weiterleiten } ?>
Gibt es hierbei Sicherheitsbedenken?
Beitrag zuletzt geändert: 11.2.2012 16:07:10 von weissertiger2 -
weissertiger2 schrieb:
Das Einzige was nicht 100% sicher ist: es kann eine beliebige URL aufgerufen werden. Wenn irgendwer einen Link auf dieses Script und als URL eine bösartige Seite an jemanden schickt der sich nicht auskennt, glaubt der, dass es sich um DEINE Seite handelt, die sicher ist. Dann macht er den Link auf und wird auf die bösartige Seite weitergeleitet.
Gibt es hierbei Sicherheitsbedenken?
Deshalb solltest du prüfen welche URL angegeben wird (ob es sich auch um deine Seite dabei handelt). -
hackyourlife schrieb:
Okay, danke viel mal für die Info .
weissertiger2 schrieb:
Das Einzige was nicht 100% sicher ist: es kann eine beliebige URL aufgerufen werden. Wenn irgendwer einen Link auf dieses Script und als URL eine bösartige Seite an jemanden schickt der sich nicht auskennt, glaubt der, dass es sich um DEINE Seite handelt, die sicher ist. Dann macht er den Link auf und wird auf die bösartige Seite weitergeleitet.
Gibt es hierbei Sicherheitsbedenken?
Deshalb solltest du prüfen welche URL angegeben wird (ob es sich auch um deine Seite dabei handelt). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage