![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jestem początkującym programistą PHP. Chciałem napisać skrypt logowania na swojej stronie z użyciem sesji na podstawie książki, z której się uczę. Poniżej przedstawiam kod tego skryptu:
To jest add_admin.php, który dodaje administratorów do bazy danych:
A to jest plik logowanie.php:
Problem jest następujący. Gdy dodaję admina i wpisuję jego odpowiednie dane, do panelu logowania wyświetla mi się za każdym razem: Cytat Wprowadzone dane są niepoprawne! Tabela bazy danych admins została utworzona w serwisie cba.pl przez PHPMyAdmina. Ten post edytował Cysiaczek 5.09.2007, 19:02:39
Powód edycji: dodałem tag (cysiaczek)
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 890 Pomógł: 65 Dołączył: 13.11.2005 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
1. Popraw BBCode na php, będzie łatwiej czytać
2. Co to są "klałzule"? 3. $_POST['email;'] - wywal średnik 4. Tego nie jestem pewien, ale chyba raczej SHA1 ?!?
Na razie tyle, popraw i sprawdź rezultat (najpierw na nowo dodaj usera) Ten post edytował drPayton 5.09.2007, 13:01:44 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Niestety dalej to samo. Poprawiłem te błędy i dalej jest to samo...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 2.09.2007 Skąd: Wielkopolska Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem dlaczego tak skomplikowałeś cały algorytm logowania na strone. Dane login hasła użytkownik wpisuje w formularzu przesyłasz na strone z przekierowaniem zwrotnym gdzie pobierasz z mysql hasło dla danego loginu. Sprawdzasz czy obie zmienene są równe i ustawiasz użytkownika jako zalogowanego.
Ja taki system stosuję i chodzi szybko i sprawnie bez tak rozbudowanego kodu. Pozdrowienia P.S. Rozbudowana złożoność kodu nie świadczy o większej umiejętności programowania, a wręcz odwrotnie. ![]() -------------------- Początki są zawsze trudne, ale to nie znaczy że potem musi być łatwiej.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
P.S. Rozbudowana złożoność kodu nie świadczy o większej umiejętności programowania, a wręcz odwrotnie. ![]() Dobrze o tym wiem. Ale ja jestem narazie amatorem i nie umiem dokładnie i skutecznie zoptymalizować kodu php. Jak na początku mówiłem, ten kod jest napisay z pomocą książki. markotny, czy możesz dokładniej mi to wytłumaczyć, bo ja za bardzo jeszcze tych wszystkich pojęć nie kapuję (np. przekierowanie zwrotne). |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż co siedzi w admins (select * from admins;) bo kod (przynajmniej ten z logowanie.php) wygląda w porządku nie licząc średnika o którym pisał drPayton (bo np. SHA() i SHA1() są równoznaczne z tego co pamiętam).. no może za dużo komentarzy i brak wcięć ale to nie stanowi problemu (dla parsera bo czyta się to jak dziennik ustaw ;] ).
EDIT: to nie jest powód ale zamień if($_POST['wyslij']) { na if(isset($_POST['wyslij'])) { a dodatkowo ustaw parser php by wyświetlał wszystkie błędy, warningi i inne informacje (info jak to zrobić jest na forum na pewno). Ten post edytował Krzysztof Klimonda 5.09.2007, 19:58:16 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 2.09.2007 Skąd: Wielkopolska Ostrzeżenie: (0%) ![]() ![]() |
Przekierowanie zwrotne - ja tak to sobie nazywam - polega na tym że formularz logowania jest na stronie np. index.php jest tam formularz gdzie wysyłane dane wysyłasz na strone logowanie.php. Tam zachodzi cały proces zapisywania zmiennych, ustawiania sesji, pobierania danych z mysql'a, sprawdzania poprawności logowania i ustawiania statusu zalogowanego, ale jak na wtępie strony w nagłówku wpszesz
<? header ("Location:index.php"); ?> to wrócisz na strone główna jako zalogowany ![]() Nie wiem czy da się to jakoś inaczej wytłumaczyć. ![]() -------------------- Początki są zawsze trudne, ale to nie znaczy że potem musi być łatwiej.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mniej więcej wiem o co chodzi. Jednak nie rozumiem jak teoretycznie poprawny skrypt nie może działać. Błąd napewno jest gdzieś w porównywaniu adresu mailowego i hasła. To jest niemożliwe! Bazę danych mam raczej poprawną.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
To wstaw po 52 linijce print $query;, z 53 linijki usuń @ i odpal jeszcze raz - może wyrzuci błąd ew. po zawartości zapytania dojdziesz co jest nie tak.. albo po prostu wkleisz i będziemy dochodzić (sic!) wpólnymi siłami ;]
Ten post edytował Krzysztof Klimonda 5.09.2007, 20:30:12 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 88 Pomógł: 0 Dołączył: 4.09.2007 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Przeglądnałem jeszcze raz cały kod i zauważyłem w linii 44 niepotrzebny średnik. I chyba się teraz udało.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 02:21 |