![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Na początek kilka słów - jestem absolutnie początkującym w tematach PHP i MySQL. Stworzyłem prostą stronę, na której można się logować, a strona, która uruchamia się po zalogowaniu, wyświetla spersonalizowane dane. Do tej pory wszystko szło jak po maśle, ale... pojawiła się ściana. Bardzo mi zależy na tym, abym miał pełną informację jako "administrator strony" o tym ile razy dany użytkownik się logował - niby banalne. Wymyśliłem to tak: 1) w bazie danych, w kolumnie 'log', przechowuję INT, a więc liczbę naturalną odzwierciedlającą ilość logowań. 2) w pliku php, którego zadaniem jest logować użytkownika (działa bezbłędnie) dodałem fragment kodu, który zgodnie z tym co poniżej, dokonuje aktualizacji tej kolumny u zalogowanego użytkownika. ..... $ilu_userow = $rezultat->num_rows; if ($ilu_userow>0) { $_SESSION['zalogowany'] = true; $wiersz = $rezultat->fetch_assoc(); $_SESSION['id'] = $wiersz['id']; $_SESSION['username'] = $wiersz['username']; $_SESSION['imie'] = $wiersz['imie']; $_SESSION['nazwisko'] = $wiersz['nazwisko']; $_SESSION['e-mail'] = $wiersz['e-mail']; $_SESSION['password'] = $wiersz['password']; $_SESSION['log'] = $wiersz['log']; $numer = $_SESSION['id']; $logowanie = $_SESSION['log']; $log2 = $logowanie++; mysqli_query("UPDATE users SET log = $log2 WHERE id = $numer"); unset($_SESSION['blad']); $rezultat->free_result(); header('Location: strona.php'); } else { $_SESSION['blad'] = '<span style="color:red"> Nieproawidłowy login lub hasło.</span>'; header('Location: login.php'); } ..... 3) Z niewiadomego mi powodu, ten mechanizm nie działa. Nie mam pojęcia co robię źle... Czy kod jest w złym miejscu, czy w ogóle jest poprawny... Podkreślam, że raczkuję w temacie i mimo, że tak dużo udało mi się zrobić, to pewnie robię jeszcze śmieszne błędy (chciałbym, żeby okazało się, że to jakiś średnik albo coś w tym stylu). Męczę się z tym już kilka dni, przeglądam różne miejsca w sieci, kursy i inne fora, ale niczego nie znalazłem co naprowadziłoby mnie na rozwiązanie... Mówiąc szczerze jestem strasznie zniesmaczony swoją nieporadnością. Liczę na wsparcie i pomoc w rozwiązaniu problemu. Pozdrawiam, Marcin. Ten post edytował aceout 9.05.2017, 15:07:29 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kolumna log niech ma domyślną wartość 0. Przy każdym poprawnym zalogowaniu dawaj zapytanie UPDATE users SET log = log+1 i tyle.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
Od tego zacząłem... gdyby to było tak proste... (IMG:style_emoticons/default/smile.gif) Mam trochę wiedzy ogólnej z programowania, uczyłem się języka C.
Stąd może takie naleciałości. Wydawać by się mogło, że jest ok, ale pytanie moje brzmi. Czy ten kod, jest we właściwym miejscu i czy jest poprawny składniowo? Jeśli tak, to dlaczego to nie działa? (IMG:style_emoticons/default/smile.gif) Dodam jeszcze tyle, że polecenie UPDATE mi nie działa. Odczyt przez SELECT jest ok, wszystkie zapytania są w porządku, ale nie mogę zmienić wartości w tabeli. Nawet na sztywno kiedy piszę log = 1 WHERE id=1. Po prostu nie reaguje... Ten post edytował aceout 9.05.2017, 15:29:56 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
Próbowałeś przetestować bezpośrednio w konsoli MySQL?
W ogóle... wykomentuj najpierw: header('Location: strona.php'); A potem spróbuj testować. Pewnie pojawi się informacja z błędem. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://php.net/manual/es/mysqli.query.php
I sie przyjrzyj jak nalezy wykonywac mysqli_query. czemu ostatnio jest moda na unikanie manuala oraz nie zagladanie do logow bledow?! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 9.05.2017 Ostrzeżenie: (0%) ![]() ![]() |
TOMPLUS - to był dobry pomysł - okazało się, że pojawił się błąd:
mysqli_query() expects at least 2 parameters, 1 given in /home/xxxxxxxxxx/public_html/zaloguj.php on line 39 Staram się znaleźć co to oznacza, ale jeśli komuś by się chciało pomóc to będę bardzo wdzięczny! Jeśli chodzi o testowanie - sprawdzałem komendę UPDATE z poziomu PHPmyAdmin - działa bezbłędnie. TO i błąd, który podałem wyżej ewidentnie dowodzi, że to mój problem z php... NOSPOR, to nie moda, to brak wiedzy i doświadczenia. Gdybym wiedział jak korzystać z manuali, to bym nie szukał pomocy na forum - nie ma tu żadnej złośliwości - dziękuję, że napisałeś, ale wierz mi, że to jeszcze nie mój poziom. Nie bez powodu stworzyłem ten post w "przedszkolu"... |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Podalem ci linka z opisem funkcji, ktora odpalasz zle. W linku tym masz podane jak nalezy ja odpalac poprawnie. Nie trzeba miec doktoratu z php by przeczytac opis dzialania z dokumentacji. Zamykam, by cie bardziej zmotywowac do mycia mniejszym leniem (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 22:02 |