php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.09.2005, 17:24  
Gast
 
Beiträge: n/a
Standard [Erledigt] Cookies & Sessions. Seite funktioniert nur mit Reload

Hi,

ich hab ein Script das bisher nur mit Sessions arbeitete so umgeschrieben das nun zusätzlich auch Cookies funktionieren. Alles getestet, alles wunderbar.

Bis auf einen etwas merkwürdigen Fehler. Wenn ich die Seite in einem neuen Browser-Fenster öffnen will bekomme ich nur eine weiße Seite. Mit Reload geht dann alles wunderbar. Auch wenn ich zwischenzeitlich eine andere Seite öffne kann ich problemlos zurückkehren...

Kennt evtl. irgendwer das Problem? Kann auch gerne den Code posten, aber dachte ich hör erstmal so..

Danke,
~Dia

Nur für den Fall das jemand die Idee hat das es ein Cashe-Fehler ist:
Das sollte eigentlich schon behoben sein:
Code:
Header('Cache-Control: no-cache, must-revalidate, max_age=0, post-check=0, pre-check=0');
header ("Pragma: no-cache");
header ("Expires: 0");
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.09.2005, 19:36  
Gast
 
Beiträge: n/a
Standard

Ja, ich weiß, mir selber antworten is... Oh well..

Hab das Problem mit nem Auto-Refresh umgangen, würd aber trotzdem gerne wissen was es war. Bin ziemlich sicher es hatte mit dem Cache zu tun, aber ich hab alle Variationen probiert die ich finden konnte und - nix...

~Dia
  Mit Zitat antworten
Alt 17.09.2005, 23:39  
Gast
 
Beiträge: n/a
Standard

Zitat:
ich hab ein Script das bisher nur mit Sessions arbeitete so umgeschrieben das nun zusätzlich auch Cookies funktionieren
hattest du vorher ini_set("session.use_cookies", "0");
oder ist es ein eigenes sessionhandling ?

das das php-interne sessionhandling per default immer versucht auf cookie zurückzugreifen ( lassen wir mal "trans sid" ausser acht )

die infos sind etwas zu dürftig um a) eine antwort geben zu können
selbst b) vermutungen anzustellen
  Mit Zitat antworten
Alt 18.09.2005, 00:07  
Gast
 
Beiträge: n/a
Standard

Ok, erklär ich's mal etwas genauer. Als ich das vorhin reingestellt hab war ich ziemlich festgefahren in dem Problem und hab mich wohl etwas blöde ausgedrückt..

Das ursprüngliche Script benutze Session im Sinne von $_SESSION. Jemand hatte mich gebeten es so zu ändern das man automatisch wieder eingeloggt wird wenn man schonmal da war. Als hab ich 'n Cookie mit netter langer Laufzeit eingebunden. (Zusätzlich zum alten Script.)

Im Grunde check ich beim aufrufen der Seite ob das Cookie da is, wenn ja benutze die Daten aud $_COOKIE und übergib sie an $_SESSION, wenn nicht soll das ursprüngliche Handling genutzt werden. Also annonym bis zum Einloggen per Formular und nach dem schließen is allse wieder weg. (Das Script war nicht von mir und ich wollte nicht zu viel verändern im Falle jemand auf die Idee kommt ein update oder 'n bug-fix einzuspielen..)

Des Problem war/ist das der Browser anscheinen trotz header die Seite noch immer aus dem Cache zu laden versucht. Beim ersten Aufruf geht nix, nach nen Refresh is alles ok.

Momentan siehts so aus: Nich schön aber wie gesagt ich wollte nicht zu viel am Original ändern.
Code:
<?php
session_start();
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

include ("config.php");
include ($databasepath."/dbconfig.php");

if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass']))
{
    $cpenname = $_COOKIE['cookname'];
    $cpassword = $_COOKIE['cookpass'];
    $cookie = "1"; // Pass and Username ok.
    /* Confirm that username and password are valid */
    $result = mysql_query("SELECT password FROM ".$tableprefix."fanfiction_authors WHERE penname='$cpenname'");
    if(!$result || (mysql_numrows($result) < 1))
    {
        $cookie = "0"; //Indicates username failure
    }
    $passwd = mysql_fetch_array($result);
    if($passwd[password] != $cpassword)
    {
        $cookie = "0"; //Password and Username confirmed
    }
}
/* User not logged in */
else
{
   $cookie = "0";
}

if ($cookie == "1" && $_SESSION['loggedin'] != "1")
{
        $_SESSION['penname'] = $_COOKIE['cookname'];
        $_SESSION['uid'] = $_COOKIE['cookuid'];
        if(isset($skinnew))
        {
                unset($_SESSION['userskin']);
                $_SESSION['userskin'] = "$skinnew";
        }
        $_SESSION['loggedin'] = "1";
        $_SESSION['adminloggedin'] = $_COOKIE['cookadminloggedin'];
        header('refresh: 0; url=/efiction/');
}

if ($_SESSION['loggedin'] == "1")
{
        $userpenname = $_SESSION['penname'];
        $useruid = $_SESSION['uid'];
        $skin = $_SESSION['userskin'];
        if(isset($skinnew))
        {
                unset($_SESSION['userskin']);
                $_SESSION['userskin'] = "$skinnew";
        }
}
.......
Das hier geht jetzt auch wegen dem "header('refresh..') Eintrag. Ich bin aber sicher es sollte auch ohne den irgendwie zu machen sein.
  Mit Zitat antworten
Alt 18.09.2005, 00:48  
Gast
 
Beiträge: n/a
Standard

ich kann es ehrlich gesagt nicht ganz nachvollziehen ( eventuell sollt ich auch mal etwas schlafen )
doch eines würd ich noch gerne sagen ( da ich keine ahnung der einstellungen in der php.ini hab, welche benutzt wird )
mal versucht: ?

session_cache_limiter('nocache');
session_start();

// .....

wobei ehrlich gesagt nocache die default einstellung ist .... aber man weiss ja nie

viele grüsse
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei richtiger Eingabe Daten an nächste Seite versenden xx_heidi_xx PHP Tipps 2008 49 27.05.2008 14:56
Sessions, wie funktioniert das eigentlich genau? tinchen PHP Tipps 2008 7 08.10.2007 15:06
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Cookies, Sessions, Login-Fehler PHP Tipps 2006 1 23.03.2006 12:59
[Erledigt] Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Nach Auswahl, reload der Seite HTML, Usability und Barrierefreiheit 3 01.03.2005 16:51
Cookies auslesen funktioniert nicht... PHP Tipps 2004-2 2 25.12.2004 14:00
sessions: registrieren funktioniert nur nach reload PHP-Fortgeschrittene 2 03.11.2004 18:17
[Erledigt] Sessions: Cookies mit Zertifikat PHP-Fortgeschrittene 0 16.09.2004 22:01
PhP seite funktioniert nicht auf Linux Server Server, Hosting und Workstations 10 01.09.2004 22:49
seite blinkt beim reload und link klick PHP Tipps 2004 3 25.08.2004 09:27
Wie kann ich ohne Reload der Seite eine SqlAbfrage ändern PHP Tipps 2004 10 20.08.2004 15:52
blöde sessions =) PHP Tipps 2004 2 13.08.2004 17:55
Cookies in Sessions umwandeln PHP Tipps 2004 1 04.07.2004 16:09
[Erledigt] PHP Eine neue PHP seite automatisch öffnen PHP Tipps 2004 1 19.06.2004 12:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php cookie neu laden, php session nach reload weg, session neu laden, header (\cache-control: no-cache, must-revalidate, max_age=0\);, if(!(isset($_session[\skin\]))) {, session.use_cookies funktioniert nicht, php seite auto reload einstellen, cookies auslesen reload, php session nur nach reload, website funktioniert nur bei refresh, session php setzen ohne reload, seite nach aufruf refresh cookie, automatisches reload php session, cookie expire 0 funktioniert nicht, php session neu laden, php kein get nach refresh, cookie erst nach reload, php sessions reload, nach cookie reload, not reload php

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.