Umschalten Von der Mobilen Version Ihrer Webseite (Desktop-Version)
Ich verwende diesen code, um direkt die Benutzer von der desktop version auf meine mobile Website.
<?php
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/android.+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|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|\-[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|yas\-|your|zeto|zte\-/i',substr($useragent,0,4)))
header('Location: http://mywebsite.com/mobile');
?>
möchte ich geben den Nutzern die option, das Umschalten in die desktop-version von der mobilen website, aber dieser code leitet Sie zurück an die mobile-site. Ich Frage mich, wenn ich kann, erstellen Sie eine if-Anweisung zwingen Sie den browser, um zu bleiben auf dieser Seite. zum Beispiel, wenn ich einen link zurück von mobilen website-Nutzung www.mywebsite.com?device=desktop und ändern Sie den code zu erkennen, die url. mein wissen über PHP ist begrenzt, so dass jede Hilfe wäre sehr geschätzt werden.
LÖSUNG:
** Ich habe versucht, zu verwenden session-Funktion, wie es wurde vorgeschlagen, in den Kommentaren, aber ich hatte Problem mit mobilen Geräten. es schien, dass einige mobile Browser nicht verarbeitet Sitzung sehr gut.
** I verwendet Cookies statt und mit Hilfe dieser post war in der Lage, das Problem zu lösen. Unten ist der code, den ich verwende.
* * * ANMERKUNG: Sie können ändern Sie die Erkennung von code und Zeit für setcookie, um Ihre Bedürfnisse anzupassen
<?php
if (isset($_COOKIE['nomobile'])) {
$version = "desktop";
} else {
if (preg_match('/iPhone|(...etc...)/', $_SERVER['HTTP_USER_AGENT'])) {
$version = "mobile";
}
if ($version == "mobile") {
header('Location: http://yourwebsite.com/mobile');
}
?>
- Und Sie können diesen code verwenden, um erstellen Sie die cookie
<?php
setcookie('nomobile', 'true');
header('Location: http://yourwebsite.com');
?>
- Sind Sie vertraut mit session-Variablen oder cookies? Diese könnten für Sie arbeiten.
- Bitte legen Sie niemals "gelöst" in den Titel. Einfach posten Sie Ihre Lösung unten als Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn der Benutzer klickt auf den "Full-Site" - link, können Sie übergeben Sie eine variable an PHP indem er den URL. Hier ist ein Beispiel, wie der HTML-link würde so Aussehen wie auf der Handy-Seite:
In PHP die variable, die Sie übergeben werden gespeichert in
$_GET['v']
('v' steht für version, aber die Benennung ist willkürlich). In Ihrem PHP-code, müssen Sie zunächst prüfen, ob$_GET['v']
ist sogar bei allen. Wenn es ist setzen, dann müssen Sie prüfen, ob oder nicht es ist auf 'desktop'. Wenn beide wahr sind, dann sollte man Sitzung Variablen, so dass, wenn der Benutzer die Seite aktualisiert, Sie werden nicht automatisch auf die mobile Website wieder.Nun müssen Sie die session-variable, um zu sehen, ob oder nicht, sollten Sie zum umleiten des Benutzers. Wieder, müssen Sie zuerst überprüfen, dass
$_SESSION['v']
ist auf alle. Wenn es nicht legen, dann sollten Sie zum umleiten des Benutzers. Wenn es ist setzen, dann müssen Sie prüfen, ob oder nicht es ist auf 'desktop'. Wenn es nicht auf 'desktop', dann sollten Sie zum umleiten des Benutzers. Hier ist, was der code würde wie folgt Aussehen:Eines der schönen Dinge über PHP ist, dass es behandelt wird-Sitzungen für Sie, aber Sie müssen explizit sagen, PHP zu tun. Sie tun dies, indem Sie die
session_start()
Funktion an der Spitze der jeder Seite, dass muss Teil der Sitzung. In diesem Fall müssten Sie einesession_start()
- Anweisung am oberen Rand der desktop-Website als auch die mobile Website.mit $_GET Sie können die Variablen in den query_string (die ?Hallo=foo&bar=weltweit mit urls). Mit $_GET['device'] Sie können explizit die ?device=desktop.
Fragen wir: wenn die variable nicht gesetzt ist, oder die variable ist nicht desktop(wenn er gesetzt ist) leiten wir Sie auf die mobile Seite.
EDIT:
Um dies zu verbessern, speichern Sie diese in einer SESSION-variable (sessions gestartet wird, wenn Sie öffnen Sie eine Seite und wird nur gelöscht, wenn Sie den browser schließen):
Fügen Sie einfach einige Artikel und ändern Sie den code: