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

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.02.2002, 18:07:32
septicus septicus ist offline
Anfänger
 
Registriert seit: Feb 2002
Beiträge: 31
Variablen aus Session auslesen

Hi,
ich habe ein Problem (ich schäme mich dafür, eine solche dumme Frage zu stellen, aber sorry, ich komme einfach nicht weiter und sitze schon seit 2 Tagen daran):

in einer Datei starte ich eine Session und registriere darin Variablen, die ich über die URL quer durch alle aufgerufenen Dateien mitschleppe.

Nun möchte ich in einer anderen Datei die in der Session festgelegten Variablen wieder auslesen.
Ich weiss, dass man das irgendwie mit session-decode() macht.
Ich komme leider nur nicht drauf, was ich dieser Funktion als Übergabeparameter übergeben muss.
Sorry, Damir, aber Dein beispiel bei der Funktion hat mir auch nicht weitergeholfen, da in diesem alles in einer Datei passiert: Session starten, Variablen registrieren, Variablen wieder auslesen.

Konkret möchte ich also wissen, was ich anstelle von $database (im Beispiel) übergeben muss (wie schon gesagt, die session wurde in einer anderen Datei gestartet und in der anderen Datei wurden auch die Variablen registiert).

THX

Mike
Mit Zitat antworten
  #2  
Alt 23.02.2002, 22:17:38
Matthias Matthias ist offline
Moderator
 
Registriert seit: Jan 2002
Ort: CologneCity
Alter: 47
Beiträge: 484
Du brauchst dich nicht zu schämen. Es gibt keine Dummen fragen.

Wenn du auf die neue Datei linkst dann gib das wie folgt an:

<a href="datei.php?<?PHP echo session_name()."=".session_id(); ?>">Link</a>

Wenn du dann in der datei.php die session startest, dann hast du schon alle Variablen zur Verfügung.

Je nachdem wie der Server (PHP) konfiguriert wurde kannst du auch session_name()=session_id() weglassen. Man kann das in der phpinfo() nachschaun. Weiß das aber nicht auswendig. Werde da morgen mal nachsehen.
Mit Zitat antworten
  #3  
Alt 23.02.2002, 23:47:47
Damir Damir ist offline
Administrator
 
Registriert seit: Jan 2002
Ort: Köln
Alter: 53
Beiträge: 1.276
Hi,
ein wenig kuerzer.

Falls short tag enabled:
<a href="datei.php?<?=SID?>">Link</a>

ansonsten

<a href="datei.php?<?php echo SID?>">Link</a>

Beispiel:
Datei index.php
Code:
<?PHP

session_start();

if(!session_is_registered('zaehler')){
	session_register('zaehler');
	$zaehler = 1;
}
else{
	$zaehler++;
}

echo 'Aktueller Counterstand: ' . $zaehler;
?>
<br><br>
<a href="seite2.php?<?=SID?>">Seite 2</a>

Datei seite2.php
Code:
<?PHP

session_start();

if(!session_is_registered('zaehler')){
	session_register('zaehler');
	$zaehler = 1;
}
else{
	$zaehler++;
}

echo 'Aktueller Counterstand: ' . $zaehler;
?>
<br><br>
<a href="index.php?<?=SID?>">Seite 1</a>
Beachte aber, dass Du auf jeder Seite wo Du die Session benoetigst auch session_start() aufrufst. Weiterhin ist unbedingt darauf zu achten, dass vor session_start() nichts anderes zum Browser gesendet wird, da es sonst zu einer Fehlermeldung kommen wird.

Bye Damir
Mit Zitat antworten
  #4  
Alt 24.02.2002, 11:50:12
septicus septicus ist offline
Anfänger
 
Registriert seit: Feb 2002
Beiträge: 31
Dankeschön.. das waren genau die Infos, die ich gebraucht habe :-)

Ein fettes THX,

Mike
Mit Zitat antworten
  #5  
Alt 28.02.2002, 23:06:29
ThomasK ThomasK ist offline
Anfänger
 
Registriert seit: Feb 2002
Alter: 43
Beiträge: 12
Ist das richtig???

An Damir:

Ich habe mal dein Script ausprobiert. Nun ist mir aufgefallen, dass in der URL die SessionID zwei mal vorkommt (ich habe Cookie ausgeschaltet, um es so zu testen).

Hier mein Link:

http://localhost/seite2.php?PHPSESSID=9b598a19093714a5c3d47518d6818f3f&PHPSESSID=9b598a 19093714a5c3d47518d6818f3f

Ist das normal?

Mit bestem Dank im Voraus

Thomas K.
Mit Zitat antworten
  #6  
Alt 28.02.2002, 23:13:15
ThomasK ThomasK ist offline
Anfänger
 
Registriert seit: Feb 2002
Alter: 43
Beiträge: 12
Session - Fehlermeldung

Immer wenn ich etwas mit Session mache, erscheint eine Fehlermeldung, die ich mir nicht erklären kann. Ich denke, es muss an meine Einstellungen liegen, denn ich habe das obige Script 1:1 übernommen.

Die Fehlermeldung:
Warning: open(/tmpsess_9b598a19093714a5c3d47518d6818f3f, O_RDWR) failed: m (2) in c:foxservwwwindex.php on line 3


Was kann das sein?

Vielen Dank
Mit Zitat antworten
  #7  
Alt 28.02.2002, 23:23:32
ThomasK ThomasK ist offline
Anfänger
 
Registriert seit: Feb 2002
Alter: 43
Beiträge: 12
session - zweiter Fehler

Ich habe nun das Script ein wenig verändert. Ich habe auf der zweiten Seite folgendes gemacht....

(...)
if(!session_is_registered('zaehler')){
session_register('zaehler');
$zaehler = 33; //anstatt 1 => 33
(...)

Ich interpretiere es so, dass wenn session_register('zaehler') noch nicht ausgeführt wurde, wird es auf der zweiten Seite noch gemacht. Nun habe ich es aber auf der ersten Seite schon ausgeführt. Wieso setzt er mir es auf der zweiten Seite nochmals neu? (Ich erhalte bei der Ausgabe von zaehler den Wert 33).

Mit bestem Dank

Thomas K.


PS: Ich entschuldige mich für die Flut an Beiträge.
Mit Zitat antworten
  #8  
Alt 28.02.2002, 23:42:32
septicus septicus ist offline
Anfänger
 
Registriert seit: Feb 2002
Beiträge: 31
Hi Thomas,

ich versuche mal mein spärliches Wissen in Sachen PHP und Session zur Lösung deiner Probleme beizutragen:

---------------------------------------------------------------------------
Ich habe nun das Script ein wenig verändert. Ich habe auf der zweiten Seite folgendes gemacht....

(...)
if(!session_is_registered('zaehler')){
session_register('zaehler');
$zaehler = 33; //anstatt 1 => 33
(...)

Ich interpretiere es so, dass wenn session_register('zaehler') noch nicht ausgeführt wurde, wird es auf der zweiten Seite noch gemacht. Nun habe ich es aber auf der ersten Seite schon ausgeführt. Wieso setzt er mir es auf der zweiten Seite nochmals neu? (Ich erhalte bei der Ausgabe von zaehler den Wert 33).
-------------------------------------------------------------

Wenn ich das richtig mitbekommen habe, fehlt in dem Skript die Auflösung der Variablen mittels session_decode(), um an den bereits gespeicherten Wert zu kommen:

Datei 2:
<?PHP

session_start();

if(!session_is_registered('zaehler')){
session_register('zaehler');
$zaehler = 1;
}
else{
session_decode();
$zaehler++;
}

echo 'Aktueller Counterstand: ' . $zaehler;
?>
<br><br>
<a href="index.php?<?=SID?>">Seite 1</a> ?>

##################################

Antwort auf nächsten Beitrag:

Zitat:
-------------------------------------------------------------------------
Immer wenn ich etwas mit Session mache, erscheint eine Fehlermeldung, die ich mir nicht erklären kann. Ich denke, es muss an meine Einstellungen liegen, denn ich habe das obige Script 1:1 übernommen.

Die Fehlermeldung:
Warning: open(/tmpsess_9b598a19093714a5c3d47518d6818f3f, O_RDWR) failed: m (2) in c:foxservwwwindex.php on line 3
--------------------------------------------------------------------------
Zitat Ende

Der in deiner php.ini angegebene Pfad zur Speicherung der Sessions auf dem Server existiert nicht.
Schau mal in deiner php.ini nach, welcher Pfad hinter

session.save_path =

steht. Dieser muss existieren, und die Rechte müssen auf Schreibrechte gesetzt sein.

##################################

Antwort auf nächsten Beitrag:

Zitat:
--------------------------------------------------------------------------
Ich habe mal dein Script ausprobiert. Nun ist mir aufgefallen, dass in der URL die SessionID zwei mal vorkommt (ich habe Cookie ausgeschaltet, um es so zu testen).

Hier mein Link:

http://localhost/seite2.php?PHPSESSI...d47518d6818f3f

Ist das normal?
--------------------------------------------------------------------------
Zitat Ende

wenn das in der php.ini so eingestellt ist, dann werden lokale Links auf den Seiten (also links ohne "http://" am Anfang) automatisch mit der SessionID ergänzt. Wenn du nun das noch von Hand anhängst (bspw: seite2?SID ) dann schreibt der Server da erstens die von dir von Hand erzwungene SessionID rein und dann hängt er sie noch automatisch an.

Abhilfe: einfach nicht von Hand anhängen :-)

######################

Ich hoffe, meine Antworten sind nicht ganz falsch. Ich hatte in den letzten Tagen die gleichen Probs und hab sie durch dieses Forum und aufmerksamem Studium verschiedener Quellen lösen können und mir wie oben beschrieben erklären können.

Good Luck!
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:35:16 Uhr.


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


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