Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
Mam taki kod do systemu logowania:
[php:1:5cf70c83a8] <? if (($step=="2")) { if (file_exists("users/$login.txt")) { $plik = file("users/$login.txt"); $podziell = explode("||", $plik); if (($passwrd==$podziell[1])) { $passwrd=md5('$pass'); setcookie("zalogowany", "$podziell[0]||$podziell[1]||$podziell[2]||$podziell[3]||$podziell[4]", time()+3600*3); } } } ?> <html> <body> <? if (($step=="2")) { if (file_exists("users/$login.txt")) { $plikk = file("users/$login.txt"); $podziell = explode("||", $plikk); if (($passwrd==$podziell[1])) { $passwrd=md5('$pass'); echo"Zostałeś zalogowany!<br>$zalogowany"; } else { echo"Podałeś błędne dane!"; } } else { echo"Podałeś błędne dane!"; } } else { ?> <b>Logowanie</b> <hr color="gray" size="1"> <br><center> <form action="" method="get"> <input type="hidden" name="step" value="2"> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td width="19%" valign="top"> Login:<br> Hasło:<br></td> <td width="81%" valign="top"> <input type="normal" name="login"><br> <input type="password" name="pass"> </td> </tr></table> <br><input type="submit" value="Zaloguj się">&&&<input type="reset" value="Kasuj dane z formularza"></center><br> <a href="register.php"><small>Nie masz jeszcze konta w Ano php?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Zarejestruj się!!!</small></a> <? } ?> </body> </html> [/php:1:5cf70c83a8] Po uruchomieniu tego skrypty zawsze pokazuje się text: Podałeś błędne dane! Mimo, że NA PEWNO podaje prawidłowe dane! Kiedy nie ma procedury zapisu do cookie, to wszystko działa ok! |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Cytat Po uruchomieniu tego skrypty zawsze pokazuje się text: Podałeś błędne dane!
Mimo, że NA PEWNO podaje prawidłowe dane! Kiedy nie ma procedury zapisu do cookie, to wszystko działa ok! Nie za bardzo mogę się połapać w tym kodzie, ale może dlatego nie działa, że cookie można dopiero odczytać po przeładowaniu strony? |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
no skoro sie robi:
[php:1:d4e82945e1] $passwrd=md5('$pass'); [/php:1:d4e82945e1] to wiadomo ze nie zadziala ' ' nie kompiluje kodu ma byc albo md5($pass) albo md5("$pass") jedno i drugie to samo |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
E tam.
I tak, i tak zawsze się pokazuje text "Podałeś błędne dane". |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
najlepiej rozdziel sobie "podałeś błędne dane" i zamień to dotyczące pliku na "brak użytkownika" i napisz co wtedy się pokazało.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
Cytat E tam.
I tak, i tak zawsze się pokazuje text "Podałeś błędne dane". bo ten skrypt jest bez sensowny na pierwszy rzut oka (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) za duzo niepotrzebnych IF'uf |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
jak mówisz, że ten skrypt jest bezsensowny,to napisz mi jak go można zmienić.
|
|
|
|
Post
#8
|
|
|
Administrator planeta/IRC Grupa: Przyjaciele php.pl Postów: 385 Pomógł: 0 Dołączył: 19.04.2003 Skąd: Zabrze Ostrzeżenie: (0%)
|
Po pierwsze, po co trzymać informacje o każdym userze w osobnym pliku? Nie lepiej trzymać ich w jednym pliku, linijka dla każdego? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Pozatym po co zapisywać wszystkie dane o userze do ciacha, przecierz nam wystarczy numerek lini w której te dane się znajdują. Aaa, i po trzecie, najlepiej zaraz po logowaniu przenieść usera na inną strone, po cookie będzie widoczne na stronie z logowaniem dopiero po odświeżeniu... To teraz kawałek kodu (z jakiegoś mojego starego skrypciocha): [php:1:13f8998e53]<?php function CheckPass(){ global $_POST; $users = file('users.dat'); foreach($users as $id => $user){ $u = explode('|+|'. $user); if($u[0] == $_POST['login'] && $u[1] == md5($_POST['pass'])){ return $id; } } return false; } if(isset($_POST)){ $error = empty($_POST['login']) ? 'Podaj login<BR>'."n" : ''; $error .= empty($_POST['pass']) ? 'Podaj hasło<BR>'."n" : ''; if(empty($error)){ if($id = CheckPass()){ setcookie('id', $id); header('location: admin.php'); } else{ $error .= 'Nieprawidłowy login lub hasło!'; } } } ?>[/php:1:13f8998e53] Struktura pliku users.dat wygląda tak: Kod login|+|pass|+|co tam chcesz|+|i co jeszcze chcesz|+|itd.|+|
Błędy można wyświetlić np. tak: [php:1:13f8998e53]<?php echo empty($error) ? 'Podaj login i hasło' : $error ?>[/php:1:13f8998e53] |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
Musi być tak jak napisałem, dlatego, że to ma być system logujący na stronę www
|
|
|
|
Post
#10
|
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
ano - sprecyzuj wyp[owiedź. Chcesz pomocy? Skoro ktoś Ci daje gotowca, to skorzystaj - rozwiązanie z jednym plikiem jest dobre, gdyż ułatwi Ci w przyszłości ewentualny przeskok z plików do bazy danych.
|
|
|
|
![]() ![]() |
|
Aktualny czas: 20.12.2025 - 10:05 |