Benoetige Hilfe Fuer PHP-Skript (mobile_device_detect.php)

whistler

whistler

Aktives Mitglied
Thread Starter
Dabei seit
06.10.2005
Beiträge
876
Reaktionspunkte
56
hi,

ich habe mir mobile_device_detect.php von http://detectmobilebrowsers.mobi/ besorgt und muss es nun an folgendes szenario anpassen:

wenn der user auf foo.com geht und er ein handy benutzt wird er auf foo.com/mobile umgeleitet. nun ist allerdings auf foo.com/mobile ein link vorhanden, der es ihm erlaubt, auf die "volle version" der seite zurueckzukehren.

es gibt zwar ein angebliches beispiel, allerdings funktioniert dies nicht wirklich. vielleicht bin ich auch einfach nur zu unerfahren was php angeht...

hier das snippet:

PHP:
<?php

// http://detectmobilebrowsers.mobi/

require_once('mobile_device_detect.php');

// if the get value switch is sent we use it
if(isset($_GET['switch'])){
	$mobile = $_GET['switch']; // should be either 1 for true or empty for false
	setcookie('switch',$_GET['switch']); // set a cookie
	if(isset($_SERVER['HTTP_REFERER'])){ // if the referer is set send the user there
		header('Location:'.$_SERVER['HTTP_REFERER']);
		exit;
	}
}else if(isset($_COOKIE['switch'])){ // if the cookie is set use it
	$mobile = $_COOKIE['switch'];
}else{ // else use the function to detect if it's a mobile or not
	$mobile = mobile_device_detect();
}
?>

koennte mir bitte jemand helfen?


vielen dank im voraus :)
 
Danke für den Link zu diesem Mobiledetect-script :)
 
niemand, der mir helfen kann? es kann mir keiner erzaehlen, dass hier keine php-pros rumsurfen :p
 
niemand, der mir helfen kann? es kann mir keiner erzaehlen, dass hier keine php-pros rumsurfen :p

Die Frage ist unvollständig :)

Du hast zwar das Skript gepostet, nicht aber die aufrufende URL! Ist denn $_GET[] mit Werten belegt!?

Zudem ist der gegebene Link von Rhapsody ganz interessant, denn der zeigt auch einen guten Ansatz ganz ohne so ein Skript auf! Lies Dir das mal durch!
 
Die Frage ist unvollständig :)

Du hast zwar das Skript gepostet, nicht aber die aufrufende URL! Ist denn $_GET[] mit Werten belegt!?

Zudem ist der gegebene Link von Rhapsody ganz interessant, denn der zeigt auch einen guten Ansatz ganz ohne so ein Skript auf! Lies Dir das mal durch!

durchgelesen, allerdings habe ich schon eine komplett mit jqtouch erstellte Website...

Die aufrufende URL sollte "/?switch=1" bzw. "/?switch=0" sein?
 
Dann prüf doch zunächst mal, ob die if-Bedingungen korrekt abgearbeitet werden und wenn das der Fall ist, ob der Cookie gesetzt wird.
 
Und das mache ich wie? Soweit ich das mit meinem kaum vorhandenen php wissen feststellen kann, ist das von mir gepostete Script fehlerlos?
 
Naja, du hast ja am Ende eine Variable $mobile. Die hat irgendeinen Wert. 1 oder 0. Und irgendwo wird die doch weiterverarbeitet, oder? Wenn die Wertzuweisung richtig ist würde ich den Fehler bei der Weiterverarbeitung suchen.
 
Ich gehe mal nicht davon aus, dass du mir das zusammenbauen könntest?
 
meine php kenntnisse beschraenken sich auf logisches denken (aus dem englischen uebersetzen und sehen was sinn macht), von daher ist eh nicht viel mit testen ;)

trotzdem danke fuer die antwort :)
 
Mit isset() prüfst Du aber, ob die Variable gesetzt ist.
Und auch, wenn Du "/?switch=0" übergibst, ist die Variable $_GET['switch'] gesetzt.
Prüfe als lieber auf $_GET['switch'] == 1.

Das passt schon. Sonst könntest du den switch ja nie auf 0 setzen.
 
Das passt schon. Sonst könntest du den switch ja nie auf 0 setzen.

Arrggh, man sollte auch richtig lesen, bevor man postet.
:hamma:

Ich hab das fälschlicherweise so interpretiert, dass der if-Teil der Abfrage nur dann ausgeführt werden soll, wenn $_GET['switch'] auf 1 gesetzt ist.

Also, ich nehme alles zurück und behaupte das Gegenteil…
 
dank msslovi0 laeuft es nun :D

fuer alle interessierten:

PHP:
<?php
require_once('m_detect.php');

// if the get value switch is sent we use it
if(isset($_GET['switch'])) {
	$mobile = $_GET['switch']; // should be either 1 for true or empty for false
	setcookie('switch',$_GET['switch']); // set a cookie
} elseif(isset($_COOKIE['switch'])) { // if the cookie is set use it
	$mobile = $_COOKIE['switch'];
} else { // else use the function to detect if it's a mobile or not
	$mobile = mobile_device_detect(true,true,true,true,true,true,true,'http://foo.bar/mobile/',false);
}
if($mobile==true) { // check the $mobile status and redirect, regardless of the browser
	$mobile = mobile_device_detect(true,true,true,true,true,true,true,'http://foo.bar/mobile/','http://foo.bar/mobile/');
}
?>
 
Zurück
Oben Unten