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 ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken 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

Antwort
 
Themen-Optionen Ansicht
  #21  
Alt 16.12.2005, 00:02:14
compuulli compuulli ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 8
AW: Session-Variable wird nicht übernommen

Mein Problem ist ähnlich gelagert, leider helfen mir die Hinweise hier bisher nicht.

Die genutzen Browser (IE FireFox) unterstützen Cookies, die SessionID bleibt bei jedem Seitenaufruf erhalten.

Trotzdem verschwindet beim Seitenwechsel mein Objekt aus der Session. Auch eine testweise angelegte Variable verschwindet aus der Session.

An den Einstellung in der php.ini kann es glaube ich ebenfalls nicht liegen.

Hier zur Information:
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

Habe eine Startseite aus der ich über Includes einzelne Seitenteile für den Aufbau zusammenbastle.

Wenn jemand etwas einfällt, würde ich mich freuen davon zu lesen:)!
Mit Zitat antworten
  #22  
Alt 16.12.2005, 01:27:25
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 74
Beiträge: 4.001
AW: Session-Variable wird nicht übernommen

Zitat:
Zitat von compuulli
Mein Problem ist ähnlich gelagert, leider helfen mir die Hinweise hier bisher nicht.
Deine Infos helfen ebenfalls nicht.
Windows oder Linux?
PHP3, 4 oder 5?
Modul oder CGI?
register_globals On oder Off?
open_basedir gesetzt?
Falls ja: befindet sich der session.save_path mit in der Verzeichnisliste?
Hast Du auch ein Script?
Mit Zitat antworten
  #23  
Alt 16.12.2005, 10:47:25
compuulli compuulli ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 8
AW: Session-Variable wird nicht übernommen

Läuft als Modul nicht als CGI

Geändert von compuulli (16.12.2005 um 10:55:05 Uhr)
Mit Zitat antworten
  #24  
Alt 16.12.2005, 10:50:12
compuulli compuulli ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 8
AW: Session-Variable wird nicht übernommen

Sorry, war wohl etwas spät gestern!

Linux,
php-Version 4.3.6
register_globals ON
open_basedir no value no value
session.save_path /tmp /tmp


PHP-Code:
//index.php
<?php
// starten der Session
session_start();
// ausgabe zur Kontrolle
echo session_id();
// Klasse für die Session
include './KLASSE/NUTZER.php';

//je nachdem, welcher Parameter übergeben wird, werden verschiedene
//Seiteninhalte geladen.
if ($nextside=="") {
    include 
'header.html';
    include 
'leftside.html';
    include 
'centerside.html';
    include 
'rightside.html';
}
elseif (
$nextside=="anmeldung") {
    include 
'header.html';
    include 
'leftside.html';
    
// die centesideanmeldung teilt die Anmeldung dabei in Schritte auf!
    
include 'centersideanmeldung.php';
    include 
'rightside.html';
}
 
?>

centersideanmeldung.php
PHP-Code:
// im ersten Schritt wird das Objekt noch nicht benötigt!
if($schritt==1){

    include 
'anmeldenschritt1.php';

}
elseif (
$schritt==2) {
    
//im Schritt 2 wird jetzt ein Nutzer angelegt.
    
$neuernutzer = new NUTZER;
    
    
$neuernutzer->setAnrede($anrede);
    
$neuernutzer->setFirmenname($firmenname);
    
$neuernutzer->setVorname($vorname);
    
$neuernutzer->setName($name);
    
$neuernutzer->setStrasse($strasse);
    
$neuernutzer->setPlz($plz);
    
$neuernutzer->setOrt($ort);
    
$neuernutzer->setEmail($email);
    
$neuernutzer->setTelefon($telefon);
    
$neuernutzer->setFax($fax);
    
$neuernutzer->setMobiltel($mobiltel);
    
    echo 
get_class($neuernutzer);
    
// Der Nutzer wird in der Session registriert!
    
if(! session_register($neuernutzer)){
        echo 
"Nutzer wurde nicht in der Session gespeichert!";
    }
    
// Der Nutzer durchleuft jetzt einen test, ob Daten i.O. sind
    
if($neuernutzer->testNutzerdaten()){
        
//echo "SCHRITT 2";
        //ist dies der Fall, kommt er hier an. (OBJEKT EXISTIERT in Session)
        
include 'anmeldenschritt2.php';
    }
    else{
        
//ist dies nicht der Fall, kommt er hier an (OBJEKT EXISTIERT in Session)
        
include 'anmeldenschritt1.php';
    }
    
    
    
}
elseif(
$schritt==3){
    
//Beim nächsten Seitenaufruf, wenn der Test erfolgreich war, wird
   // Schritt 3 geladen. Dann verschwindet des Objekt aus der Session!
   // Ebenso verschwindet das Objekt auf der Startseite also Index o. Paras

    // Kontrolle ob Login noch frei und Passwörter übereinstimmen!

    //wenn ja soll dies erfolgen
    
include 'anmeldenschritt3.php';
}
else{

  include 
'anmeldeneinloggen.php';
}

 
?> 
Hoffe dass ist jetzt präziser DANKE!

Ach ja, open_besedir dient doch dazu den Zugriff auf ein bestimmtes Verzeichnis zu beschränken oder?
Dann kann dies doch mit der Session nicht zusammenhängen oder täusche ich mich?

Geändert von compuulli (16.12.2005 um 11:06:21 Uhr)
Mit Zitat antworten
  #25  
Alt 16.12.2005, 16:07:50
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 74
Beiträge: 4.001
AW: Session-Variable wird nicht übernommen

Zitat:
Zitat von compuulli
register_globals ON
[...]
Hoffe dass ist jetzt präziser DANKE!
Jou.

Komplettes EDIT:
Dein Script kann so nicht funktionieren. Du speicherst mit session_register ein Objekt in der Session. Das klappt so nicht.

- stell um auf register_globals = Off
- wenn Du unbedingt ein Objekt verwenden willst, dann beachte das:
29.13. Wie speichere ich Objekte in Sessions?
http://www.php-faq.de/q/q-sessions-objekte.html

- btw: Arrays lassen sich sehr bequem in der Session ablegen:
PHP-Code:
session_start();
$_SESSION $_POST

Geändert von meikel (†) (16.12.2005 um 16:21:52 Uhr)
Mit Zitat antworten
  #26  
Alt 16.12.2005, 17:37:47
compuulli compuulli ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 8
AW: Session-Variable wird nicht übernommen

HAB DIE LÖSUNG :)

Eigentlich müsste ich mich schämen, aber Du hast mich auf die richtige Fährte gebracht, auch wenn Dein Lösungsansatz nicht richtig war.

Aus früheren Projekten wusste ich, dass man auch ganze Objekte in der Session speichern kann, ohne das diese in ein Array umgewandelt werden müssen.

2 Fehler haben sich jetzt in meinem Script eingeschlichen.

1. Fehler
session_register ist falsch, habe $neuernutzer anstatt 'neuernutzer' übergeben.

2. Fehler
Die Klasse muss vor dem session_start() mit include eingelesen werden.

register_globals ist wieder ON

Deine Lösung war zwar nicht richtig, hat mich aber auf meine eigene Dummheit hingewiesen. Viel mir nach deiner letzten Antwort hier wie Schatten von den Augen.

Danke für die Hilfe!
Manchmal ist man einfach so verbohrt, dass man nicht darauf kommt:)

Geändert von compuulli (16.12.2005 um 17:40:03 Uhr)
Mit Zitat antworten
  #27  
Alt 16.12.2005, 18:45:02
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 74
Beiträge: 4.001
AW: Session-Variable wird nicht übernommen

Zitat:
Zitat von compuulli
Aus früheren Projekten wusste ich, dass man auch ganze Objekte in der Session speichern kann, ohne das diese in ein Array umgewandelt werden müssen.
Aus eigener Erfahrung: Es bringt mir nix, Objekte in der Session zu speichern, auch wenn es möglich ist. Ich verwende Template-, DB-, Auth- und Sessionklasse incl. der jeweiligen Modulklassen für den geforderten Request. Die Templateklasse arbeitet mit assoziativen Arrays sehr effizient.

Zitat:
Deine Lösung war zwar nicht richtig,
Sie ist anders, aber nicht falsch. Ich verwende grundsätzlich Parameter-Arrays, weil die sich wesentlich bequemer als Objekte verarbeiten lassen.
Mit Zitat antworten
  #28  
Alt 16.12.2005, 23:16:16
compuulli compuulli ist offline
Anfänger
 
Registriert seit: Dec 2005
Beiträge: 8
AW: Session-Variable wird nicht übernommen

Da treffen dann wohl 2 Philosophien aufeinander.

Ich für meinen Teil arbeite lieber mit Objekten. Bin ich von Java her gewohnt.

Deine Lösung, konnte mein Problem allerdings nicht beseitigen, da es nicht an register_globals gelegen hat und auch nicht daran, dass ich ein Objekt in der Session speichern wollte. Ich habe beide Varianten ausprobiert.

Es war einfach nur das falsche übergeben der Variablen an die Session. Eigentlich ein echter Anfängerfehler. Dieser Fehler und das zu späte includen der Klasse war das eigentliche Problem an meinem Script.

Trotzdem bin ich für die Tips dankbar, Sie haben mich zum nachdenken angeregt und fließen vieleicht in Zukunft in mein Programm ein. Das Forum hier hat mir beim Stöbern schon geholfen.

Also Danke nochmals für die Tips und die Hilfe!
Mit Zitat antworten
  #29  
Alt 17.12.2005, 03:05:06
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 74
Beiträge: 4.001
AW: Session-Variable wird nicht übernommen

@compuulli
> Da treffen dann wohl 2 Philosophien aufeinander.

Philosophie? Ich bin nur ein schreibfauler Hund, der Objekte wie Bausteine verwendet. Ein normales PHP Script muß unter Last in max. 50 ms das letzte Byte zum Client geschickt haben. Eigentlich schon zuviel: bei 100 gleichzeitigen Zugriffen würde das schon stolze 5s dauern.

> Es war einfach nur das falsche übergeben der Variablen an die Session.

Beachte bitte das:
http://de.php.net/session_register

und das auch:
http://test.php-help.info/session-7.1/ register_globals = Off
http://test.php-help.info/session-7.2/ register_globals = On

Ich hatte mal eine längere Diskussion mit einem Fragesteller, der sich darüber beklagt hatte, daß Formularvariable auf einmal die Werte aus der Session beinhalteten.

Geändert von meikel (†) (17.12.2005 um 03:05:37 Uhr)
Mit Zitat antworten
  #30  
Alt 21.12.2005, 12:32:19
Zudecke Zudecke ist offline
Junior Member
 
Registriert seit: Jun 2004
Ort: Weiden i.d.Opf.
Alter: 44
Beiträge: 315
AW: Session-Variable wird nicht übernommen

Hi,
ich bins nochmal...
Momentan erfolgt die Session-Übergabe per URL. An den Stellen, wo es nötig ist, übergebe ich die SID-Konstante. Dem alten "Problemrechner" ist das so recht, da funktioniert es. Aber irgendwo da draususen gibt es einen PC, auf dem es nicht funktioniert. In Der DB werden die Session-Daten von diesem Rechner nicht gespeichert. Bei allen anderen PC's funktioniert es aber bisher. An was könnte das noch liegen? Bitte Hilfe, Danke.

Wie darf ich eigentlich diesen Code verstehen?

PHP-Code:
header('Location: http://host/script.php?' 
  (
SID == '' AND ini_get('session.use_trans_sid')) 
    
session_name() . '=' session_id() ); 
Wird session_name() und session_id() angefügt, wenn SID und session.use_trans_sid leer bzw. 0 sind und ansonsten wird SID angefügt, oder ist das nur eine Überprüfung von SID und wird diese gar nicht angefügt, wenn sie nicht leer ist? Sorry, aber diese Schreibweise ist mir nicht so vertraut.

Geändert von Zudecke (21.12.2005 um 12:56:58 Uhr)
Mit Zitat antworten
Antwort


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
Ergebniskennung über Session Variable an andere Seiten weitergeben pumuckl PHP Grundlagen 3 23.06.2004 12:18:55
Variable in Session speichern Taresto PHP für Fortgeschrittene und Experten 2 25.05.2003 16:22:02
Variable wird von insert nicht übernommen paul123 PHP für Fortgeschrittene und Experten 4 26.01.2003 11:27:39
URL mit Präfix und Variable im Speicher ??? ben PHP für Fortgeschrittene und Experten 1 15.06.2002 22:45:08
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 13:28:52 Uhr.


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


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