• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Php - zapytanie do bazy danych

Object Storage Arubacloud
0 głosów
827 wizyt
pytanie zadane 10 marca 2017 w PHP przez seba Dyskutant (8,900 p.)

Witam, jestem przy oglądaniu drugiego odcinka P.Zelenta i pokusiłem się na stworzenie systemu rejestracji. Czyli w skrócie ktoś podaje login,hasło i email a PHP wysyła pytanie MySQL czy istnieje już ktoś o podanym loginie i e-mailu jeśli tak wracasz na stronę główną jeśli nie to poprawnie wprowadziłeś dane. I tu pojawia się moje pytanie napisałem coś takiego 

$sql="SELECT nick,email FROM uzytkownicy WHERE nick='$login' AND email='$email'";
if($rezultat=$polaczenie->query($sql))
{
....
}

 

ale potem uświadomiłem sobie "hej przecież to jest true bo pytanie zostało wysłane poprawne" a mi chodzi żeby sprawdziło czy takie dane istnieją w bazie danych a jeśli nie to nwm niech zwróci fałsz i nie wiem jak to zrobić.

2 odpowiedzi

+1 głos
odpowiedź 10 marca 2017 przez Arkadiusz Waluk Ekspert (287,950 p.)
wybrane 10 marca 2017 przez seba
 
Najlepsza

Można to zrobić na różne sposoby:

  • Używasz COUNT w zapytaniu, baza zwraca już policzoną ilość rekordów. Robisz np. fetch_assoc() i sprawdzasz czy zwróciło 0 - jeśli tak to nie ma rekordów z takimi danymi.
  • Wyciągasz z bazy rekordy (tak jak robisz teraz) i sprawdzasz ilość wierszy poprzez num_rows - jeśli jest ich 0 to nie ma rekordów z takimi danymi.
  • Wyciągasz z bazy rekordy tak jak masz, robisz fetch i sprawdzasz czy nic nie zostało zwrócone (np. empty()) - jeśli tak to znaczy, że żaden rekord nie spełnił WHERE, czyli nie ma konta na takie dane.

PS jak dobrze pamiętam to w kolejnym odcinku poradnika jest omówione tworzenie rejestracji i tam też jest rozwiązanie Twojego problemu.

PS2 ja zamiast mysqli polecam PDO i w nim użycie bindowania, aby zabezpieczyć się przed sql injection.

PS3 zastanowiłbym się, czy takie sprawdzanie, jakie wykonujesz jest dobre. To znaczy czy na pewno chcesz sprawdzać tylko sytuację, gdy użytkownik wybierze ten sam login i email? A gdy wybiorę sobie inny login i już użyty email to będę mógł się zarejestrować? Przeważnie email jak i login robi się całkowicie unikalny.

komentarz 10 marca 2017 przez seba Dyskutant (8,900 p.)
Masz racje zwrócę na to uwagę i dziękuje za pomoc.
0 głosów
odpowiedź 10 marca 2017 przez mati2762 Mądrala (5,510 p.)
Radzę skorzystać z mysqli.Zabezpiecza przed atakami SQL Injector. Do przygotowania zapytania .

http://php.net/manual/en/mysqli.prepare.php
komentarz 10 marca 2017 przez seba Dyskutant (8,900 p.)
Ta wiem o wstrzykiwaniu ale po kolei, małe kroczki trzeba robić. Pierwsze szkielet HTML, potem w PHP działanie, następnie zabezpieczenia a potem zabawa CSS. Nie jestem jeszcze w tych atakach ogarnięty więc spokojnie :)
komentarz 10 marca 2017 przez mati2762 Mądrala (5,510 p.)
Na tej stronie masz przykładowy kod do wyciągania danych z bazy

Podobne pytania

0 głosów
1 odpowiedź 2,577 wizyt
pytanie zadane 28 lipca 2017 w SQL, bazy danych przez Mateusz1223 Bywalec (2,440 p.)
0 głosów
2 odpowiedzi 718 wizyt
pytanie zadane 14 sierpnia 2016 w PHP przez Abel Mądrala (5,140 p.)
0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 5 grudnia 2016 w PHP przez gumiss88 Bywalec (2,070 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...