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

Seite merken

jakestyler

Mitglied
Hallo,
ich arbeite an einer WebApp für das iPhone.
Eine Problematik mit iPhone WebApps ist, dass sie sich nicht den Zustand merken können, in dem sie zuletzt geöffnet waren.

Das heißt ich bin auf der index.php klicke auf info.php schliesse die WebApp, öffne sie wieder und bin wieder auf der index.php.

Wie würdet ihr dass am besten umgehen?
Mit Cookies? Wenn ja, wie?

Danke schonmal! :)
 
Werbung:
Werbung:
Okay unter diesen Umständen:

Du könntest in einen Verzeichnis "LastPages" eine UserId.txt (bei was komplexeren eine) md5(UserId).'.txt' abspeichern. Bei jedem Seitenaufruf, wir die aktuelle Seite dort hinein gespeichert.

Wenn der Besucher die App neu startet (z.b. index ohne Parameter aufruft), könntest du diese dann auslesen.

Hätte den Vorteil, dass dies bei einem Cookie löschen Beständigkeit hätte. Würde sicherlich auch noch andere Möglichkeiten geben, aber Performancetechnisch denke ich mal, dass dies das schnellste sein wird.

Anhang:
Aktuelle Url herausfinden - php.de
PHP: file_put_contents - Manual
PHP: file_get_contents - Manual

Grüße
 
Da ich das mit der txt-Datei nicht hinbekommen habe, erstmal folgender Ansatz:
(index.php)
PHP:
<?php $expire=time()+60*60*24*30;
if(!$_COOKIE["pageon"] == "index"){
setcookie("pageon", "index", $expire);
}
if ($_COOKIE["pageon"] == "info") {
    header('Location: info.php');
    }
    elseif ($_COOKIE["pageon"] == "settings") {
    header('Location: settings.php');
    }
    elseif ($_COOKIE["pageon"] == "music") {
    header('Location: music.php');
    }
    elseif ($_COOKIE["pageon"] == "cam") {
    header('Location: cam.php');
    }
    elseif ($_COOKIE["pageon"] == "apps") {
    header('Location: apps.php');
    }
    elseif ($_COOKIE["pageon"] == "apps_2") {
    header('Location: apps_2.php');
    }
    elseif ($_COOKIE["pageon"] == "index") {
        // mein Inhalt hier   
 }
        else {
        // mein Inhalt hier    
}
?>

Und auf jeder Seite:
PHP:
$expire=time()+60*60*24*30;
if(!$_COOKIE["pageon"] == "Seite"){
setcookie("pageon", "seite", $expire);
}

Leider funktioniert das genau einmal, will man dann aber zur Index zurück, leitet er wieder auf die davor geöffnete Seite um.
 
PHP:
if(!$_COOKIE["pageon"] == "Seite"){
setcookie("pageon", "seite", $expire);
}

Der Code wird nur einmal ausgeführt.

Du solltest nicht abfragen, ob der Cookie gesetzt ist sondern überprüfen, ob dies der erste Start ist. Wie bereits erwähnt z.b. wenn index.php ohne Parameter aufgerufen wird.
 
Werbung:

Sorry, ich habe deinen Code verstanden (habe ein isset gelesen, wo keins war)

Also ich würde wie folgt vorgehen:

$content = isset ($_COOKIE['LastPage']) ? $_COOKIE['LastPage'] : 'default';

das ganze includieren und absichern.

include ($content '.php')

Aber abprüfen vorher! Vertraue nicht dem Inhalt eines Cookies! Suche dazu mal nach Whitlist include.
 
Zurück
Oben