Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesja $_SESSION["####"]
Babcia@Stefa
post 2.08.2006, 19:00:05
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Witam, mam pewien problem z sesją w sęsie że gdy np. loguje się z jednej strony która ma np w skrypcie panelu admina
  1. <?php
  2. if(!isset($_SESSION["auth_username"])) {
  3. ?>


a ma hasło np 123/123 a druga strona ma taką samą sesję tylko hasło 1/1 to gdy na jednej się zaloguje to na drugą mogę wejść bez logowania worriedsmiley.gif

(Niewiem czy na innym hoscie też tak jest)

  1. <?
  2. if(!isset($_SESSION["auth_username"])) {
  3. echo "Najpierw się zaloguj!";
  4. }
  5. else {
  6. ?>
  7. ...
  8. <?
  9. }
  10. ?>


I jak zrobić aby pole
  1. <?php
  2. if(!isset($_SESSION["-->auth_username<--"])) {
  3. ?>
było konfiguralne przez config.php?

Fragment logowania:

  1. <?php
  2. require_once("../config.php");
  3.  
  4. $login = $adminid;
  5. $haslo = $adminpass;
  6.  
  7. if (!$_POST["username"] or !$_POST["password"]) {
  8. echo "<a href='index.php'>Nie wypełniłe&para; wszystkich pól!</a>";
  9. }
  10.  
  11. if ($_POST["password"] == $haslo && $_POST["username"] == $login) {
  12. echo '<br><br><br><br><br><br><br><br><br><br><br><br><br><center>Prosze czekac...</center>';
  13. $_SESSION["auth_username"] = $_POST["username"];
  14. echo "<script type='text/javascript'>function go() { location.href='main'; }</script>";
  15. echo "<script type='text/javascript'>window.onload=go</script>";
  16. ?>


@Edit
Why niema odpowiedzi? to takie trudne sad.gif

Dziękuję, Babcia@Stefa

Ten post edytował Babcia@Stefa 2.08.2006, 19:21:01


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
MagnuM
post 3.08.2006, 01:15:34
Post #2





Grupa: Zarejestrowani
Postów: 108
Pomógł: 0
Dołączył: 7.05.2004
Skąd: Jelenia Góra

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


Nie ma odpowiedzi, ponieważ pytanie jest ciężko sformułowane. Np. w ogóle nie wiem o co chodzi w pierwszej części postu. Mogę się tylko domyślać.

Powodem może być to, że nie przekazujesz SESSION_ID w url, czy przez ciastko, czy jakkolwiek inaczej. Poszukaj na forum jak wykonać prawidłowe uwierzytelnianie.


--------------------
Go to the top of the page
+Quote Post
rama
post 3.08.2006, 02:14:59
Post #3





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 25.02.2006
Skąd: Trójmiasto

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


Racja, ciężko jest zrozumieć o co chodzi, aczkolwiek postaram się odpowiedzieć, bazując na moich spekulacjach smile.gif

1. Zacznę od pierwszej kwestii, czyli ogólnie o sesji/sesjach...
Gdy użytkownik wywoła stronę na której uruchamiany jest mechanizm sesji, to tworzona jest unikalna (jedna) sesja, gdzie można zapisywać dane i owa sesja jest dostępna w obrębie serwera/serwisu (chyba trochę wyolbrzymiłem tak pisząc).
Wracając teraz do Twojego problemu, to jeśli użytkownik zaloguje się na jednej stronie i przejdzie na inną - na przykład tworzony przez Ciebie panel administracyjny - to również będzie miał do niej dostęp, ponieważ zakładam, że mechanizm weryfikacji użytkownika jest taki sam, czyli sprawdzenie wyłącznie czy istnieje $_SESSION['auth_username'].
Rozwiązaniem tego problemu może być napisanie "kodu", który będzie odpowiedzialny za sprawdzanie uprawnień do strony i wówczas jeden użytkownik będzie mogł wejść na jedną i drugą stronę, a inny user wyłącznie na jedną smile.gif

Przykład (koncept):
  1. <?php
  2. /* Założenie: Skrypt logowania dodaje do sesji "wartość uprawnienia", którą będzie $_SESSION['is_admin'],
  3.  * posiadająca dwie wartości: true - jesli ma uprawnienia; false - jeśli ich nie posiada.
  4.  */
  5.  
  6. if(is_set($_SESSION['is_admin']) && $_SESSION['is_admin'] == true) {
  7. /* kod strony*/ 
  8. } else { 
  9. /* nie masz uprawnien */ 
  10. }
  11. ?>


2. Aby jakakolwiek zmienna należąca do sesji (w tym owy przykład z $_SESSION['auth_username']) była konfiguralna z pliku config.php musisz najpierw uruchomić system sesji (session_start()) i dopiero po tym zincludować plik konfiguracyjny, który będzie miał już zapewniony dostęp do sesji.
Go to the top of the page
+Quote Post
Athlan
post 3.08.2006, 11:03:22
Post #4





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


1. A może on po prostu ma sesje o tym samym identyfikatorze?

2. Może miej swoje haslo w pliku config.php i includuj je, po czym sprawdzaj : if($_SESSION['IDENTYFIKATOR'] == $configPass)

gdzie $configPass to hasło z konfigu

pozdrawiam smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Babcia@Stefa
post 3.08.2006, 16:44:23
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Diękuję za odpowiedź, myślę że odpowiedź z przed ostatniego i ostatniego postu będzie poprawnie działać winksmiley.jpg

@Athlan

Ale to hasło to nazwa sesji?

@edit

Coś niedziała tak :/

Ten post edytował Babcia@Stefa 3.08.2006, 18:37:11


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
Go to the top of the page
+Quote Post
rama
post 4.08.2006, 11:09:41
Post #6





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 25.02.2006
Skąd: Trójmiasto

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


Cytat(Babcia@Stefa @ 3.08.2006, 17:44 ) *
Coś niedziała tak :/

To znaczy? smile.gif

PS Podczas debugowania skryptu warto na początku owego skryptu załączyć inny tryb wyświetlania błędów, czyli error_reporting
  1. <?php
  2. error_reporting( E_ALL );
  3. ?>
Go to the top of the page
+Quote Post
Athlan
post 4.08.2006, 12:37:50
Post #7





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
@Athlan

Ale to hasło to nazwa sesji?


@Babcia@Stefa - nie... to jej wartość, np:

$_SESSION['haselko'] = 'TOKIO HOTEL';

btw: sory że wzomniałem o tym zespole ale mam zamółe i nic lepszego nie umiemlem wymyśleć tongue.gif

pozdro smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:22