🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #220435

Re: dostaje blad zwiazany z tym, ze sesje tworze w klasie

#220435
From: Mariusz Chwalba
Date: Mon, 07 Sep 2009 07:06
41 lines
2504 bytes
On Thu, 03 Sep 2009 16:32:32 +0200, emila <warunek@poczta.onet.eu> wrote:

> Mariusz Chwalba pisze:
>> On Thu, 03 Sep 2009 15:34:57 +0200, dziobacz <aaabbbcccdaabb@gmail.com>  
>> wrote:
>>  [...]
>>> session_start();
>>> $koszyk = klasaKoszyk::getInstance();
>>  To chyba nie jest kompletny kod, prawda? W tym miejscu za każdym razem
>> inicjowałbyś sesję ponownie.
> w którym miejscu??

W getInstance(). PHP sam z siebie jest bezstanowy, więc private static
$koszyk_na_zakupy przy każdym wywołaniu skryptu będzie pusty. Wywoła
zatem konstruktora, który zaś nadpisze $_SESSION['koszyk'].

On Thu, 03 Sep 2009 16:12:43 +0200, dziobacz <aaabbbcccdaabb@gmail.com>  
wrote:

> Nie, ten kod jest kompletny - tzn. mam pare drobnych rzeczy jeszcze,
> ale sa one nieistotne.  Odnośnie session_register() - to nie
> korzystam, nie wiem nawet co to jest, ale z tego co wlasnie
> przeczytalem to nie zaleca sie tego uzywac, wiec chyba dobrze robieTak  
> czy siak nie rozumiem dlaczego dostaje ten blad.

W jakiś sposób przypisujesz $koszyk do $_SESSION['koszyk']. Jeżeli nie
sam, to PHP robi to za Ciebie. Będę strzelał w register_globals w php.ini
ustawiony na "true". Przy drugim wywołaniu skryptu przypisuje on ci do
$kosztyk automatycznie $_SESSION['koszyk']. Gdy Twój getInstance zwraca
nowy klasaKoszyk, przypisujesz go zatem nie do zwykłej zmiennej, ale do
zmiennej sesyjnej. Stąd przy następnym wywołaniu w $_SESSION['koszyk'] masz
nie tablicę, a obiekt.

Dla apache register_globals wyłączysz tworząc plik .htaccess (z kropką) o
treści:

php_flag register_globals off

HTH,
-- 
Mariusz 'koder' Chwalba
Technical Details
Message-ID: <op.uzvko4mya6rut4@koder>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
References: <2ebaa9a3-80d1-43af-9af0-1c3f506292ba@e11g2000yqo.googlegroups.com> <op.uzooploma6rut4@koder> <h7ok1u$d1e$1@news.onet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not-for-mail
From: "Mariusz Chwalba" <mariusz@chwalba.net>
Newsgroups: pl.comp.lang.php
Subject: Re: dostaje blad zwiazany z tym, ze sesje tworze w klasie
Date: Mon, 07 Sep 2009 09:06:30 +0200
Organization: unorganized
Lines: 41
Message-ID: <op.uzvko4mya6rut4@koder>
References: <2ebaa9a3-80d1-43af-9af0-1c3f506292ba@e11g2000yqo.googlegroups.com> <op.uzooploma6rut4@koder> <h7ok1u$d1e$1@news.onet.pl>
NNTP-Posting-Host: 91.207.243.244
Mime-Version: 1.0
X-Trace: news.onet.pl 1252307190 24264 91.207.243.244 (7 Sep 2009 07:06:30 GMT)
X-Complaints-To: niusy@onet.pl
NNTP-Posting-Date: Mon, 7 Sep 2009 07:06:30 +0000 (UTC)
User-Agent: Opera Mail/10.00 (Linux)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit