Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Co zrobić żeby COOKIES były widoczne, Dołączona strona nie widzi cookies
inusia
post 8.06.2005, 17:00:08
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 30.05.2005

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


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ć.

Ten post edytował inusia 8.06.2005, 17:34:36


--------------------
------------------------------------------------------------------------
-FAKT 1: Nie ma nic gorszego od pytającego wciąż samouka --
-FAKT 2: Zadaje on pytania głupie, banalne, bez sensu---------
-ROZWIĄZANIE: Ułatw więc życie sobie i innym------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Ociu
post 8.06.2005, 19:14:14
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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ć
Go to the top of the page
+Quote Post
vala
post 8.06.2005, 19:15:41
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


ob_start(); ?


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
NuLL
post 8.06.2005, 19:25:22
Post #4





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


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


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
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:57