SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Thema geschlossen
 
Themen-Optionen Ansicht
  #1  
Alt 12.10.2009, 16:02:03
zaphod zaphod ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 47
Beiträge: 5
Session nur teilweise

Hallo zusammen,

ich habe vor einigen Wochen die Betreuung eines Projekts übernommen, dass unter PHP 4 läuft. Durch vertragliche Gründe mussten wir auf einen neuen Server umziehen. Auf diesem läuft auch immer noch PHP4 in der Version 4.4.9
Auf dem alten Server lief die Anwendung einwandfrei, auch unter dem neuen Server läuft die Anwendung immer noch gut und stabil, nur ein Bestandteil der Anwendung arbeitet mit Sessions, und dieser läuft nicht einwandfrei.
Die Session wird ganz normal gestartet und läuft über einen mehrseitigen Dialog einwandfrei. Auf einer Seite muss auf eine Eingabe von Dritten "gewartet" werden, daher wird die Seite über den meta Tag refresh neu geladen. Jetzt passiert folgendes:
Mal wird die Datenbankabfrage ausgeführt, mal nicht??????
Die Session heisst immer gleich, die Sessionvariablen sind auch da, aber eben nicht immer. Durch testen und ausgeben lassen herausgefunden, die Session ist immer da, die dazugehörigen Variablen aber nicht.
Es macht keinen Unterschied, wenn ich den refresh rausnehme, der gleiche Effekt taucht bei F5 auf, mal da mal nicht.
Der Vollständigkeit halber, dies ist meine Session Einstellung der php.ini, sowohl aktuell als auch in der Version 4.3.2 bei der es funktioniert hat.

session
Session Support enabled
Registered save handlers files user

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
  #2  
Alt 12.10.2009, 17:32:54
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Session nur teilweise

der vollständigkeit halber: wo ist der code, der das problem erzeugt?
  #3  
Alt 12.10.2009, 18:14:14
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: Session nur teilweise

Zitat:
Die Session heisst immer gleich, die Sessionvariablen sind auch da, aber eben nicht immer. Durch testen und ausgeben lassen herausgefunden, die Session ist immer da, die dazugehörigen Variablen aber nicht.
Wenn der Browser andere/wechselnde Header sendet, kann Suhosin die Zusammenarbeit verweigern, bzw. nicht in der Lage sein die verschlüsselten Session Daten zu rekonstruieren.

Evtl liegen die Sessiondaten auch auf einem NFS Dateisystem, dann könnte das Sessionlocking auf die Nase fallen.
  #4  
Alt 12.10.2009, 20:19:36
zaphod zaphod ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 47
Beiträge: 5
AW: Session nur teilweise

Hier der Code:
PHP-Code:
include("*.php");
require_once (
"*.php");
session_start();

global 
$HTTP_SESSION_VARS;
$projekt_id $_SESSION['projekt'];
$begdat $_SESSION['begdat'];
$enddat $_SESSION['enddat'];
$kurs $_SESSION['kurs'];
$teilnehmer $_SESSION['teilnehmer']; 
Daran kann es aber meiner Meinung nicht liegen, da nur durch das Aktualisiseren die Session mal einliest und mal nicht. Ich habe auch schon versucht, sowohl include als auch require nach der session zu setzen.
Nach teilnehmer ein die() mit Ausgabe der Variablen, auch die include und die require weg, führt dazu dass bei F5 Variable da, nochmal F5 Variable weg. Kann auch mal passieren, dass fünf mal da, fünf mal weg etc.
@DokuLeseHemmung
Der Header wird immer gleich gesendet, generiert durch die SYS Variablen. Das ganze läuft auf einer Suse Linux Umgebung.
  #5  
Alt 12.10.2009, 20:22:22
zaphod zaphod ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 47
Beiträge: 5
AW: Session nur teilweise / Nachtrag

Ist übrigens in Firefox, IE und Opera so!
  #6  
Alt 12.10.2009, 20:39:28
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: Session nur teilweise

Sonderlich intensiv gehst du ja nicht auf meine Fragen/Ansagen ein....


Zitat:
Der Header wird immer gleich gesendet,
Ich meinte die Request Header, nicht die Header des Response.
Zitat:
Wenn der Browser andere/wechselnde Header sendet
Diese Header können übrigens auch durch einen Proxy oder eine Client Firewall verfälscht werden.



Dieser Code ist bedenklich:
PHP-Code:
$begdat $_SESSION['begdat']; 
$enddat $_SESSION['enddat']; 
$kurs $_SESSION['kurs']; 
$teilnehmer $_SESSION['teilnehmer']; 
Man sollte Variablen grundsätzlich anderes nennen als die Keys im Session Array. Denn sonst könnte man in die PHP4.2 Session kompatibilitäts Falle tappen.


Dieses ist ganz großer Unsinn:
PHP-Code:
global $HTTP_SESSION_VARS
Global ist an der Stelle flüssiger als Wasser.
Und $HTTP_SESSION_VARS ist hoffnungslos veraltet.

Also noch ein paar Fragen/Ansagen:
Ist Suhosin installiert?
Funktioniert das Sessionlocking?
Baue bitte error_reporting ein.
Wieso sehe ich keine Kontrollausgaben?
Warum stellst du nicht auf PHP5 um? PHP4 ist tot.
  #7  
Alt 13.10.2009, 09:05:55
zaphod zaphod ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 47
Beiträge: 5
AW: Session nur teilweise

@DokuLeseHemmung
Der Request Header ist immer gleich!
Das der Code bedenklich ist, ist mir klar, wie ich schon sagte, Projekt so übernommen.
Suhosin ist nicht installiert
Sessionlocking funktioniert
Error_reporting ohne Fehlermeldung durchlaufen
Kontrollausgaben nicht mit kopiert.
Da das Projekt unkommentiert entwickelt wurde, will der Kunde die notwendigen Kosten für einen Umstieg nicht investieren, Anwendung läuft mit PHP5 nicht.
Folgendes gestern nochmal getestet:
Eine PHP-Datei mit folgendem Inhalt, weiter nichts, ausser das noch mehr echos drinstehen:
PHP-Code:
session_start(); 
$begdat $_SESSION['begdat']; 
$enddat $_SESSION['enddat']; 
$kurs $_SESSION['kurs']; 
$teilnehmer $_SESSION['teilnehmer'];  
echo 
$begdat
Die Session wird über eine vorherige Formularseite gerfüllt, beim Erstaufruf ist die Session immer da, nach Aktualisierung mal eine leere Ausgabe, mal eine Ausgabe
  #8  
Alt 13.10.2009, 13:49:37
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 12
Beiträge: 2.269
AW: Session nur teilweise

Der Fehler kann so nicht auftreten, es sei denn es gibt eine Unpässlichkeit zwischen Dateisystem und Sessionsavehandler. Oder du zeigst hier nicht den "wahren" Code.

Wie hast du das Sessionlocking getestet?
Dabei müsste der Fehler dann auch aufgetreten sein.

Mögliche Lösungen/Wege:
1. dem Provider Bescheid stoßen. Er hat ein System mit funktionierendem Sessionhandling zur Verfügung zu stellen.
2. einen eigenen session.save_path verwenden
3. einen eigenen Handler verwenden um näher an das Problem zu kommen
  #9  
Alt 14.10.2009, 08:02:41
zaphod zaphod ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 47
Beiträge: 5
AW: Session nur teilweise

Hallo DokuLeseHemmung
Danke für deine Antwort. Es beruhigt mich ungemein, dass auchn hier die Meinung herscht, dass es den Fehler nicht geben kann. Ich habe den code genau so getestet und genau diesen Fehler.
Hatte ich noch nie, Provider sagt, würde alles funktionieren.
Danke für die Antworten.
  #10  
Alt 14.10.2009, 11:19:33
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Session nur teilweise

dann erstelle ein minimalbeispiel das den fehler reproduziert und schicke es deinem provider, dann kann der den fehler nachvollziehen.
Thema geschlossen

Stichworte
php4, session


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session wird zu früh beendet ... sk4ter PHP Grundlagen 2 15.11.2007 19:49:57
session variblen gehen verlohren - immer neue session ID xeta PHP Grundlagen 9 03.08.2006 01:50:33
Session Problem mare26 PHP für Fortgeschrittene und Experten 1 08.12.2004 14:30:39
SESSION daten gehen leider nicht verloren! - wennd as fenster geschlossen wird Phil PHP für Fortgeschrittene und Experten 3 31.03.2004 14:08:33
session überprüfen... Xantos PHP für Fortgeschrittene und Experten 4 21.05.2002 11:54:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:01:07 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt