kostenloser Webspace werbefrei: lima-city


Handy oder Computer > Unterschiedliche Weiterleitung

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    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? :holy:

    Grüsse weissertiger2
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    aklasse schrieb:
    ..aber ich könnte die problemlos etwas beispielcode posten wenn du sagst in welcher Sprache und in welcher Form du das umsetzen willst.
    Wenn du lust und Zeit hast kann du das gerne machen, ich würde mich auf jeden Fall freuen. Sprache:
    Hhm, ich weiss nicht. Macht man das mit PHP oder mit Javascript? Ich kenne mich leider mit beiden nicht aus.

    aklasse schrieb:
    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.
    Yep, das ist mir bewusst.
    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://.....
  5. 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
  6. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    aklasse schrieb:
    Ich vermute du hast bisher keine Erfahrung mit Programmiersprachen
    Richtig vermutet :thumb:.

    aklasse schrieb:
    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?
    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.

    aklasse schrieb:
    Wenn du noch ein paar mehr Infos raus lässt könnte ich dir gerne etwas PHP schreiben.
    Das währe natürlich super. :smile:
    Was für Infos brauchst du denn noch?
  7. 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/
  8. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    Hallo aklasse
    Ich danke dir viel, viel mal. Ich habe es getestet und es funktioniert Perfekt. Genau so habe ich es mir vorgestellt :thumb:.

    Danke viel mal für die Mühe :smile:
  9. 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
  10. 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!
  11. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    aklasse schrieb:
    Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded. Trotzdem ein guter Hinweis!
    Dann verwend halt statt
    $_GET['u']
    so was wie
    $_SERVER['QUERY_STRING']
    .
    Dabei muss nichts encoded/decoded werden.
    Aufgerufen wird das dann so:
    seite.php?http://geh/dort/hin
  12. 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


    geht möglicher weise NICHT

    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
  13. 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.
  14. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    hackyourlife schrieb:
    Dann verwend halt statt
    $_GET['u']
    so was wie
    $_SERVER['QUERY_STRING']
    .
    Dabei muss nichts encoded/decoded werden.
    Aufgerufen wird das dann so:
    seite.php?http://geh/dort/hin
    Und was ist so schwer, das so zu machen?
    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.
  15. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    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?
  16. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    weissertiger2 schrieb:
    Was spricht gegen das von aklasse?
    Nichts. Das ist bis jetzt auch der beste Weg. Wichtig dabei ist aber, dass der GET-Parameter URL-Encoded wird!

    aklasse schrieb:
    Ein Browser encoded die Eingabe automatisch und andersherum wird es serverseitig auch automatisch Decoded.
    Soweit ich das gesehen habe decodiert der Browser solche Parameter beim anzeigen soweit wie möglich. Geschickt wird der Parameter dann wieder codiert.
  17. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    hackyourlife schrieb:
    Nichts. Das ist bis jetzt auch der beste Weg.
    hackyourlife schrieb:
    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.
    Das heisst also soviel wie, ich kann es so lassen wie es momentan ist. Oder?
    <?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
    }
    ?>
    Etwas anderes:
    Gibt es hierbei Sicherheitsbedenken?

    Beitrag zuletzt geändert: 11.2.2012 16:07:10 von weissertiger2
  18. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    weissertiger2 schrieb:
    Gibt es hierbei Sicherheitsbedenken?
    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.
    Deshalb solltest du prüfen welche URL angegeben wird (ob es sich auch um deine Seite dabei handelt).
  19. Autor dieses Themas

    weissertiger2

    Kostenloser Webspace von weissertiger2

    weissertiger2 hat kostenlosen Webspace.

    hackyourlife schrieb:
    weissertiger2 schrieb:
    Gibt es hierbei Sicherheitsbedenken?
    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.
    Deshalb solltest du prüfen welche URL angegeben wird (ob es sich auch um deine Seite dabei handelt).
    Okay, danke viel mal für die Info :smile:.
  20. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!