Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dziwny problem z logowaniem...
dargoth
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.11.2005

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


witam...

sprawa wyglada w ten sposob ze mam forme w niej wpisuje login i pass... pod ta forma jest jeden link jezeli nie jestesmy zalogowani jako admin... jak jestesmy adminem to mamy jeszcze drugi link... oczywiscie forma takze powinna znikac jesli sie zalogoalismy... niestety tak sie nie dzieje...

pierwsze moje pytanie brzmi... jezeli mam w bd w polu rola wpisane "admin" wpisuje to do sesji
  1. <?php
  2. $query = "SELECT role FROM xuser WHERE login='" . $_POST['login'] . "' AND password='" . md5($_POST['pass']) . "'";
  3.  
  4. $p = mysql_query($query) or die (mysql_error(error));
  5.  
  6. $count = mysql_num_rows($p);
  7.  
  8.  
  9.  
  10. if ($count == 1){
  11. $_SESSION['role']= $p;
  12. echo "zalogowales sie. kliknij <a href='index.php'>tutaj</a> by powrocic";
  13. }
  14. ?>


dopiero wczoraj wykombinowalem ze skoro to nie chce zadzialac (znaczy ta znikajaca forma) to powinienem wyswietlic sobie co mam w zmiennej $_SESSION['role'] no i wynik mnie szczerze mowiac zaskoczyl.. ale najpierw kod jaki mam...:

  1. <?php
  2. echo $_SESSION['role'] . "<br>";
  3. echo isset($_SESSION['role']);
  4. ?>


pozniej jest if w zaleznosci czy w tej zmiennej jest guest (jak sie nie powiedzie logowanie to podpisuje pod ta zmienna wlasnie guesta) a pozniej mam kolejnego ifa dla admina:

  1. <?php
  2. if ($_SESSION['role'] == 'admin'){
  3. echo "<a href='addnewsform.php'>dodaj newsa</a><br>";
  4. }
  5. ?>


w "wyniku" wypisuje mi ze $_SESSION['role'] to 0 (jak sie zaloguje jako admin.. w pozostalych przypadkach mam guest) ale mimo ze ta zmienna == 0 to wchodzi do tego ifa z adminem...:/ natomiast jezeli sie zaloguje jako gosc (podam zly login/haslo) to mam tam wpisane guest ale do ifa z guestem nie wchodzi :/

zatem moje pytanie.. co robie zle? o co w tym chodzi? jak to poprawic?:/

z gory dzieki za odpowiedz...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dargoth
post
Post #2





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 19.11.2005

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


teraz rozumiem... ale nie zmienia to faktu ze to co napisales dziala... bo...:

sprawdzam czy istnieje login i czy haslo do niego pasuje... jesli tak to podpisuje role do sesji... z tego co mowisz wynika ze cos takiego:
  1. <?php
  2. if ($_SESSION['role'] == 'admin'){
  3. echo "<a href='addnewsform.php'>dodaj newsa</a><br>";
  4. }
  5. ?>

nie powinno dzialac... a dziala... bo wchodzi tutaj:

  1. <?php
  2. else{
  3. $_SESSION['role']="guest";
  4. echo "zly login lub haslo. kliknij <a href='index.php'>tutaj</a> by powrocic";
  5. }
  6. ?>

czyli podalem zly login/haslo wiec podstawia do sesji w role guesta... i pozniej mam (w index.php):
  1. <?php 
  2. echo $_SESSION['role'] . "<br>";
  3. echo isset($_SESSION['role']);
  4. if ($_SESSION['role'] == 'guest'){
  5.  ?>
  6.  
  7. KOD HTML
  8.  
  9. <?php
  10. }
  11. ?>


KOD HTML to formularz do logwania... czyli jak jestesmy gosciem to powinnien sie pojawiac a jak adminem to nie... niestety jak loguje sie jako admin to formularz nadal jest widoczny (wiem ze jestem zalogowany bo pojawia sie link "dodaj newsa")

czekam na dalsze pomysly (IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 02:50