• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP und Cookies

maria1

Mitglied
Hallo,

Zuerst die Frage ob es überhaupt sinn mach und Userfreundlich ist.

Ich habe eine Homepage die auch auf Mobilen Geräten verfügbar ist also eine eigene Mobile Version.
Nun kommt der User mit nem Handy zb. auf die Homepage und wechselt da er ein Handy hat
zur Mobile version.
Soll ich nun einen Cookie ablegen sodass im Cookie eben steht das der User mit einem Mobile Gerät
unterwegs ist und ihn dann gleich beim aufruf der Homepage auf die Mobile Seite weiterleiten ?

Sinnvoll ?

Ich dachte an eine Daten namens switch.php .
Die links zum Versionswechsel sehen dann so aus

switch.php?version=mobile
switch.php?version=desktop

Wie man einen Cookie ablegt weiß ich , in der switch.php muss ich ja nur die variable "version" abfragen, den
cookie eintragen und dann per header weiterleiten oder ?

Problem ist nur das hier:
Code:
$version = $_COOKIE['mobile_or_mobile_cookie'];




if($version=="mobile"){
header('Location: http://example.at/mobile');
}
if($version=="desktop"){
header('Location: http://example.at/');
}

Diese Datei binde ich in die Homepage ein.
Nun fragt er ab welche version im Cookie eingetragen ist.
Problem ist das dies zu einer Endlosschleife führt und ich die Homepage nicht mehr aufrufen kann,
eben weil zuviele Anfragen gesendet wurden...


switch.php
Code:
$version = $_GET['version'];


if ($version=="desktop")
{ 
setcookie ("mobile_or_mobile_cookie", "desktop", time() + 3600);  
print $_COOKIE['mobile_or_mobile_cookie'];
header('Location: http://example.at/');
}
if ($version=="mobile")
{
setcookie ("mobile_or_mobile_cookie", "mobile", time() + 3600); 
print $_COOKIE['mobile_or_mobile_cookie'];
header('Location: http://example.at/mobile');
}

Danke euch :)
 
Werbung:
Soll ich nun einen Cookie ablegen sodass im Cookie eben steht das der User mit einem Mobile Gerät
unterwegs ist und ihn dann gleich beim aufruf der Homepage auf die Mobile Seite weiterleiten ?

Warum nicht. Dort dann vielleicht einen Link anbieten, wieder auf die normale Seite zu wechseln. Das hängt aber vielleicht auch von der Seite selbst und dem Inhalt ab.

Ich würde versuchen, überhaupt keine spezielle Mobilseite mehr anzulegen. Stichwort: „responsive design“

Problem ist das dies zu einer Endlosschleife führt und ich die Homepage nicht mehr aufrufen kann,
eben weil zuviele Anfragen gesendet wurden...

Wenn du bereits auf der korrekten Seite bist, brauchst du ja nicht mehr zur korrekten Seite weiterzuleiten, oder? Dann entsteht auch keine Endlosschleife. $_SERVER['REQUEST_URI'] könnte helfen.
 
Warum nicht. Dort dann vielleicht einen Link anbieten, wieder auf die normale Seite zu wechseln. Das hängt aber vielleicht auch von der Seite selbst und dem Inhalt ab.

Ich würde versuchen, überhaupt keine spezielle Mobilseite mehr anzulegen. Stichwort: „responsive design“



Wenn du bereits auf der korrekten Seite bist, brauchst du ja nicht mehr zur korrekten Seite weiterzuleiten, oder? Dann entsteht auch keine Endlosschleife. $_SERVER['REQUEST_URI'] könnte helfen.

Ok danke .

Nein es sollte schon eine Mobile Optimierte seite sein, da es um Videos geht. Kann ich jetzt nicht erklären..
Wenn ich fertig bin setz ich bei bedarf einen link hier rein..

PS: 9mango ? Noch nicht Online .. Wann ist es denn soweit bin schon neugierig xD
 
Werbung:
Nachtrag:

Error:
[h=1]Diese Webseite weist eine Weiterleitung auf.[/h]Die Webseite unter http://www.example.at/test/ hat zu viele Umleitungen erzeugt. Das Löschen Ihrer Cookies für diese Website oder das Zulassen von Drittanbieter-Cookies könnte das Problem möglicherweise beheben. Sollte sich das Problem damit nicht beheben lassen, liegt eventuell ein Serverkonfigurationsfehler und kein Problem mit Ihrem Computer vor.

Die normale Index.php
Code:
<?php
include('check_cookie.php');


print"Desktop";
print"<a href='switch.php?version=mobile'>Mobile Version</a>";
print $_COOKIE['mobile_or_mobile_cookie'];


?>

Die Switch.php
Code:
<?
//SWITCH.PHP


$version = $_GET['version'];


//Mobile
if($version=="mobile"){
setcookie ("mobile_or_mobile_cookie", "mobile", time() + 3600); 
print $_COOKIE['mobile_or_mobile_cookie'];
header('Location: http://example.at/test/m');
}


//Desktop
if($version=="desktop"){
setcookie ("mobile_or_mobile_cookie", "desktop", time() + 3600);  
print $_COOKIE['mobile_or_mobile_cookie'];
header('Location: http://example.at/test');
}


?>

Die Check_cookie.php
Code:
<?php
//CHECK COOKIE
$cookie = $_COOKIE['mobile_or_mobile_cookie'];


//IF COOKIE NULL
if ($cookie==""){
header('Location: http://example.at/test');
}


//IF COOKIE MOBILE
if ($cookie=="mobile"){
header('Location: http://example.at/test/m');
}


//IF COOKIE DESKTOP
if ($cookie=="desktop"){
header('Location: http://example.at/test');
}




?>

Die Index.php im ordner /m also die mobile index.php sozusagen
Code:
<?php


print"Mobile";
print"<a href='../switch.php?version=desktop'>Desktop Version</a>";
print $_COOKIE['mobile_or_mobile_cookie'];
?>

Das Problem nunja versteh ich zwar kann es aber nicht lösen.
Die check_cookie.php wird ja in der normalen index.php eingebunden, wenn ich nun auf die desktop version
wechsle dann werde ich immer weitergeleitet also sozusagen bis der Server stop sagt...
Nur wie kann ich das jetzt lösen?

Soviel funktioniert.
Ich kann wechseln, cookie wird eingetragen.
Wenn ich zur Mobile Version gehe, dann den browser schließe und die domain wieder aufrufe,
dann werde ich zur mobile seite weitergeleitet.
Nur das mit der Desktop version funktioniert nicht :(
 
Worin unterscheidet sich denn die Ansicht auf einem mobilen Gerät von dem auf einem Desktop-Rechner?
Ist ein Laptop schon ein mobiles Gerät oder etwa ein Netbook?

Der einzige Unterschied und das sagt auch Apple ist der Viewport. Das heisst man muss wie immer nur die Grösse des Viewports berücksichten, sonst nichts.
Und das macht man im CSS mit Media Queries
 
Worin unterscheidet sich denn die Ansicht auf einem mobilen Gerät von dem auf einem Desktop-Rechner?
Ist ein Laptop schon ein mobiles Gerät oder etwa ein Netbook?

Der einzige Unterschied und das sagt auch Apple ist der Viewport. Das heisst man muss wie immer nur die Grösse des Viewports berücksichten, sonst nichts.
Und das macht man im CSS mit Media Queries

Wie gesagt ich finde es so besser.
Mobile Geräte sind bei mir eigentlich Ipad, Iphone, Smartphones usw.
Netbooks oder Notebooks nicht die kommen auf die normale seite.
Wie gesagt Android und Windows Phone haben eine mangelnde Flash unterstützung.
Es geht um Videos...

Das mit dem Viewpoint weiß ich auch siehe quellcode :
Code:
<meta name="viewport" content="width=320 height=425 maximum-scale=2; minimum-scale=.9;">
<meta name="MobileOptimized" content="width" />
<meta name="HandheldFriendly" content="true" />
 
Werbung:
Zurück
Oben