![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 34 Dołączył: 16.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym uniemożliwić wprowadzanie niektórych imion do bazy danych, np Tomasz, Ania i Jacek. Zrobiłem wiec tabele w której przechowuje te imiona, a w pliku odbierajacym dane z formularza wyciągam te nicki i tworze pętlę a w niej if($_POST["imie"] != $row["imie"]) exit();
To juz na starcie nie ma prawa dzialac jeśli w tabeli mam więcej niż 2 imiona. Ma ktoś jakiś pomysł jak to zrealizować? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 218 Pomógł: 16 Dołączył: 6.06.2014 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie, nie, nie.
Pobierasz sobie te imiona, a następnie dajesz je do tablicy asocjacyjnej lub tworzysz nową dodając na kolejne miejsce kolejny argument. Potem sprawdzasz funkcja in_array czy jest w tablicy. Jak Ci pomóc z kodem to podaj fragment. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy zrozumiałem dobrze Twój post, w każdym razie jeżeli trzymasz te imiona w tabeli w bazie, to czemu nie zrobisz zapytania, które sprawdzi czy takie imię nie jest na liście niedozwolonych? Co w przypadku, gdy na tą listę trafi nagle milion imion? Nadal będziesz wyciągał wszystkie z bazy i w php to sprawdzał?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 34 Dołączył: 16.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi Panowie, tak to ma wyglądać?
Coś takiego będzie działać? Pytam bo pisze z telefonu i nie mam jak sprawdzić Dodam że w zmiennej sprawdz_imie może być więcej imion niż jedno Kapslokk, nie znam niestety takiego zapytania Ten post edytował Star 4.07.2015, 22:23:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli w tabeli imiona przechowywujesz imiona 'niedozwolne' to zrób selecta takiego jak napisales, a potem przez mysql_num_rows sprawdz czy zostalo znalezione, jesli tak to exit() czy co tam chcesz (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 34 Dołączył: 16.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
No ja tak zrobiłem, mysql_num_rows użyłem do określenia ile pętli wykonać, ale jak napisałem w pierwszym poście to nie zadziałało ponieważ jeśli miałbym więcej niż 1 imię w tabeli to już przy drugiej pętli by dodało, a więc zawsze.
Myślałem tez aby zrobić tymczasowa tabele i tak: pierw w pętli tworze kod który sprawdza czy w bazie z niedozwolonymi imionami jest te podeslane z formularza, jeśli tak to zapisuje je do tymczasowej tabeli a potem robie kod sprawdzający czy w tej tabeli jest jakieś imię, jeśli tak to będzie ono niedozwolone i blokuje przesłanie do BD, jeśli tabela jest pusta to przesyłam dane. Co myślicie o takim rozwiązaniu? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Pomyśl przez chwile. Jeżeli zrobisz:
To znajdziesz tylko imiona które pasują do nicku. Czyli jeżeli na liście imion będziesz miał imie 'tomek' i w zmiennej $nick 'tomek' to wtedy znajdziesz dokładnie jeden wiersz (mysql_num_rows() == 1), jeżeli imię nie zostanie znalezione w tabeli imion to wtedy znaczy, ze imie jest dozwolone (mysql_num_rows() == 0) i po problemie. Chyba, że to ja czegoś nie kumam, wtedy proszę o wytłumaczenie mi tego jak krowie na rowie (IMG:style_emoticons/default/wink.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 294 Pomógł: 34 Dołączył: 16.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
te WHERE nick odnosi się do zalogowanego użytkownika, $nick przechowuje zmienna sesyjna :-)
No ale można dodać do tego operator logiczny AND i zrobić AND imie = $_POST[imie] i będzie wszystko grało. Dzięki :-) |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 965 Pomógł: 285 Dołączył: 19.06.2015 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie pokazałeś całego kodu, a ja wróżyć nie potrafię (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:55 |