Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mechanizm sesji
Forum PHP.pl > Forum > PHP
Loped
Witam. Zrobiłem mechanizm sesji jak w http://artykuly.zyxist.com/czytaj.php/wlasny_mechanizm_sesji

teraz mam taki problem. W pliku head.php (plik od lewej częsci strony i center) dałem kod z index.php. Wyświetla mi zawartosć tylko wyskakuje mi error z request.php.

Kod
Fatal error: Cannot red in /virtual/a/c/...l/session/request.php on line 3


Linia 3 to "{". Nie wiem w czym lezy problem. Dodaje, ze plik head.php jest includowany.

zawartość index:

Kod
<?php
    try
    {
                include('includes/head.php');
require('./common.php');
    
        if($session -> getUser() -> isAnonymous())
        {
            echo '<p>Witaj nieznajomy,
            <a href="login.php">Zaloguj sie</a>!</p>';    
        }
        else
        {
            echo '<p>Witaj, '.$session -> getUser() -> getLogin().'!
            Ostatnio odwiedziles nas '.
            $session -> getUser() -> getLastvisit().'!
            (<a href="login.php">Wyloguj sie</a>)</p>';
        }
    
        echo 'To sa dane dostepne dla wszystkich.
        <a href="secure.php">Tutaj sa dane
        dostepne dla zalogowanych</a>.';
    }
    catch(PDOException $exception)
    {
        echo 'Blad bazy danych: '.$exception->getMessage();
    }


?>
<?php
        include('includes/foot.php');
?>
wookieb
Co nam po indexie skoro blad jest w request.php
Loped
Zawartość request.php :

Kod
<?php
    class httpRequest
    {
        private $ip;
        private $browser;
    
        public function __construct()
        {
            $this -> ip = $_SERVER['REMOTE_ADDR'];
            $this -> browser = $_SERVER['HTTP_USER_AGENT'];        
        } // end __construct();    

        public function getIp()
        {
            return $this -> ip;
        } // end getIp();

        public function getBrowser()
        {
            return $this -> browser;
        } // end getBrowser();
    }
?>
wookieb
Może plik źle wrzucił się na serwer. Wrzuć go jeszcze raz u mnie jestok.
Loped
Plik dobrze się wrzucił. Np. jak w index zaincluduje head i foot to jest ok, ale jak w head chce dodac aby obok w panelu było:

Kod

     try
     {
              
require('./common.php');
    
         if($session -> getUser() -> isAnonymous())
         {
             echo '<form method="POST" action="login.php">
<table cellpadding="6" cellspacing="0" width="224">

<div align="center">
Login:
<input type="text" name="login" maxlength="32" size="17">

Hasło:
<input type="password" name="haslo" maxlength="32" size="17">


<input type="submit" value="Zaloguj"></table></form>';    
         }
         else
         {
             echo '<p>Witaj, '.$session -> getUser() -> getLogin().'!
             Ostatnio odwiedziles nas '.
             $session -> getUser() -> getLastvisit().'!
             (<a href="login.php">Wyloguj sie</a>)</p>';
         }
    
         echo 'To sa dane dostepne dla wszystkich.
         <a href="secure.php">Tutaj sa dane
         dostepne dla zalogowanych</a>.';
     }
     catch(PDOException $exception)
     {
         echo 'Blad bazy danych: '.$exception->getMessage();
     }


?>


To wywala mi ten błąd.
Zyx
Na przyszłość kopiuj pełne komunikaty błędów (nie wspominając już o wyzwaniu ich przetłumaczenia na polski) - dobre 10 minut myślałem, co to za błąd "Nie można czerwony", zanim się zorientowałem, że tam chyba było "Cannot redeclare httpRequest". Oznacza on, że próbujesz po raz drugi załadować kod klasy httpRequest, co w PHP jest niedozwolone i nie dziw się, że tak jest, kiedy ten plik najpierw próbujesz załączyć w head.php, a potem jeszcze raz w common.php. Błąd leży w całości po Twojej stronie, bo nie masz przyjętej żadnej spójnej konwencji ładowania plików. A z tego rodzą się właśnie takie problemy...
Loped
No tak... udało mi sie rozwiazać ten problem ;P. Teraz mam takie pytanie... Chce zrobić licznik aby pokazywało mi ilość zarejestrowanych. Aby ten licznik się opierał na tym mechanizmie sesji. Bo mam kod:

Kod

           $w = mysql_query ("SELECT COUNT(*) FROM users");
              $l = mysql_result($w, 0);
                  echo '
<center>Mamy '.$l.' zarejestrowanych użytkowników.</center>';


lecz nie idzie go nigdzie wstawić. Prosze o pomoc.
erix
Cytat
lecz nie idzie go nigdzie wstawić. Prosze o pomoc.

No CTRL+C, CTRL+V, jak nie idzie nigdzie wstawić? Sprecyzuj, co masz na myśli.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.