Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> klasa do obslugi sesji
donmateo
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.08.2008

Ostrzeżenie: (0%)
-----


witam
stworzyłem sobie klasę do obsługi sesji i teraz przy jej wywołaniu:

Kod
include_once('klasy/session.inc.php');
$session=new Sesja;


wywala błąd, że nagłówek już został wysłany do przeglądarki. Co wysyła ten nagłówek? Czy robi to funkcja include? Klasa session.inc.php nie przekazuje do przeglądarki żadnego tekstu więc nie rozumiem co sie dzieje :-)

I teraz drugie pytanie.

Problem rozwiązałem włączając buforowanie:

Kod
ob_start();
include('klasy/session.inc.php');
$session=new Sesja;
ob_end_clean();


Czy jest jakieś inne rozwiązanie mojego problemu?
Go to the top of the page
+Quote Post
em1X
post
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


eh a może byś pokazał co tam napisałeś.. wróżki to my nie jesteśmy


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
donmateo
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.08.2008

Ostrzeżenie: (0%)
-----


Cytat(ja @ 31.08.2008, 22:39:00 ) *
Klasa session.inc.php nie przekazuje do przeglądarki żadnego tekstu

to raczej powinno Ci wystarczyć i oszczędź sobie zwrotów z wróżką. Jak nie znasz rozwiązania to po co piszesz?

session.inc.php:
Kod
<?php
   class Sesja
   {
       private $session=array();
       public function __construct()
       {
           session_start();
       }
       public function __set($nazwa, $wartosc)
       {
           $_SESSION[$nazwa]=$wartosc;
       }
       public function __get($nazwa)
       {
           return $this->session[$nazwa]=$_SESSION[$nazwa];
       }
    }
   ?>
Go to the top of the page
+Quote Post
merk
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 7
Dołączył: 31.05.2006

Ostrzeżenie: (0%)
-----


Hej,

W podanym kodzie brak nawiasów jak tworzysz obiekt
  1. <?php
  2. $session=new Sesja; // jest
  3. $session=new Sesja(); // powinno być
  4. ?>


Sprawdz też czy nie masz jskiś spacji/enterów po znaczniku zamykającym php "?>", w pliku z klasą sesji
dobrym pomysłem jest też zrezygnowanie ze znacznika zamykającego (nie jest on konieczny)

Ten post edytował merk 1.09.2008, 11:16:33


--------------------
Kwatery prywatne
Go to the top of the page
+Quote Post
donmateo
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 10.08.2008

Ostrzeżenie: (0%)
-----


właśnie nie mam żadnej spacji ani innych dodatkowych znaków. Próbowałem nawet bez znacznika kończącego php i nic ( nie wydaje mi się to zbyt poprawne).
A jeśli tworzymy obiekt klasy i nie przekazujemy konstruktorowi żadnych danych to wydaje mi sie że nawiasy nie są potrzebne ( mogę się mylić :-) ). Mimo wszystko obiekt klasy jest tworzony, moge na nim operować, ale tak jak pisałem wyskakuje niskopoziomowy błąd, że nagłówek już został wysłany. Tylko przez co?
Go to the top of the page
+Quote Post
em1X
post
Post #6





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

Ostrzeżenie: (0%)
-----


Cytat(merk @ 1.09.2008, 12:15:45 ) *
Hej,

W podanym kodzie brak nawiasów jak tworzysz obiekt
  1. <?php
  2. $session=new Sesja; // jest
  3. $session=new Sesja(); // powinno być
  4. ?>


mylisz się.. to nie Java, a php dopuszcza brak nawiasów.


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
merk
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 7
Dołączył: 31.05.2006

Ostrzeżenie: (0%)
-----


Heh, przyznaje racje, nawiasy nie sa wymagane.

A wracając do tematu może sprawdź zawartośc bufora?
echo "-".ob_get_contents()."-";


--------------------
Kwatery prywatne
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:05