![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
viewprofile.php
startsession.php
Przy próbie oglądnięcia swojego profilu dostaje komunikat. Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /x/x/ftp/x/x/x/viewprofile.php on line 33 Przykład jest skopiowany z gotowych kodów które dostępne są na stronie wydawnictwa helion. Jest to przykład z ksiązki który niestety nie chce funkcjonować. Uczę się dopiero zarządzać sesjami i użytkownikami dlatego też zwracam się z prośbą o pomoc w rozwiązaniu powyższego problemu. temat był poruszany dla innego pliku php z tego samego ćwiczenia http://forums.oreilly.com/topic/50019-warn...2990#entry92990 Ten post edytował darney 12.12.2011, 08:55:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 113 Pomógł: 14 Dołączył: 25.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Może się mylę, ale jakoś nie odpowiada mi Twój zapis zapytania:
Ja bym napisał:
Chociaż obie opcje chyba będą działać... Próbowaleś użyć mysql zamiast mysqli? Ten post edytował lukesh 12.12.2011, 09:03:57 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@lukesh mylisz się i to bardzo. Uczysz kogoś sam nie znając podstaw obsługi tekstów i wprowadzając użytkownika w błąd
@darney masz błąd zapytania. Jak wyświetlać błędy zapytania masz napisane tu: Temat: Jak poprawnie zada pytanie tylko zamiast mysql_error masz użyc odpowiednika dla mysqli |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ZAPYTANIE:SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '14'
Warning: mysqli_query() expects at least 2 parameters, 1 given in /logowanie2/viewprofile.php on line 31 Warning: mysqli_error() expects exactly 1 parameter, 0 given in /logowanie2/viewprofile.php on line 31 BŁĄD: nie bardzo rozumiem błąd Ten post edytował darney 12.12.2011, 09:14:14 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Kurcze, skopiowałeś bezmyslnie przykład z linka co ci podałem
Przecież napisałem, że ty używasz mysqli a nie mysql i musisz ciut dostosować ten kod do swojej sytuacji :/ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
zamieniłem na msqli juz na samym początku.
Ten post edytował darney 12.12.2011, 09:17:20 |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
mysqli_query($sql)
Tylko, że mysqli wymaga więcej parametrów niż jeden :/ Mówi ci o tym błąd, mówi ci o tym manual, mówi ci o tym twój kod, który masz w książce. Dlatego napisałem, że bezmyślnie skopiowałeś. Po co ci ta książka, skoro ty z niej tylko przepisujesz, w ogóle nie wiesz co dana linijka robi i czego wymaga. Co to za nauka? Cytat Warning: mysqli_error() expects exactly 1 parameter, 0 given Identyko tu. Bład swoje, a ty swoje. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no właśnie przepisuje po to by analizować dany kod. Samo nie wejdzie do póki nie przepisze i nie przemyśle każdej linii. Nie rozumiem dalej błędu. Nie wiem o co chodzi z 2 parametrami. Jestem tylko wkurzony że książka za która zapłaciłem prawie 100 zł zawiera błędy. Idę męczyć manual.
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Nie wiem o co chodzi z 2 parametrami. Twój poprawny kod z ksiązki: mysqli_query($dbc, $query); Twój bezmyślnie przepisany kod: mysqli_query($sql) Znajdź 10 różnic mysqli_query($dbc, $query); mysqli_query($sql); |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat jedynie ja przepisując twój przykład dałem jeden. No właśnie.... dlatego ciągle piszę, że bezmyślnie kopiujesz :/ Bo mysqli_query wymaga właśnie dwóch parametrów.....Ja w przykładzie użyłem mysql ty używasz mysqli więc masz myśleć a nie bezmyślnie kopiować. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ZAPYTANIE:
Warning: mysqli_query() [function.mysqli-query]: Empty query in logowanie2/viewprofile.php on line 31 Warning: mysqli_error() expects exactly 1 parameter, 0 given in logowanie2/viewprofile.php on line 31 BŁĄD:
naprawdę nie wiem o co tu chodzi. Ten post edytował darney 12.12.2011, 11:24:48 |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
ale mysqli_error() zgodnie z komunikatem błędu wymaga jednego parametru. Ty zaś nie podajesz żadnego. Czemu nie czytasz tych komunikatów? Czemu nie korzystasz z manuala by zobaczyć jak używać funkcji, których używasz? Czy wszystko po kolei trzeba ci paluszkiem pokazywać jak małemu dziecku?
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
z edytowałem post. Tam miałem nawalone podwójnie zapytania.
|
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No i co z tego? Nadal mysqli_error źle używasz. Tego nadal nie poprawiłeś
Poza tym dla mysqli_query zapodajesz zmienną $sql a ty zapytanie masz w zmiennej o nazwie $query
Powód edycji: [nospor]:
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ale co ja mam w środek tam wstawić w error $dbc? query ? w manualu też nic nie ma... pewnie czegoś nie rozumiem.
Ten post edytował darney 12.12.2011, 11:31:08 |
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat w manualu też nic nie ma... Raczysz żartować...http://www.php.net/manual/en/mysqli.error.php Widzę, że potrzebujesz odrobiny motywacji. Tak wiec daję ci ją: zamykam. Gdy już uporasz się z tym banałem, zapraszam na PW, będziemy dalej kontynuować. Nawet na forum przedszkole wymagamy mimalnego poziomu. No i wkońcu się udało. Ostateczny błąd: Cytat ZAPYTANIE:SELECT username, first_name, last_name, gender, birthdate, city, state, picture FROM mismatch_user WHERE user_id = '14'BŁĄD:Unknown column 'birthdate' in 'field list' Problem rozwiązany (IMG:style_emoticons/default/smile.gif) ps:
Jeśli w tej książce, tak podchodzą do autoryzacji, to rzuć tę książkę do ogniska. Ona przyniesie ci więcej szkody jak pożytku z takimi naukami.
Powód edycji: [nospor]:
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
spokojnie to pierwszy rozdział odnośnie zarządzania userami. W kolejnych pewnie będą dalej rozwijać ten moduł ;P. Powiedz mi dlaczego jest to nie bezpieczna autoryzacja. Coś takiego mozna łatwo obejść?
|
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak, każdy pseudo haker obejdzie to w 10 sekund. Nie sądze, by to poprawili dalej. To co tu podali nie powinno się pojawić na żadnym etapie uczenia. Ktoś kto to pisał, miał zerową wiedzę na temat autoryzacji a konkretnie na temat bezpiecznej autoryzacji.
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
w takim razie jak powinna wyglądać bezpieczna autoryzacja. Proszę o nakierowanie mnie do dobrej lektury:)
|
|
|
![]()
Post
#21
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cały kawałek kodu, który ci zacytowałem, powinien zniknąć. I już na początek będzie super.
Kod, który tam jest, autoryzuje użytkownika na podstawie ciastka. A ciastko każdy głupi w 10 sekund ustawi i zaloguje się na dowolne konto w serwisie. |
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no tak ale jak to wszystko usunę to się nie zaloguję a jakoś trzeba (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#23
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A próbowałeś?
Ja mówiłem o skasowanie tylko tego: if (!isset($_SESSION['user_id'])) { if (isset($_COOKIE['user_id']) && isset($_COOKIE['username'])) { $_SESSION['user_id'] = $_COOKIE['user_id']; $_SESSION['username'] = $_COOKIE['username']; } } Nic więcej. Jeśli naprawdę po skasowaniu tylko tego, nie możesz się zalogować to jest jeszcze gorzej niż myślałem. Pokaż wówczas kod logowania. |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
nie no działa. Tylko cookie z tego co doczytałem pozwalają określić czas kiedy wyloguje usera który odejdzie od komputera np na 20 min. Czy można to zmienić z poza cookie. Podejrzewam że tak skoro mowa o ciastkach które są niebezpieczne. Bo autor tej książki która podobno ma się dobrze palić (IMG:style_emoticons/default/smile.gif) używa instrukcji setcookie(session_name(), '', time() - 3600);
Jestem laikiem w sprawach logowania i dopiero się przeuczam. Wiec chcę jedynie zaczerpnąć rady jak mam myśleć żeby się nie w kopać. |
|
|
![]()
Post
#25
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Ciacho może stworzyć każdy user sam bez żadnego problemu. Jak ktoś do autoryzacji używa właśnie ciastek, znaczy, że jest totalnym laikiem w tym co pisze. I aż strach się bać o jakość pozostałego kodu. Tak więc spal to póki jeszcze masz okazję (IMG:style_emoticons/default/smile.gif)
Czas sesji określa serwer a nie użytkownik. |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
A jak na danym, serwerze stoi kilka stron i jak dam sesji żywot 10 min to każdy mój serwis po 10 minutach pada:P czy można to jakoś przypisać htaccessem ? (IMG:style_emoticons/default/tongue.gif)
|
|
|
![]()
Post
#27
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
(IMG:style_emoticons/default/questionmark.gif)
Jak serwis pada po 10 minutach? Coś ci się zaczyna pomału mieszać (IMG:style_emoticons/default/tongue.gif) |
|
|
![]()
Post
#28
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
ehheehhe i kasują się wszystkie konta na facebooku:P no chodzi o sesje (IMG:style_emoticons/default/smile.gif) to w każdym serwisie po 10 minutach wszystkich wylogowuje. I czy można to przypisać do jednego serwisu
|
|
|
![]()
Post
#29
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie wszystkich, tylko tych co przez 10 minut nic nie zrobili. Jak ktoś po 9 minutach coś kliknął, to znowu ma 10 minut. To jest normalna sprawa i przestań nad tym biedować. Na serwerze można wydłużyć czas. Standardowo jest bodajże 20 minut a nie 10.
|
|
|
![]()
Post
#30
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 21.08.2010 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Spójrz jeszcze na skrypt logowania i daję już spokój. (IMG:style_emoticons/default/smile.gif)
te cookie rozumiem wywalić? |
|
|
![]()
Post
#31
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
setcookie('user_id', $row['user_id'], time() + (60 * 60 * 24 * 30)); // Wygasa za 30 dni.
setcookie('username', $row['username'], time() + (60 * 60 * 24 * 30)); // Wygasa za 30 dni. Tak, to powinno zniknąć. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.09.2025 - 17:09 |