Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co zrobić żeby COOKIES były widoczne
Forum PHP.pl > Forum > Przedszkole
inusia
Problem wygląda następująco:

Wyswietlam formularz logowania. Dane z formularza pobieram metodą post i sprawdzam czy podane dane identyfikacyjne znajduja sie w bazie. Weryfikuję czy uzytkownik jest administratorem czy nie. Ustawiam odpowiednio cookies dla użytkownika zalogowanego niezależnie od uprawnień oraz drugie cookie dla odróżnienia admina od nie_admina.

Mam drugi plik w którym istnieje formularz dodawania nowego przepisu kulinarnego do bazy i wrzucający podany obrazek jedzonka na serwer. Chcę aby ten formularz był dostępny tylko jesli uzytkownik jest zalogowany. Jesli do formularza probuje sie dostac ktos niezalogowany wyswietla sie stosowny komunikat.

Drugi plik dolączam do pierwszego za pomocą include "dodaj_przepis.php" w miejscu weryfikacji czy uzytkownik jest administratorem czy zwyklym zalogowanym uzytkownikiem.

Loguje sie wiec, z bazy pobierane sa dane, wyswietla mi moj login i grupe uzytkownikow do jakiej naleze (administratorzy lub inni uzytkownicy) ale dolaczany formularz dodawania rzepisu zawsze wyswietla komunikat o tym, ze jestem niezalogowana. Jak sobie z tym poradzic? Dodam ze przy wykorzystaniu sesji sytuacja sie powtarza.


1. plik logowanie.php zawiera:

  1. <?
  2. if ($zaloguj)
  3. {
  4.    $login = ($_POST['user']);
  5.    $haslo = ($_POST['password']);
  6.    $polacz = mysql_connect (&#092;"localhost\", \"uzyt\", \"haselko\") or die(\"Blad przy polaczeniu do bazy danych\");
  7.    if ( !empty ($polacz) )
  8.    {
  9.             if ( mysql_select_db (&#092;"moja_baza\", $polacz) == True )
  10.             {
  11.                 $get_password = &#092;"SELECT usersid FROM users WHERE login='$user' AND password=sha1('$haslo')\";
  12.                 $zapytanie = mysql_query ($get_password, $polacz) or die (&#092;"Blad sprawdzenia tozsamosci uzytkownika\");
  13.                   $num = mysql_num_rows($zapytanie);
  14.                 if($num == 1)
  15.                 {
  16.                     echo(&#092;"Witaj: $user \");
  17.                     setcookie(&#092;"login\",\"ZALOGOWANY\", time()+900, '/');
  18.                     $get_admin = &#092;"SELECT usersid FROM users WHERE login='$user' AND password=sha1('$haslo') AND czyadmin='y'\";
  19.                     $zapytanie2 = mysql_query ($get_admin, $polacz) or die (&#092;"Błąd zapytania do bazy\");
  20.                     $num2 = mysql_num_rows ($zapytanie2);
  21.                     if ($num2 == 1)
  22.                     {
  23.                         echo (&#092;"Należysz do grupy ADMINISTRATORÓW<br>\");
  24.                         setcookie(&#092;"kto\",\"admin\", time()+900, '/');
  25.                         include &#092;"panel_admina.php\";
  26.                     }
  27.                     elseif($num2 == 0)
  28.                     {
  29.                        echo(&#092;"Należysz do grupy: ZAREJESTROWANYCH UŻYTKOWNIKÓW<BR>\");
  30.                        setcookie(&#092;"kto\",\"user\", time()+900, '/');
  31.                        include &#092;"dodaj_przepis.php\";
  32.                     };
  33.                 }
  34.                 else  echo('Wpisałes niepoprawne dane użytkownika');
  35.         }
  36.         else
  37.         {
  38.           print( &#092;"Blad wyboru bazy danych\" );
  39.         }
  40.     }
  41.     mysql_close($polacz);
  42. }
  43. else
  44. {
  45. ?>
  46.  
  47. <html>
  48. <body>
  49. <table align=\"center\" valign=\"middle\"><tr><td>
  50.     <form action=\"logowanie.php\" method=\"post\">
  51.     <table border=0 align=\"center\" valign=\"middle\">
  52.         <tr><td>
  53.         <table><tr>
  54.             <td><font face=\"arial\" size=\"3\"><b> Login: </b></font></td>
  55.             <td><input type=\"text\" maxlenght=\"15\" name=\"user\"></td>
  56.         </tr>
  57.         <tr>
  58.             <td><font face=\"arial\" size=\"3\"><b> Hasło: </b></font></td>
  59.             <td><input type=\"password\" maxlenght=\"15\"name= \"password\"></td>
  60.         </tr>
  61.         </table>
  62.         </td></tr>
  63.     </table>
  64.     </td></tr>
  65.     <tr>
  66.     <td align=right>
  67.         <input type=\"submit\" name=\"zaloguj\" value=\"Zaloguj\">
  68.         <input type=\"reset\" name=\"anuluj\" value=\"Anuluj\">
  69.     </form>
  70. </td></tr></table>
  71. </html>
  72. <?
  73. };


2. plik dodaj_przepis.php ma w składni:

  1. <?php
  2.  
  3. if ((($_COOKIE['login'] == &#092;"ZALOGOWANY\" && $_COOKIE['kto']==\"user\")) ||  (($_COOKIE['login'] == \"ZALOGOWANY\" && $_COOKIE['kto']==\"admin\")))
  4. {
  5.     if ($dodaj)
  6.     {
  7.       .................
  8.       instrukcje związane z dodawaniem przepisu do bazy i wsadzeniem obrazka na 
  9. erwer
  10.     }
  11.     else
  12.     {?>
  13.         <form action=\"dodaj_przepis.php\" method=\"post\">
  14.  
  15.             .................................
  16.             formularz dodawania przepisu
  17.             .................................
  18.  
  19.             <input type=\"submit\" name=\"dodaj\" value=\"Dodaj\">
  20.  
  21.         </form>
  22.     <?}
  23. }
  24. else echo 'NIE JESTES ZALOGOWANY';
  25. ?>


Ktoś wie, gdzie tkwi błąd? Wybaczcie ten cały wklejony kod ale inaczej nie moge tego zobrazować.
Ociu
1. Daj czas dla cookie time()+3600*24 - może być za krótki czas
2.
  1. <?php
  2. if (isset($_COOKIE['zalogowany'])
  3. ?>
powinno wystarczyć
vala
ob_start(); ?
NuLL
Najpierw małą zabawę w debuga proponuję tongue.gif

Na początku dołączanego dopisz
  1. <?php
  2.  
  3. echo '<pre>';print_r($_COOKIES);echo '</pre>';
  4.  
  5. ?>

Tam po winna się wypisać tablica dostępnych ciastek dla tego skryptu co powinno rozwiać sporo niejasności.

@vala, @inusia - zmieńcie sygnatury na zgodne z regulaminem bo chyba nie chcecie dostać ostrzeżenia za byle głupote smile.gif
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.