Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

3 Stron V   1 2 3 >  
Reply to this topicStart new topic
> $_SESSION
katomasz
post 20.05.2005, 15:02:52
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Mam dwie strony. Na pierwszej sprawdzane jest logowanie i ustawiana sesja $name=$_SESSION['user']. Na drugiej sprawdzam if(isset($_SESSION['user'])) to ma wykonywać dalsze instrukcje, jeżeli nie ma wyjść. I zawsze wychodzi. Jeżeli próbuję wyciągnąć zmienną sesji, to tam nic nie ma. Dlaczego??
Go to the top of the page
+Quote Post
dr_bonzo
post 20.05.2005, 15:05:27
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Bo trzeba cos do sesji zapisac:
$_SESSION['user'] = 'nazwa usera';


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
katomasz
post 20.05.2005, 19:20:22
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Bo i tak jest. Wcześniej jest błąd. Prawidłowo jest $name='uzytkownik', a następnie $_SESSION['user']=$name. I to właśnie działa, a na następnej stronie już nie.

Ten post edytował katomasz 20.05.2005, 19:21:52
Go to the top of the page
+Quote Post
strife
post 20.05.2005, 20:36:28
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(katomasz @ 2005-05-20 20:20:22)
Bo i tak jest. Wcześniej jest błąd. Prawidłowo jest $name='uzytkownik', a następnie $_SESSION['user']=$name. I to właśnie działa, a na następnej stronie już nie.

A masz na samym początku session_start" title="Zobacz w manualu PHP" target="_manual ?


--------------------
Go to the top of the page
+Quote Post
katomasz
post 21.05.2005, 06:12:58
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Oczywiście. Na początku każdej strony jest session_start();
Go to the top of the page
+Quote Post
Pigula
post 21.05.2005, 07:56:14
Post #6





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

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


to moze pokaz kod to ktos moze i cos ci podpowie
Go to the top of the page
+Quote Post
katomasz
post 21.05.2005, 09:05:42
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Więc jeszcze raz. Pierwsza strona logowania. Ustawiana jest zmienna $_SESSION, która pobiera dane z nazwy użytkownika. W każdym następnym pliku, który, jak to z reguły bywa, musi być autoryzowany, sprawdzam, czy użytkownik, który próbuje się tam dostać otrzymał SID. Jeżeli tak to dalej jeżeli nie to do strony logowania. I niestety, SID jest tylko na stronie logowania (zamiast przeniesienia do następnej strony sprawdzam, czy na tej stronie jest ustawiona sesja, czy nie - i jest). Ale niestety, na każdej następnej już nie. I pytanie Dlaczego?questionmark.gif
Go to the top of the page
+Quote Post
Pigula
post 21.05.2005, 09:52:19
Post #8





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

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


sprobuj dowiazac do linka SID i sprawdz. a mi chodzilo o kod bo tak co piszesz to powinno dzialac a nie dziala wiec moze masz blad gdzies w skrypcie.
Go to the top of the page
+Quote Post
katomasz
post 21.05.2005, 10:54:23
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Sprawdzę, ale mam możliwość dopiero w poniedziałek. Kod jest na pewno poprawny, bo gdy moje dzieło nie działało, to przepisałem żywcem przykłady z książek i było to samo. Chodziło mi o to, czy nie trzeba ustawić jakiś zmiennych w plikach konfiguracyjnych Apache'a lub php.
Dzięki, sprawdzę i odpowiem.
Go to the top of the page
+Quote Post
nospor
post 21.05.2005, 10:55:52
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Kod jest na pewno poprawny, ... przepisałem żywcem przykłady z książek i było to samo
Wierz mi, w książkach też zdarzają się byki


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pigula
post 21.05.2005, 11:32:37
Post #11





Grupa: Zarejestrowani
Postów: 446
Pomógł: 0
Dołączył: 5.03.2005
Skąd: Lublin

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


Cytat(katomasz @ 2005-05-21 11:54:23)
Sprawdzę, ale mam możliwość dopiero w poniedziałek. Kod jest na pewno poprawny, bo gdy moje dzieło nie działało, to przepisałem żywcem przykłady z książek i było to samo. Chodziło mi o to, czy nie trzeba ustawić jakiś zmiennych w plikach konfiguracyjnych Apache'a lub php.
Dzięki, sprawdzę i odpowiem.

jezeli sprawdzasz strone na localhost i nic nie kombinowales przy skonfiguracji serwera to on raczej nie jest ot jego wina. a co do kodu to jak nospor mowi w ksiazkach tez sa bledy. pozatym naprawde duzym problemem nie jest zaznaczyc tekst a potem Ctrl+C i Ctrl+V smile.gif
Go to the top of the page
+Quote Post
katomasz
post 21.05.2005, 19:22:50
Post #12





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Nie jestem dzieckiem i nie jestem "ciemniakiem". Wiem co wpisałem i posta podałem dlatego, że nie orientuję się dlaczego to nie działa, chociaż powinno. Myślę, że jeżeli takie mam słyszeć porady, to lepiej ich nie słyszeć. Proszę o zrozumienie, ale nie posunąłem się w tej sprawie, nie licząć przekazania, aby dowiązać SID do linka, ani kroku. Jedyne co, to mogę się niedługo zgubić o co mi chodziło.
Go to the top of the page
+Quote Post
Bonhart
post 21.05.2005, 19:51:50
Post #13





Grupa: Zarejestrowani
Postów: 5
Pomógł: 1
Dołączył: 20.06.2002

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


Cytat(katomasz @ 2005-05-21 20:22:50)
Proszę o zrozumienie, ale nie posunąłem się w tej sprawie, nie licząć przekazania, aby dowiązać SID do linka, ani kroku. Jedyne co, to mogę się niedługo zgubić o co mi chodziło.

a moze ustawiasz gdzies session_name, sprawdz jeszcze czy masz wlaczone raportowanie bledow (albo ustaw sobie error_reporting(E_ALL)). Moze wysylasz gdzies jakis bialy znak smile.gif. I nie denerwuj sie tak bo trudno wrozyc z kuli co ktos tam ma w kodzie smile.gif


--------------------
---
Pozdrowienia
Marko
Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 07:32:15
Post #14





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Oto błąd, który się zgłasza po wywołaniu $_SESSION['name'] - Undefined index: name in , i tu nazwa pliku. Podkreślam jeszczed raz, że początek pliku, to session_start(); . Wychodzi na to, że dane sesji nie są przekazywane pomiędzy stronami. Dlaczego?
Go to the top of the page
+Quote Post
scanner
post 23.05.2005, 08:28:19
Post #15





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




Cytat(katomasz @ 2005-05-21 20:22:50)
Nie jestem dzieckiem i nie jestem "ciemniakiem".

Jesteś.
Zgodnie z zaakceptowanym przez Ciebie Regulaminem Forum (pkt IV.2.d) Twoim obowiązkiem jest podać błędnie działający kod.
Nikt z nas nie jest jasnowidzem.

Kolejny Twój post bez zacytowania odpowiednich fragmentów kodu spowoduje zamknięcie wątku.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 09:11:06
Post #16





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Ależ proszę, chociaż wszystko jest w poprzednich postach, ale "kawę na ławę" panie Scanner.
Plik logowanie.html

<FORM METHOD=POST ACTION="Loguj.php">
<CENTER> <BR><B>PROSZ PODAĆ DANE DO LOGOWANIA</B><BR><BR><BR>
<INPUT TYPE=text NAME=LOGIN SIZE=20><BR><FONT SIZE="-1"><B>LOGIN</FONT></B><BR><BR><BR>
<INPUT TYPE=PASSWORD NAME=PASS SIZE=21><BR><FONT SIZE="-1"><B>HASŁO</B><BR><BR><BR>
<INPUT TYPE=submit VALUE=Loguj>
</CENTER>
</FORM>

Plik loguj.php

<?php
session_start();
$name=$_POST['LOGIN'];
$pass=$_POST['PASS'];
if ($name=="") $name="zzzz";
$nazwa=$name."\t".$pass."\t";
$file=fread(fopen("users.dat", "rb"),999);
if (!$file)
{
echo 'brak pliku';
}
if (strstr($file, $nazwa))
{
if ($name=="Administrat")
$name=$name."super";
$_SESSION['user']=$name;
header ("Location: main.php");
}
else
{
print "<B><CENTER>Logowanie nie powiodło się</CENTER></B><BR><BR><BR>";
print "<A HREF=logowanie.html>POWRÓT</A>";
}
?>

plik main.php

<?php
session_start();
error_reporting(E_ALL)
if (isset($_SESSION['user']))
header ("Location : logowanie.html");
print "udało się";
echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
?>

i właśnie w pliku main.php zgłaszany jest błąd - Undefined index: name in , i tu nazwa pliku. Czy jest to wystarczająco jasno?
Poza tym "postarajmy się" nie oznacza trzeba. Chyba ktoś tu nie rozumie niektórych słów. A szkoda.

Ten post edytował katomasz 23.05.2005, 09:14:13
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 09:17:04
Post #17





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Używaj bbcode!!!

patrze na ten main.php i patrze i jakos nie widze zebys gdzies uzywal indexu name. A taki ponoc blad ci wywala...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 09:20:19
Post #18





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Sorki, ale to pozostało po próbach. Powinno być - Undefined index: user in , i tu nazwa pliku.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 09:24:42
Post #19





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a nie powinno wywalac czegoś takiego skoro najpierw sprawdzasz czy jest ustawione to user. Bo masz przecież if'a : if (isset($_SESSION['user']))

edit: zapomniales o klamrach dla tego warunku i tylko jedną linię on obejmuje

Ten post edytował nospor 23.05.2005, 09:25:49


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 09:31:05
Post #20





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Jeszcze raz ten kod, który teraz jeest już całkiem w porządku

plik main.php

<?php
session_start();
error_reporting(E_ALL)
if (!isset($_SESSION['user']))
header ("Location : logowanie.html");
print "udało się";
echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
?>

czyli, jeżeli zmienna sesji nie ustawiona wróć do logowanie.html, jeżeli ustawiona, wypisz echo. Sytuacja ma się w ten sposób, że dla kody zmienna sesji nie istnieje, bo czy jest if (isset; czy też if (!isset; to to działa tak samo.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 09:34:25
Post #21





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Po raz drugi: używaj bbcode.

POzatym co ztergo ze ty robosz !isset skoro resztę i tak wywalasz poza warunkiem. powinno raczej byc tak:
  1. <?php
  2. if (!isset($_SESSION['user']))
  3. header (&#092;"Location : logowanie.html\");
  4. else
  5. {
  6.  print &#092;"udało się\";
  7.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  8. }
  9. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 09:51:06
Post #22





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Niewiele to zmienia, bo dla mnie ważny jest jeden warunek. Proste, jeżeli coś nie jest spełnione to wykonaj (w tym przypadku wyjdź do innego pliku) Więc nie ma szans, aby przeszedł dalej w tym kodzie. Jeżeli warunek spełniony, to tak jakby nie był sprawdzany. Poza tym jeżeli zrobiłem tak jak mówisz (else i w klamry) to nie wywala żadnego błędu. Po prostu nie spełnia to żadnego warunku.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 09:54:47
Post #23





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Poza tym jeżeli zrobiłem tak jak mówisz (else i w klamry) to nie wywala żadnego błędu. Po prostu nie spełnia to żadnego warunku.
A wlasnie ze spelnia: a konkretnie !isset i wkoncu masz ok main.php bo się nie wykrzacza.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:02:30
Post #24





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Nie spełnia, ponieważ nie wykonuje kodu po if, ani nie wykonuje kodu po else. Po prostu omija te linie i idzie dalej
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:09:00
Post #25





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jeżeli masz if i else do if'a do któryś z tych kawalkow będzie zawsze wykonany. Daj se echo przed header (tylko w klamry weź) i zobaczysz ze wchodzi do tego if'a


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:41:07
Post #26





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Zgadza się. Dlaczego więc po pierwsze, jeżeli już to nie wykonuje instrukcji header, a po drugie dlaczego stwierdza, że sesja nie istnieje?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:45:00
Post #27





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




daj exit; po header

A do main.php przekierowuje cie automatycznie po zalogowaniu?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 10:54:42
Post #28





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Jeżeli nazwa użytkownika i hasło zgadzają się to tak. Wpisanie exit; nie rajcuje, ponieważ potrzebuję powrotu do strony logowanie.html, a nie zatrzymania kodu.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 10:56:54
Post #29





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no i tak bedzie bedzie. Wysle naglowek poprzez header, a exit spowoduje, zeby w tym pliku nic wiecej sie wykonalo co moze nabruździć. jak nie wierzysz to se manuala przeczytaj


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:07:17
Post #30





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


No dobrze. Więc jak zrobić, żeby w przypadku nieistnienia sesji następowało przekierowanie. A tak w ogóle, to dlaczego ta sesja nie jest przekazywana?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:09:58
Post #31





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




chyba napisalem. daj exit;
  1. <?php
  2. if (!isset($_SESSION['user']))
  3. {
  4. header (&#092;"Location : logowanie.html\");
  5. exit;//to powinno pomóc :)
  6. }
  7. else
  8. {
  9.  print &#092;"udało się\";
  10.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  11. }
  12. ?>


a czemu nie przekazywana? a session ID (SID) przekazujesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:15:48
Post #32





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Niestety, exit; nie pomaga. Nie następuje przekierowanie, lecz zatrzymanie w tym punkcie na tej stronie. Sesja jest przekazywana, ale tutaj już jest zgubiona. Nie wiem dlaczego.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:30:32
Post #33





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




co do header to masz blad. dwuktopek dales za daleko. powinno byc:
header ("Location: logowanie.html");


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:41:47
Post #34





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


To prawda. Dzięki, jeden błąd wykryty. Teraz pozostał problem z przekazaniem SID do następnej strony. Co zrobić?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:43:28
Post #35





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale w jaki sposób ty ten sid przekazujesz? przez url? nie zauewazylem abys gdzies mial cos takiego ...?SID=...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 11:46:21
Post #36





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Proszę więc o radę jak to przekazać, żeby działało. Jak wpisałem tak jak pytałeś, to SID nie zgadzał się z aktualnym na nowej stronie. Podaj fragment kodu, jak to przekazać.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 11:58:47
Post #37





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a masz w php.ini taki wpis: session.use_cookies = 1. Jak nie to ustaw i miej wlaczone ciastka (tylko serwer zrestartuj po zmianach). POwinnno dzialac. testowalem teraz u siebie i dziala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 12:42:51
Post #38





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Wszystko jest tak jak piszes, jedynie nie działa. Dlaczego?
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 12:47:15
Post #39





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No dobra. A spróbuj tak:
plik loguj.php:
  1. <?php
  2.  
  3. session_name('sid');
  4. $name=$_POST['LOGIN'];
  5. $pass=$_POST['PASS'];
  6. if ($name==&#092;"\") $name=\"zzzz\";
  7. $nazwa=$name.&#092;"t\".$pass.\"t\";
  8. $file=fread(fopen(&#092;"users.dat\", \"rb\"),999);
  9. if (!$file)
  10. {
  11. echo 'brak pliku';
  12. }
  13. if (strstr($file, $nazwa))
  14. {
  15. if ($name==&#092;"Administrat\")
  16. $name=$name.&#092;"super\";
  17. $_SESSION['user']=$name;
  18. header ('Location: main.php?sid='.session_id());
  19. }
  20. else
  21. {
  22. print &#092;"<B><CENTER>Logowanie nie powiodło się</CENTER></B><BR><BR><BR>\";
  23. print &#092;"<A HREF=logowanie.html>POWRÓT</A>\";
  24. }
  25.  
  26. ?>


plik main.php:
  1. <?php
  2.  
  3. session_name('sid');
  4. if (!isset($_SESSION['user']))
  5. {
  6. header (&#092;"Location: logowanie.html\");
  7. exit;//to powinno pomóc :)
  8. }
  9. else
  10. {
  11.  print &#092;"udało się\";
  12.  echo '<CENTER>Zalogowany' .$_SESSION['user']. '</CENTER>';
  13. }
  14.  
  15. ?>


Wklej do obu plików dokladnie jak napisalem. Wejdź na strone logowania i się zaloguj. Jak to nie pomoże to wymiekam sad.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 13:24:12
Post #40





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Wielkie dzięki. To działa.
Go to the top of the page
+Quote Post
nospor
post 23.05.2005, 13:29:38
Post #41





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ufff, nareszczie biggrin.gif
tylko pamiętaj, aby teraz do każdego linku dodawać to sid


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
katomasz
post 23.05.2005, 15:00:56
Post #42





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 20.05.2005

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


Jeszcze raz wielkie dzięki
Go to the top of the page
+Quote Post
-Gość_Gibcio-
post 29.05.2005, 19:43:59
Post #43





Goście







  1. <?
  2. if(isset($_SESSION['user']))
  3. {
  4. echo'<font size=\"2\" face=\"Arial\">';
  5. echo'<table border=\"0\" width=\"100%\">';
  6. echo'<tr>';
  7. echo'<td width=\"100%\">';
  8. echo'Administracja.';
  9. echo'</td>';
  10. echo'</tr>';
  11. echo'</table>';
  12. echo'<br>';
  13. echo'<table border=\"0\" width=\"100%\">';
  14. echo'<tr>';
  15. echo'<td width=\"20%\">';
  16.  
  17. echo'</td>';
  18. echo'<td width=\"80%\">';
  19.  
  20. echo'</td>';
  21. echo'</tr>';
  22. echo'</table>';
  23. echo'</font>';
  24. }
  25. else
  26. {
  27. header(&#092;"Location:admin/logowanie/blad.php\");
  28. }
  29. ?>

Jak uruchomie strone to wywala mi następujacy błąd:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\apache\httpd\html\admin\index.php:2) in c:\usr\apache\httpd\html\admin\index.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\apache\httpd\html\admin\index.php:2) in c:\usr\apache\httpd\html\admin\index.php on line 3
Administracja.

jest jakieś lekarstow na to czy trzeba coś zmienić w ustawieniach sesji?
Go to the top of the page
+Quote Post
czachor
post 29.05.2005, 20:28:22
Post #44





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

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


Wystarczy, że poszukasz na forum pod hasłem headers already sent.


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
-Gość_Reinmar-
post 16.06.2005, 20:53:28
Post #45





Goście







Usuń enter przed <?, bo przed session_start() nie mogą być żadne znaki wysłane do przeglądarki. Powinno działać. Jak coś to pod: http://forum.php.pl/index.php?showtopic=31653 jest to troche lepiej przedyskutowane.
Go to the top of the page
+Quote Post
gregi1
post 25.02.2008, 22:33:57
Post #46





Grupa: Zarejestrowani
Postów: 134
Pomógł: 0
Dołączył: 24.03.2007

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


Mam pytanie, otoz mam plik z funkcjami i chcialbym aby po kliknieciu w przycisk zaloguj przenioslo mnie automatycznie na strone dobre.php.
  1. <?php
  2. ........
  3. ........//obsluga innych rzeczy + formularz do logowania + formularz do rejestracji
  4. $_SESSION['user']=$user;
  5.  header ('Location: dobre.php');
  6.  exit;
  7. ?>


A kod ktory podalem po kliknieciu w zaloguj wyswietla mi pusta strone.

Plik dobre.php wyglada tak:

  1. <?php
  2. require_once ("funkcje.php");
  3. //kod PHP
  4. if (isset($_SESSION['user']))
  5. {
  6. echo "Może posłużyć jako menu, czy coś innego ;)";
  7. echo "<br><A HREF='wyloguj.php'>Wyloguj</a>";
  8. }
  9. else
  10. {
  11. echo "<H3 ALIGN=center>Nie masz uprawnień do korzystania z tej strony! Wróc i się zaloguj</h3>";
  12. ?>


Dodam ze jak w tym pliku z funkcjami dam zamiast header np
Kod
echo "bla bla bla"
echo "<a href='dobre.php'> MOJ LINK</a>"

to po kliknieciu w "zaloguj" przenosi mnie na strone z tym bla bla bla i linkiem do strony dobre.php, ale chcialbym aby tam sie przenosic od razu po zalogowaniu. Moze mi ktos podpowiedziec jak to zrobic?


--------------------
Go to the top of the page
+Quote Post

3 Stron V   1 2 3 >
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 - 15:41