[MySQL][PHP]Sprawdzenie zawartości. |
[MySQL][PHP]Sprawdzenie zawartości. |
13.12.2014, 15:43:02
Post
#1
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Witam
Potrzebuję pomocy w odczytaniu wyniku zapytania. Napisałem dwie strony z zawartością logiczną. Jedna to wyświetlenie formularza, a druga wykonuje test z danymi wpisanymi w formularzu, a nastepnie zwraca wynik. Funkcja z którą mam problem to ta:
Dodatkowo wyświetla taki błąd:
Ową funkcję wywołuje ten fragment kodu:
Nie wiem czy w czymś pomoże, bo ten kod dopiero wtedy jest interpetowany, gdy formularz zostanie wyświetlony, wypełniony i zaakceptowany. Z góry dziękuję za pomoc. Pozdrawiam! Ten post edytował castagir 13.12.2014, 15:44:37 |
|
|
13.12.2014, 15:54:11
Post
#2
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) |
Hasła w PHP się nie sprawdza. Wysyłasz zapytanie czy istnieje użytkownik o takim loginie i haśle, jeśli tak to pobierasz jego ID i umieszczasz w sesji.
-------------------- |
|
|
13.12.2014, 16:11:56
Post
#3
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Czy tak powinna wyglądać prawidłowa funkcja?
Nie wiem czy to jest prawidłowo czy nie, ale chodzi mi teraz przede wszystkim o roziwazanie problemu, ktory wczesniej opisalem. |
|
|
13.12.2014, 16:44:44
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
Ale żadne LIKE, a zwykłe równa się.
elseif (mysql_num_rows($wynik) = 0) { tutaj masz = a operator równości w PHP wygląda inaczej Poza tym binduj dane bo teraz masz niebezpieczne zapytanie |
|
|
13.12.2014, 17:17:36
Post
#5
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
W jaki sposob mam zbindowac dane? Poza tym nawet jak wprowadzilem zmiany to i tak wyswietla mi takie bledy:
|
|
|
13.12.2014, 17:27:23
Post
#6
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 15 Dołączył: 3.06.2010 Ostrzeżenie: (0%) |
W jaki sposob mam zbindowac dane? Poza tym nawet jak wprowadzilem zmiany to i tak wyswietla mi takie bledy:
zamień na -------------------- Nie bój się kliknąć
|
|
|
13.12.2014, 17:30:19
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
Bindować możesz używając PDO
|
|
|
13.12.2014, 17:42:00
Post
#8
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) |
Czy tak powinna wyglądać prawidłowa funkcja?
Nie wiem czy to jest prawidłowo czy nie, ale chodzi mi teraz przede wszystkim o roziwazanie problemu, ktory wczesniej opisalem. Nie, tak nie powinno wyglądać zapytanie. Jedyne o co pytasz to czy istnieje użytkownik o podanym loginie i haśle, jeśli tak to pobierasz jego ID - jeśli nie to nie podajesz żadnych danych (np. dla osób które chcą się włamać), tylko dajesz komunikat że błąd. Kod SELECT id_user FROM przedrostek.uzytkownicy WHERE login='zmienna' AND haslo='hash_hasla' LIMIT 1 Powinno załatwić sprawę. -------------------- |
|
|
13.12.2014, 19:26:27
Post
#9
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Dzięki Falstone i Rysh Udało się.
Co do PDO to duzo troche jest o tym. Możesz powiedzieć jak to robić? Byłbym również bardzo wdzieczny gdybyś pokazał mi jakąś instrukcje w jezyku polskim, bo to co jest na php.net to magia. Nie wiadomo za co się złapać i co robić. Ten post edytował castagir 13.12.2014, 19:27:31 |
|
|
13.12.2014, 19:36:01
Post
#10
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
Łączysz się z bazą danych
przygotowujesz zapytanie
bindujesz dane w zapytaniu: :login i :haslo
wykonujesz zapytanie
pobierasz dane
tym sposobem w $row masz pobraną kolumnę. Sprawdzisz to przez |
|
|
14.12.2014, 15:51:45
Post
#11
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Takie cos mi wywala.
Natomiast, gdy zrezygnuję z drugiej części i pzostawię tylko:
Wywala mi błąd:
Ten cały PDO jest do niczego. Nie potrafi odczytać stałych, w porównaniu do zwykłej procedury mysqli_connect. Manual jest tak nieczytelny, ze szkoda słów. Jest jakaś książka albo instrukcja w języku polskim? |
|
|
14.12.2014, 15:56:05
Post
#12
|
|
Grupa: Zarejestrowani Postów: 821 Pomógł: 111 Dołączył: 11.09.2006 Skąd: Biała Podlaska Ostrzeżenie: (0%) |
Nie dawaj tam stałych tylko wpisz dane do logowania.
Cytat 'SQLSTATE[28000] [1045] Access denied for user 'www-data'@'localhost' (using password: NO)' Nie może połączyć się z bazą, błędny login i/lub hasło. -------------------- |
|
|
14.12.2014, 15:59:35
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Przecież jest użytkownik tylko nie ma dostępu, jest bez hasła. Zrób sobie echo tego ciągu >>'mysql:host='.NAZWA_SERWERA_BD.';dbname='.NAZWA_BD.', '.NAZWA_UZYT_BD.', '.HASLO_UZYT_BD i zobacz czy wszystko jest poprawnie. Poza tym to nie w PDO problem tylko w programiście Ja kiedyś pisałem o tym. Masz w mojej stopce artykuł.
-------------------- |
|
|
14.12.2014, 16:34:06
Post
#14
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Wkurzony byłem i tak napisałem. Chwilę po zamieszczeniu ostatniego postu udało mi się wreszcie właściwie połączyć.
Problem teraz jest inny. Dalej poszeðłem według rad Tursona i ostatecznie mam zmienną z zbindowanymi danymi($wynik): Chciałbym teraz te dane wyciągnąć na zewnątrz. Niestety teraz gdy próbuje wyciągnąć wynik tej zmiennej za pomocą "return" na zewnątrz funkcji, jedyne co mi pokazuje to NULL. Co znowu źle zrobiłem?
PS Rysh: Robię intuicyjną platformę, którą może sobie sam skonfigurować administrator toteż nie mogą być tam wpisane po prostu dane, tylko muszę one zostać tam umieszczane za pośrednictwem stałych, które sa implementowane z innego pliku. Ten post edytował castagir 14.12.2014, 16:36:10 |
|
|
14.12.2014, 17:35:36
Post
#15
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
W samym zapytaniu nie bindujesz tych parametrów tylko podstawiasz zmienne. Przeczytaj naprawdę choć jeden przykład zamiast działać na ślepo.
-------------------- |
|
|
14.12.2014, 21:57:48
Post
#16
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Teraz prawie wszystko rozumiem. Umiem juz odpowiednio ulozyc metoda PDO zapytanie, takze polaczyc sie i zbindowac dane. Nie potrafie jeszcze uzywac tych drivers, ale z czasem sie naucze o co w nich kaman.
Niestety wciaz nie wiem w jaki sposob wyciagnac wyniki i jak je wyciagac ze zmiennej. Ten sam problem mialem przy normalnych procedurowach w php mysqli_. Ciagle nie potrafie wywolac danych ze zmiennej chociazby po to aby wyswietlic ja przy pomocy echo, nie mowiac juz o tym aby zastosowac ja w jakiejs funkcji lub obliczeniu. |
|
|
15.12.2014, 07:56:06
Post
#17
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) |
|
|
|
15.12.2014, 10:44:42
Post
#18
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Może inaczej.
Chciałbym osiągnąć coś takiego: Załóżmy, że mam w tabeli takie kolumny z wartościami(zapisze je id/1): id(integer)/1 nazwa(varchar)/uzytkownik haslo(varchar)/12345 data(varchar)/20.12.2014 Chciałbym zrobić coś takiego. Logowanie jest wykonane za posrednictwem jednej funckji. W logowaniu uzytkownik wpisuje swoja nazwe. Nazwa jest zaakceptowana, bo istnieje taki uzytkownik w bazie - sprawdzone dzieki wynik zapytania > 0. Pytanie bylo sformulowane tak, zeby pobrac wszystkie dane z calej tablicy "SELECT * ...". Dane sa zapisane w $pytanie. Chce dane z $pytanie wyciagnac poza funkcje, bo beda mi potrzebne jeszcze do kilku innych operacji. Jak to zrobic? Moglibyscie mi napisac przykladowa funkcje, ktora by objela to wszystko i wyciagnela to o co mi chodzi - czyli dane z zapytania, poza nia? Chodzi mi o to jakbyscie Wy to zrobili, bo poki co, kazdy napisal troche, proboje to jakos polaczyc i nic mi nie wychodzi. W przegladarce wciaz nic nie widac, bo dane wciaz sa uwiezione w funkcji. Ten post edytował castagir 15.12.2014, 10:46:32 |
|
|
15.12.2014, 11:07:12
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 457 Pomógł: 6296 Dołączył: 27.12.2004 |
W ostatnim poscie Tursona dostałes odpowiedź....
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.12.2014, 12:52:25
Post
#20
|
|
Grupa: Zarejestrowani Postów: 146 Pomógł: 3 Dołączył: 28.10.2014 Ostrzeżenie: (10%) |
Robię właśnie to iwciąż nic nie otrzymuję.
Podaje kilka kombinacji jakie robiłem, aby otrzymac wynik:
Nic nie działa. Nic nie pokazuje. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 18:42 |