Portal > Foren > PHP > PHP-Programmierung > foreach array und session
Antwort
 
Themen-Optionen
Alt 04.12.2006, 18:57 Nach oben    #1
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard foreach array und session

Hallo,

habe gerade was festgestellt, könnte das mal noch jemand anderes Testen ?

PHP-Code:
session_start();

/* 
 * query aus der Datenbank ....
 */
$array mysql_fetch_array($this->arrayQuery[0]);
foreach (
$array as $key => $unit) {
    
$_SESSION[$key] = $unit;
}

$_SESSION['test'] = 'test'
Müsstet aber selber mal ne query machen Also es geht um folgendes wenn die Seite aufgerufen wird so erhält es die Sessionvariable die direkt
vergeben wird hier "test" und die aus der schleife nicht !

Is das nur bei mir so ?
Oder ist oben was falsch ?

so long
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 19:25 Nach oben    #2
Jonas
 
Benutzerbild von Artemis
 
Registriert seit: 03.06.2006
Beiträge: 239
Standard

Mach einfach mal nen var_dump rein, und überprüf die Werte aus dem Query mal.
__________________
Applikations-Programmierung:
BlitzMax, BlitzPlus

Webentwicklung:
PHP, (X)HTML, CSS, JavaScript, MySQL


Artemis ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 19:47 Nach oben    #3
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Nicht nötig die Daten die da ankommen sind alle korrekt es geht alleine um
das Prozedere ... denn wenn ich es so mache gehts ja.

PHP-Code:
$obj mysql_fetch_object($this->arrayQuery[0]);

$_SESSION['test'] = $obj->test
Also so kommt die Session auch wieder an. Nur im obigen Beispiel nicht.
Fehler ausgabe -> null !

Er nimmt einfach ned mit. Ich frage mich nur warum nicht mit dem fetch_array
Beispiel !?
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!

Geändert von DasMööp (04.12.2006 um 19:50 Uhr).
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 19:50 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.471
Standard

Ein var_dump() würde ich trotzdem gerne sehen.
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 19:52 Nach oben    #5
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

büdde :

array(10) { [0]=> string(1) "1" ["user_id"]=> string(1) "1" [1]=> string(9) "127.0.0.1" ["user_ip"]=> string(9) "127.0.0.1" [2]=> string(32) "006a6f372ef7c53b19979477b503d472" ["user_session"]=> string(32) "006a6f372ef7c53b19979477b503d472" [3]=> string(1) "5" ["user_cms"]=> string(1) "5" [4]=> string(1) "0" ["user_check"]=> string(1) "0" }
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 20:00 Nach oben    #6
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Das Lustige an dem Problem Beispiel ist das er die Session ja befüllt und auch bis ende (absolut) behählt. Nur nach erneuten Aufrufen hat er nur die aus der Schleife nicht mehr in der Session gespeichert. Andere sehr wohl !

Und da komm ich nich ganz mit !?

Wollte halt etwas schreib Arbeit Sparen auch wenn es nicht sehr Sinnvoll ist, da die Daten ja doppelt drin sind, einmal alias Name und arrayId liegt aber am fetch_array (das is klar)...

Das nur nochmal falls noch nicht ganz klar ist das Problem, hat immerhin zwei Tage gedauert bis ich da drauf gekommen bin *rolleye*
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 20:29 Nach oben    #7
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Mal abgesehen davon, dass ich es etwas verwirrend finde, es ->arrayQuery zu nennen, obwohl es offensichtlich eine ressource ist, kann ich nicht ganz nachvollziehen, warum dieses Problem besteht. Zum Problem mit den doppelten Daten sei nur der Flag MYSQL_ASSOC genannt, mit dem sich dieses Problemchen beheben lässt.
Ansonsten - wie gesagt - wirkt das auf mich irgendwie komisch, da die reine Logik sagt, dass es ohne Probleme gespeichert werden müsste?!

Schonmal mit session_write_close() ausprobiert?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 21:23 Nach oben    #8
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Läuft die Session überhaupt korrekt? Also wird die SID übergeben etc.?

Füg zum Test mal folgendes ein:
PHP-Code:
sesion_start();

if (!isset(
$_SESSION['counter']))
   
$_SESSION['counter'] = 0;

echo 
$_SESSION['counter']++; 
Und, anstatt dem ASSOC-Flag kannst du auch gleich mysql_fetch_assoc() verwenden.

Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
Schonmal mit session_write_close() ausprobiert?
Brauchts ja nur vor Location-Headern.

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 22:44 Nach oben    #9
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Hi, das mit den fetch_array is klar. Ich beschäftigte mich grad 2Tg damit -> warum er das nicht macht mit dem foreach auch wenn fetch_array... doppelt belegt. (sonst halt wie gesagt assoc ... oder wie auch immer)

Zitat:
Läuft die Session überhaupt korrekt? Also wird die SID übergeben etc.?
Die Session wird komplett übergeben alles Vars und auch die Id nur eben nicht der Teiler der innerhalb des Foreach !? Bzw. am ende des Scriptes mittels

print_r($_SESSION);

gibt er diese auch noch aus.

Ich bin auch schon (3.Tag) auf der suche ob es was am Testscript gibt
der das verhindert aber leider muss ich sagen nein. Da nach dem session_start() mittels gleicher ausgabe die definierten innerhalb des foreach nicht mehr
registriert sind, andere aber sehr wohl.

Kann das nicht mal jemand mit ner testquery verifizieren (schreibt man das so ?) ...
(siehe Nachtrag)

Das ganze ist nur ein Teil eines kleinen Testprojektes, und es werden eigentlich nur Session Daten imho in dieser schleife definiert. Daher sehe ich auch nicht warum er eben normale session vars wie id oder andere weiter
besitzt, nur die aus dem foreach nicht !? *staun

todo
-> suche dannach (kann ja nicht sein das ich der erste bin)
-> weiter fehler suche
-> kleines explizites testfile

das aber erst morgen ... jetzt muss ich mal was arbeiten
schreibe wenn ich was als example zusammen habe ...

---

Zitat:
"Mal abgesehen davon, dass ich es etwas verwirrend finde, es ->arrayQuery "
Das liegt daran das es mehr query's gibt und die vorher definiert und in einem
array abgelegt sind ... zumindest in dem Testschinken ... der hoffentlich mal reift

Zitat:
"da die reine Logik sagt, dass es ohne Probleme gespeichert werden müsste?!"
jo nich !?

Zitat:
"Schonmal mit session_write_close() ausprobiert?"
morgen mal nachguggn ...

Nachtrag:
Um der Logik zu wiedersprechen mit assoc geht es ... aber warum nicht mit _array ist doch
unlogisch !? Auch wenn es keinen Sinn macht (vorerst) ... mit _array hätte er halt id und name gespeichert
...

PHP-Code:
$array mysql_fetch_assoc($this->arrayQuery[0]);

foreach (
$array as $key => $unit) { 
    
$_SESSION[$key] = $unit

__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!

Geändert von DasMööp (04.12.2006 um 22:57 Uhr).
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 22:51 Nach oben    #10
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
[...]
Zitat:
Zitat von MrNiceGuy Beitrag anzeigen
Schonmal mit session_write_close() ausprobiert?
Brauchts ja nur vor Location-Headern.

Basti
Nicht ganz korrekt. Eine Session die auf Dateien basiert hat das Problem, dass bei Framebasierten Seiten (soll es ja geben) oder bei mehrfachen parallelen Aufrufen, immer nur eine Seite zur Zeit abgearbeitet werden kann, da die Session-Datei gelocked wird. Wenn das erste Script dann fertig ist, kommt das Nächste dran und so weiter. Das verzögert den Seitenaufbau enorm, wenn der Server stark belastet wird und verhindert das parallele Laden von Webseiten. Dementsprechend macht die Funktion durchaus auch Sinn , wenn die Session ab einem bestimmten Punkt nurnoch zum Lesen, nicht aber zum Speichern benötigt wird. Braucht man sie zum Beispiel in einem Script nur zum Lesen und schreibt garnichts rein, kann man es direkt nach der Initialisierung anwenden und dann erst den Rest des Scriptes abarbeiten lassen, derweilen können parallel aufgerufene Seiten auch schon aufgebaut werden.

In meinen Augen findet diese Funktion nicht die Beachtung, die sie verdient hat.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.12.2006, 23:15 Nach oben    #11
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

Das hat nichts mit MySQL zu tun. Ich vermute, PHP bricht das Kopieren der Session-Vars ab, sobald ein Eintrag einen numerischen Index aufweist. Hängt sicher mit register_globals zusammen.

PHP-Code:
var_dump($_SESSION);

$_SESSION['foo'] = 'geht';
$_SESSION[0] = 'das nicht';
$_SESSION['bar'] = 'auch nicht';

var_dump($_SESSION); 
Sicher was im Manual darüber zu finden.

@MrNiceGuy:
Hast völlig recht - sollte hier aber keine Rolle spielen (beim Test).

Zitat:
In meinen Augen findet diese Funktion nicht die Beachtung, die sie verdient hat.
Vor allem, was den Location-Header angeht, wird sie ja oft genug ausgelassen. Aber gut, das Thema Sitzungssteuerung ist ja eh so ein Fall. Tausende von Tutorials erklären das in 3 Zeilen und gaukeln den Lesern vor, dass das alles irgendwie sicher sei.

Basti

Geändert von Basti (04.12.2006 um 23:19 Uhr).
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2006, 06:36 Nach oben    #12
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Info:

Zitat:
Für die Schlüssel des assoziativen $_SESSION-Arrays gelten die selben Beschränkungen, wie für die Bezeichnungen von regulären Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern müssen mit einem Buchstaben oder Unterstrich beginnen. Um weitere Deteils zu erhalten, siehe Abschnitt Variablen.

Falls register_globals deaktiviert ist, können nur Bestandteile des globalen assoziativen Arrays $_SESSION als Session-Variablen registriert werden. Wiederhergestellte Session-Variablen stehen nur im Array $_SESSION zur Verfügung.
Quelle

Info zu Variablen

Ich denke damit sollte es klar sein warum er das nicht macht ! , oder ...

""Wie immer man muss es halt nur Wissen. ""
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2006, 10:24 Nach oben    #13
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

...warum verlinkst du nicht das Original-Handbuch?

http://php.net/manual/en/ref.session.php

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2006, 10:27 Nach oben    #14
Verplanter Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 227
Standard

Weil ich das da grad gefunden habe und die quelle angeben wollte, ... daher...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.12.2006, 12:03 Nach oben    #15
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 826
Standard

...macht halt Sinn, direkt an der Quelle zu suchen.

dynamicwebpages:
Last updated: Mon, 30 Jan 2006

php.net:
Last updated: Thu, 28 Sep 2006

In 8 Monaten kann eine Menge passieren. *g

Basti
Basti ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


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

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 aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zend Framework - Probleme mit Zend_Controller_RewriteRouter bzw. Form der URLs Ben PEAR, PECL und Frameworks 12 24.12.2006 17:17
Suche Hilfe: Angebot und Nachfrage berechnen ljungi Plauderecke 6 17.12.2006 22:10
Array in Bezug auf ein anderes sortieren... code5 PHP-Programmierung 2 15.05.2006 15:56
Ein Array in ein Array schreiben bacarni PHP-Programmierung 2 07.02.2006 14:24
mit foreach schleife auf 4 fach verschachteltes Array zugreifen Doggi PHP-Programmierung 4 01.02.2006 15:45


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:06 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44