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 (IMG:http://forum.php.pl/style_emoticons/default/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ę?
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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...
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Bo juz sam nie wiem (IMG:http://forum.php.pl/style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 16:41