Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Poprawnosc skryptu a wylogowywanie
Robert
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Witam...
Wiec chcial bym przedstawic skrypt do sprawdzenia i zweryfikowania jego poprwnosci. [php:1:65ebba2d2d]<table width=320 height=0 cellspacing=1 cellpadding=1>
<tr>
<td>nick</td>
<td>mail</td>
<td>poziom</td>
</tr>
<?
$dir = "includes/users"; // sciezka gdzie znajduja sie users
$dp = opendir($dir);
while($users = readdir($dp)) {
$users = str_replace(".dat", "", $users);
$users = str_replace(".", "", $users);

if ($users) {
include("includes/users/$users.dat");
echo " <tr>
<td>$log</td>
<td><a href='mailto:$mail'>$mail</a></td>
<td>$lev</td>
</tr>";
}
}
closedir($dp);
?>
</table>
[/php:1:65ebba2d2d]

Jak widac skrypt ten pobiera pliki z danego folderu. W folderze pliki wygladaja tak $login.dat gdzie $login to imie danego, zarejestrowanego uzytkownika. Potem pobieram tylko potrzebne mi zmienne z pliku $login.dat(np Robert.dat, Miko.dat) i wrzucam je do tabeli. I z tym wszytko jest ok, lecz jezeli bedac wlasnie na stronie gdzie znajduje sie ten skrypt i podejme jaka kolwiek akcje, zostaje natychmiast automatycznie przelogowany do ostatniego uzytkownika z listy. I tak jest w kolko.
Logowanie mam na sesjach tak dla sprostowania.
Mogl by ktos pomoc rozwiklac mi moj problem. Domyslalm sie ze moglem nie sprecyzowac tego ladnie , lecz sie staralem winksmiley.jpg

Za jaka kolwiek pomoc bede bardzo wdzieczny. Z tym kodem morduje sie od kilku ladnych dni i nie moge sobie za zadne skarby z nim poradzic

Pozdrawiam
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
KaMeLeOn
post
Post #2





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Co to znaczy?
Cytat
[...] i podejme jakakolwiek akcje, [...]

Jaką akcję?


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
Robert
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Tzn gdy klikne w jaki kolwiek link lub cos w tym stylu....by mnie przeprowadzilo do innej strony. Wystarczy ze likne w jaki kolwiek link i zostaje automatycznie przelogowany.
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





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

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


Nadal nie rozumiem co ma ten skrypt robić. Bo ten co przedstawiłeś to on wypisuje i dołącza wszystkie pliki z katalogu.


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

Go to the top of the page
+Quote Post
Robert
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Dokladnie. Tak jak myslisz ma wypisywac pliki bym mogl pobierac potem z nich zmienne lecz jak juz pisalem z tego skryptu zostaje ciagle wylogowany.....i Tu jest moj problem. Nie wiem jak soobie poradzic z tym by mnie nie wylogowywal do ostatniego uzytkowanika z listy.
Go to the top of the page
+Quote Post
spenalzo
post
Post #6





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

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


Może jestem zmęczony, ale nadal nie rozumiem: gdzie się logujesz itd.


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

Go to the top of the page
+Quote Post
Robert
post
Post #7





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Wiec tak zaczne mniej wiecej od samego poczatku winksmiley.jpg
Na stronie zrobilem logowanie. Osoby zalogowane maja rozne prawa. Sa admini i goscie. Jak zaloguje sie jako admin pojawia mi sie dodatkowo link do Panelu admina. W nim mam zarzadzanie newsami, aktualizacjami oraz "uzytkownikami". Skrypt ktory podalem jest wlasnie do zarzadzania uzytkownikami, czyli wyswietla mi wszystkich userow znajdujacych sie w katalogu users. Kazdy uzytkownik jak juz wspomnialem ma prawa $lev skrypt ten wyswietla mi levele oraz maile userow. Dzieki temu skryptowi po malej modernizacji bede chcail dodacedycje poziomow. Poruszajac sie po panelu wszytko jest ok. Wejde w zarzadzanie newsami i jest ok nie wylogowywuje mnie. Wejde w aktualizacje takze nie zostaje wylogowany. Lecz gdy wejde w zarzadzanie userami to jest ok do momentu. Wyswietla mi wszytko lecz gdy chce powrocic do panelu glownego admina. Zamast pozostac przy loginie admina zostaje przelogowany do ostatniego usera z listy w panelu do zarzadzania userami.

Jezeli trzeba wiecej szczegolow chcetnie odpowiem winksmiley.jpg
Go to the top of the page
+Quote Post
KaMeLeOn
post
Post #8





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Domyślam się, że odpalasz zmienną sesyjną funkcją session_register()... Poczytaj o tablicy $_SESSION.
Najprawdopodobniej wypisując tabele nadpisujesz tę zmienną i dlatego po przejściu przez pętlę ustawiany jest ostatni user...


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
Robert
post
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Przeczytalem o $_SESSION i pozmienialem session_register(). Lecz i tak nie wiem gdzie szukac bledu. On moze byc wszedzie. Tak w ogole sprawdzilem czy naprade jest tak jak mowie mianowicie usunalem powyzszy skrypt zostal tylko do zliczania plikow i jest ok nie wylogowywuje mnie, wiec moge powiedziec ze wina obarczaam ten skrypt za wylogowywanie biggrin.gif. Moze ktos ma inna koncepcje na skrypt tego typu.
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%)
-----


Jeżeli masz wersję php poniżej 4.1 to musisz dać $HTTP_SESSION_VARS zamiast $_SESSION.
Aha, a dałeś session_start()?


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

Go to the top of the page
+Quote Post
Robert
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


wersja 4.3.1 i session_start() dalem
Go to the top of the page
+Quote Post
spenalzo
post
Post #12





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

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


A dałeś [manual:0d06df988d]session_start[/manual:0d06df988d] w każdym pliku?


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

Go to the top of the page
+Quote Post
Robert
post
Post #13





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Upss.....mozliwe ze ze dw moglem pominac...musze sprawdzic...
Go to the top of the page
+Quote Post
Robert
post
Post #14





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Dalej jednak to samo....
Go to the top of the page
+Quote Post
spenalzo
post
Post #15





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

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


Hmm, podaj jeszcze skrypt którm się logujesz.


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

Go to the top of the page
+Quote Post
Robert
post
Post #16





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


[php:1:676c0bcd5d]<?php
if(!empty($_POST)) {
if(file_exists('includes/users/'.$_POST['login'].'.dat')) {
include('includes/users/'.$_POST['login'].'.dat');
if(isset($log) && isset($pass)) {
if($log == $_POST['login']) {
if($pass == $_POST['password']) {
session_start();
session_register('log');
session_register('pass');
header('location: index.php?page=download&'.SID);
exit();
} else {
echo 'Nieprawidlowe haslo!'; }
}
}
}
}

?>
<? if(!empty($_SESSION["log"])){
echo "<table height='68' width='100%' cellpadding='0' cellspacing='0'><tr><td><table width='100%' cellpadding='1' cellspacing='0' style='border-top:1px solid #000000; border-bottom:1px solid #000000'><tr><td align='right' bgcolor='#666666'><font color='#222222'>Witaj <b>".$_SESSION["log"]."</font>&nbsp;</td></tr></table></td></tr><tr><td><table height=100% width='100%' cellpadding='2' cellspacing='0'><tr><td align='center'><font color='#999999'>Jestes zalogowany</font></td></tr><tr><td align='right'>&raquo; <a href='index.php?page=logout' class='admin'>wyloguj</a>&nbsp;</td></tr></table></td></tr></table>";
} else {?>
<table width="100%" cellpadding="1" cellspacing="0"><FORM method="POST" action="<?php echo $PHP_SELF?>">
<tr>
<td colspan="2" height="6"></td>
</tr>
<tr>
<td>&nbsp;Login:</td><td><INPUT type='text' class='login' name='login'></td>
</tr>
<tr>
<td>&nbsp;Haslo:</td><td><INPUT type="password" class="login" name="password"> <INPUT type="submit" value="ok"></td></tr>
<tr><td colspan='2'>&nbsp;&raquo; <a href='index.php?page=lost_pass'>Zapomnialem haslo</a></td></tr>
</FORM></table>
<? } ?>
[/php:1:676c0bcd5d]
Go to the top of the page
+Quote Post
spenalzo
post
Post #17





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

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


Po prostu jak się logujesz zapisujesz zmieną log, która jest później nadpisywana przez zmienne z plików. Są dwa rozwiązania:
1. zmień w swoim logowaniu nazwy zmiennych na inne,
2. przy sprawdzaniu swojej zmiennej $log odwołuj się przez $_SESSION["log"].


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

Go to the top of the page
+Quote Post
Robert
post
Post #18





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 2.05.2003

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


Hmm......zrobilem taki krok........
podczas logowania rejestuje teraz wszystkie zmienne z pliku i uzywam do nich $_SESSION[] lecz dalej nic.....czy moze robie blad ze rejestruje wszystkie zmienne z pliku. Powinienem rejestrowac tylko zmienna log i pass questionmark.gif
Bo juz sam nie wiem smile.gif
Prosil bym o jaka kolwiek pomoc...
Go to the top of the page
+Quote Post
?
post
Post #19





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 16.07.2003
Skąd: Kosmos

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


Cytat
A dałeś session_start w każdym pliku?


niewiem może sie myle ale nie trzeba dawać w kazdym pliku .. [manual:25336770a3]session_start[/manual:25336770a3] ale nie wiem ....

jak trzeba to sory za wprowadzanie w bląd
Go to the top of the page
+Quote Post
spenalzo
post
Post #20





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

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


Funkcja musi być. Chyba że w pliku konfiguracyjnym jest ustawiona na 1 dyrektywa session.auto_start - o ile sie nie mylę.


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

Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 20.08.2025 - 11:42