![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam taki kod do dodawania komentarzy:
Wcześniej w polu AUTOR > Value było Anonim, zastąpiłem to jednak '.$_SESSION['user'].' ponieważ dodałem logowanie. Chciałbym jednak, aby w polu nadal było wpisane domyślnie ANONIM jeśli użytkownik nie jest zalogowany. Od dwóch godzin męczę się z dodaniem funkcji, aby wyskakiwał błąd kiedy któreś z pól będzie puste. Np. kiedy ktoś nie wpisze nic w pole AUTOR lub TRESC. Nie mam pojęcia już gdzie dodać: if (!empty($autor)) Proszę was o pomoc jak zmodyfikować poprawnie ten kod. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 3 Dołączył: 13.07.2009 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Chodzi Ci o coś takiego?
Tylko pytanie brzmi czy działasz na id usera który jest zalogowany (wtedy będzie error) czy na nazwie (wtedy zaskoczy). Jeśli na id usera to moja propozycja byłaby taka, aby pole `autor` w db było w domyśle na null i kod byłaby w else $autor = NULL; A w polu prezentacji posta pętla:
Mam nadzieję, że o to Ci chodzi ;-) Ten post edytował d0m1n1k_ 2.03.2016, 03:09:26 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie tu pojawia się problem. Gdzie ten kod w ogóle mam wstawić? Sorry w ogóle, ale z 6 lat nic nie robiłem z php i MySQL, chce postawić stronę i wszystko powoli sobie przypominam.
Ogólnie jeśli o logowanie chodzi to dodałem to do stronki z gotowca i powoli to wdrażam w całą stronkę. Jeśli chodzi o logowanie to gotowca pobrałem stąd: http://miroslawzelent.pl/kurs-php/logowani...rzykiwanie-sql/ No i nie wiem teraz dlatego czy działam na id usera czy na nazwie. (IMG:style_emoticons/default/biggrin.gif) Wiem, głupio to brzmi, ale tak to na razie wygląda. Powoli wszystko się przypomina, ale tego potrzebuję żeby iść dalej... Bo jak będzie więcej strony gotowe to będzie problem z wdrożeniem tego. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
Proponuję obejrzeć video Zelenta, jak pisał to od początku. Będziesz chociaż mniej więcej będziesz wiedział co się dzieje w "Twoim" kodzie.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 3 Dołączył: 13.07.2009 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Powinno być git. Tak na szybkiego poprawione:
Ten post edytował d0m1n1k_ 2.03.2016, 19:53:25 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wszystko teraz wygląda dobrze.
Jest tylko taki problem, że w polu AUTOR cały czas widnieje treść ANONIM. Nawet jak jestem zalogowany. Jednak do bazy dodaje już mój nick. Nie wiem czemu, ale przestały też działać polskie znaki. Gdy wpiszę polskie znaki to komentarz nie wyświetla się, a bazie danych widnieje wpis jednak treść jest zerowa. @edit: Aha zapomniałem. Jak jestem wylogowany i w polu AUTOR wpiszę jakąś nazwę to w komentarzach nadal widnieje ANONIM. Ten post edytował Mlody993 3.03.2016, 11:03:43 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 3 Dołączył: 13.07.2009 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Twój kod niestety nadal u mnie nie działa. (IMG:style_emoticons/default/sad.gif)
Mój kod aktualnie wygląda tak:
Nadal występuje ten problem, że cały czas w polu widnieje ANONIM nawet jeśli się zaloguje. Ale do bazy zostaje dodany nick zalogowany. Jednak gdy jestem wylogowany i dodam komentarz jako anonim to komentarz jest bez nicku, sama treść :/ do bazy nie dodaje się ten ANONIM. Czyli bez zmian.... Myślałem może aby w bazie dodać po prostu użytkownika (user) ANONIM z userid 0 - w ten sposób każdy komentarz dodany anonimowo dostałby userid = 0 i autor wyświetlany byłby jako ANONIM. Wtedy musiałbym zablokować pole AUTOR (np. readonly). @edit: Aha, po dodaniu: nadal komentarze są puste po wpisaniu polskich znaków. To samo po ustawieniu kodowania utf-8. Ten post edytował Mlody993 3.03.2016, 18:57:57 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
Podpowiedź:
Dasz radę (IMG:style_emoticons/default/thumbsupsmileyanim.gif) Ten post edytował MGie 3.03.2016, 20:37:43 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
No nie wiem czy dam radę. ;-) Znowu od dwóch godzin się męczę z tym i spać nie pójdę do póki nie zrobię (IMG:style_emoticons/default/biggrin.gif)
Tutaj usunąłem w $_SESSION i teraz dodaje komentarze jako ANONIM, po zalogowaniu jako osoba zalogowana. Pole jednak musiałem zrobić readonly bo nawet jak wpiszę swoją nazwe "AUTOR" to do bazy zapisuje się i tak ANONIM. Ja już nie mam sił powoli do tego. Wszystko mi wygląda OK, a nie działa. @ No i nadal problem, jak jestem zalogowany to w polu AUTOR jest cały czas Anonim, ale do bazy dodaje poprawnie. Problem też nadal z polskimi znakami. ;/ |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 208 Pomógł: 3 Dołączył: 13.07.2009 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
A w którym miejscu masz definicję połączenia z bazą danych?
Poza tym wczoraj o 13:59 przesłałem Ci przepisany od a do z kod. Zerknij na niego sokolim wzrokiem i przeanalizuj. Moim skromnym zdaniem nie ma prawa nawalać, chyba że nie zmieniłeś danych dostępowych do bazy danych oraz samego zapytania. W tym miejscu jako bonus dla Ciebie, nadmienię jedną dość przydatną informację. Aby to wszystko działało sprawnie pomyśl o relacjach bazy danych. Z tego co przeczytałem to w sesji utrzymujesz nazwę użytkownika zamiast zmiennej lub czegoś co pozwoli uniezależnić Cię od choćby problemu dwóch userów o innych mailach ale tej samej nazwie/loginie. Kolejna rzecz to lżej dla twojej bazy będzie trzymać w tabeli komentarzy kolumnę z id(int(11)) użytkonika niż jego nazwą(varchar(255)). Załatwia to też problem j.w. Ogólnie proponuję trochę lektury dla odświeżenia pamięci ale i życzę wytrwałości. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, dziękuje bardzo. Pogłówkowałem i sobie jakoś poradziłem. (IMG:style_emoticons/default/smile.gif)
Powstał tylko nowy problem. Jak widać ten gotowiec, którego użyłem jako podstawę nie ma opcji rejestracji. Zrobiłem więc własny skrypt rejestracji. Skrypt ten korzysta z md5 dla $pass , więc w bazie hasło jest zaszyfrowane. Problem jest tylko taki, że ten system logowania który mam nie rozpoznaje hasła. (IMG:style_emoticons/default/biggrin.gif) To jest mój plik logowania:
A tutaj plik login.php:
Wiem, że w logowaniu nie ma tego szyfrowania, jednak przy wielu próbach jednak nic nie wychodzi ;/ Próbuje dodać: $pass = md5($_POST['pass']); zamiast: $pass = $_POST['pass']; Ale wtedy obojętnie co wpisuję podczas logowania to wyskakuje błąd. Ten post edytował Mlody993 7.03.2016, 11:54:11 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 5 Dołączył: 29.02.2016 Ostrzeżenie: (0%) ![]() ![]() |
Wyciąganie * nie jest za dobrym rozwiązaniem ( po co Ci na przykład wyciągać hasło? ) Jeżeli chcesz używać md5 to go posól ( wygogluj sobie ). Ja bym Ci jednak polecił: Kod http://php.net/manual/en/function.password-hash.php Dlaczego?: zapisz pod zmienną jakiegoś stringa, zahashuj go i wyświetl md5, a potem tego samego stringa zahashuj np. PASSWORD_BCRYPT, odśwież stronę kilka razy, zobaczysz dlaczego md5 jest wypierany. Najpopularniejsze hashe są w bazach internetowych md5, sprawdź w googlach. Na czas pisania i testowania aplikacji dobrze jest włączyć wyświetlanie błędów: Kod http://forum.php.pl/index.php?showtopic=44868&st=0&start=0
Ten post edytował MGie 7.03.2016, 14:55:36 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 0 Dołączył: 12.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tak zrobiłem. Przy rejestracji używam:
oraz w formularzu rejestracji:
Twoja podpowiedź:
niestety nie działa.. (IMG:style_emoticons/default/sad.gif) Tego już próbowałem. Dobra, poradziłem sobie jednak (IMG:style_emoticons/default/smile.gif) Trzeba było zrobić:
Ale wtedy nie działało... za duże zamieszanie, cztery pliki otwarte i się gubiłem. Dzisiaj na spokojnie zauważyłem, że w pliku logowania nie dodałem linijki:
z plikiem w którym znajduje się klasa do solenia (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:23 |