Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> ciastka nie wchodzą do pieca :(
aleksanderlech
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Katowice

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


Witam wszystkich,
starałem się znaleźć rozwiązanie tu na forum, ale albo nikt nie miał takiego problemu, albo nie doszukałem :(

Wygląda to tak:
Napisałem pewien projekcik w php/MySql u siebie na Windzie 98 SE, przetestowałem na serwerze HomeNetu (czyli jakis linux o ile wiem) i zadowolony z siebie przesłałem wszystko klientowi, który powiedział, że nie działa - u klienta jest RedHat.

Konkretnie, klient loguje się na stronę sklepiku i jeśli login i hasło są prawidłowe, to mu się wkłada do pieca ciasteczko zawierające uid, ważne przez 1 godzinę.

Niestety u klienta ciasteczko albo się nie wkłada w ogóle, albo traci ważność np. po 45 sekundach albo po minucie - nie ma reguły.

Czy ktoś z Was spotkał się z takimi objawami?


Będę wdzięczny za sugestie gdzie szukać błędu.

Pozdrawiam

Olek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
wirtus
post
Post #2





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 5.05.2003
Skąd: Warszawa

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


Uruchom to jeszcze raz u sibei na serwerze (HomeNet czy jakos tak), a nastepnie powiedz klientowi zeby z tego sokrzystal.

Jezeli problem sie powtarza rowniez na Twoim serwerze, tzn, ze sa to prawdopodobnie opcje zabezpieczenw jego przegladarce.

Jezeli nie, to napisz nam o tym (IMG:http://forum.php.pl/style_emoticons/default/ohmy.gif) )
Go to the top of the page
+Quote Post
scanner
post
Post #3





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




To nie jest temat na php Pro.
Go to the top of the page
+Quote Post
wirtus
post
Post #4





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 5.05.2003
Skąd: Warszawa

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


ten fakt to juz w ogole pominę, ale to niestety nie w Naszej gestii lezy....
Go to the top of the page
+Quote Post
aleksanderlech
post
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Katowice

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


Przeniose sie z problemem na forum php

pozdrawiam
Olek
Go to the top of the page
+Quote Post
Seth
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Prosze sie nie przenosic samemu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Tworzenie dwoch tych samych topicow to naruszenie regulaminu.

Jezeli uznacie, ze dany topic nie pasuje na jakims forum, dajcie znac przez PW do moderatorow.


P.S. Podrzuc kawalek kodu bo tak to mozna szukac przyczyn w fusach od herbaty (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
aleksanderlech
post
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Katowice

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


Oto kod:
oto fragment pliku login.php
Kod
if($submit)

{

$qLogin=mysql_query("select uid, login, status from gklienci where login='$login' and haslo='$password'");

          $value=mysql_fetch_row($qLogin);



          if($value[2]!='N')

          {

                 if(mysql_num_rows($qLogin))

                 {

                      if($login=='admin')

                      {

                          setcookie ("uid", $value[0],time()+3600,'/gadget_adm');

                          header("location:/gadget_adm/index.php");

                      }

                      else

                      {

                          setcookie ("uid", $value[0],time()+3600);

                          header("location:index.php");

                      }

                 }

                 else

                 {

                      $badlogin=1;

                 }

          }

          else

          {

              $nieaktywny=1;

          }

}

?>


A przy każdym wejsciu na strone jest sprawdzane czy bylo logowanie:
Kod
if(!isset($uid))

{

header("location:login.php");

}


Wylogowanie nastepuje w taki sposob:

Kod
  setcookie ("uid", $value[0],time()-3600);

  header("location:index.php");
Go to the top of the page
+Quote Post
Seth
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Cytat
A przy każdym wejsciu na strone jest sprawdzane czy bylo logowanie:
Kod
if(!isset($uid))

{

header("location:login.php");

}


Mniemam, ze chodzi o to:
[php:1:559c3e9480]if(!isset($_COOKIE['uid']))
{
header("location:login.php");
}[/php:1:559c3e9480]
:?:
Go to the top of the page
+Quote Post
aleksanderlech
post
Post #9





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Katowice

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


Dziekuje Wam za odpowiedzi, póki co nic si€ę nie zmieniło - dalej ciacha sie nie kładą.
W tej chwili jest tak, że można projekt uruchomić na serwerze linuxowym i tam działa, na tomiast nie działa na stacjach roboczych w tej samej sieci lokalnej.
Na razie - na sugestie klienta - zrezygnowalem z cookies na rzecz sesji i zobaczymy co z tego wyjdzie.

Pozdrawiam
Olek
Go to the top of the page
+Quote Post
spenalzo
post
Post #10





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


A dodaj sobie przed kodem $uid=$_COOKIE["uid"], może to pomoże.
Go to the top of the page
+Quote Post
Cudi
post
Post #11


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Prosta sprawa, u siebie masz register_globals = on a klient ma registr_globals = off. Musisz dostosować skrypt do nowych standardów (zresztą już nie takich nowych). Rozumiem że zmienne $login i $password pochodzą z formularza, więc powinieneś użyć tablicy $_POST.
Go to the top of the page
+Quote Post
aleksanderlech
post
Post #12





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 6.05.2003
Skąd: Katowice

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


Witam,
w odpowiedzi do postu Cudiego - klient tez ma register_globals na on
juz to przerabialismy.

Teraz zrobilem to tak:
plik login.php (fragment)
Kod
session_start();

session_register("uid");

if($submit)

{

          $qLogin=mysql_query("select uid, login, status from gklienci where login='$login' and haslo='$password'");

          $value=mysql_fetch_row($qLogin);



          if($value[2]!='N')

          {

                 if(mysql_num_rows($qLogin))

                 {

                      if($login=='admin')

                      {

                         $_SESSION['uid'] = $value[0];

                         header("location:/gadget_adm/index.php");

                      }

                      else

                      {

                         $_SESSION['uid'] = $value[0];

                         header("location:/gadget/index.php");

                      }

                 }

                 else

                 {

                      $badlogin=1;

                 }

          }

          else

          {

              $nieaktywny=1;

          }

}

?>


plik header.php (sprawdzany przy kazdym wywolaniu strony)
(fragment)

Kod
session_start();

if(!isset($_SESSION['uid']))

{

header("location:login.php");

}


wylogowanie - plik wyloguj.php
Kod
  session_start();

  session_destroy();

  session_unregister('uid');



  header("location:index.php");


Teraz mam nastepujace watpliwosci:
1. Czy powinienem przekazywac $uid w URL-u?
2. Czy mimo wszystko jakies cookie jest wysylane do klienta czy tez dane o sesji sa przechowywane tylko na serwerze.
3. Przy testach zauważyłem, że po kilku minutach od zalogowania musiałem zalogować się ponownie - przy cookie mogę ustawić ważność np. na godzinę a w przypadku sesji co mogę zrobić?

Pozdrawiam wszystkich

Olek
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 04:29