![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Witam. Potrzebuję pomocy! Nie wiem jaki skrypt PHP jest w stanie wyświetlić po kolei rekordy z bazy danych. Może wytlumacze to inaczej... W bazie danych zawarte są 16 znakowe kody, które wpisywane są tam przeze mnie. Każdy kod przyporzadkowany ma numer ID. Chce by kody te były wyswietlane TYLKO RAZ i po kolei według przyporzadkowanych numerów ID. Proszę o szybką odpowiedz (IMG:style_emoticons/default/winksmiley.jpg)
Z góry dziękuje za pomoc. Pozdrawiam! |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jesli kiedys bedziesz sie zajmowal wspolbieznoscia, to zorientujesz sie, ze to, co Ci napisano, to stek bzdur. Dlaczego? Bo strony internetowe sa systemami wielodostepnymi - wiele osob moze (i robi to) korzystac z nich jednoczesnie.
Skad masz pewnosc, ze miedzy sprawdzeniem, ostatniego wolnego kodu a oznaczeniem go, jako uzywany nikt inny nie sprawdzi ostatniego wolnego kodu? W ten sposob (przez krotka chwile, to prawda) dwie osoby dostana ten sam kod (bo w chwili sprawdzania dla obu byl wolny) i obie poprawia go na zajety. Tak naprawde powinienes oznaczac kod jako uzywany, jeszcze nim go uzyjesz. Jak? Np. zamiast flagi used dodaj identyfikator sesji uzytkownika kodu:
I teraz - rezerwacja tokena to najpierw update: W tym momencie token jest zarezerwowany i NIKT na pewno go wiecej nie zajmie. Blokowanie ostatniego jest operacja atomowa na poziomie bazy danych, wiec nie ma mozliwosci zablokowania tego samego rekordu. Dalej pobieramy (tak, dopiero teraz, nie wczesniej!) ostatni zarezerwowany przez nas token (bo dawno dawno temu, ktos mogl miec taki sam identyfikator sesji). Czepiam sie, bo tylko milisekundy miedzy jednym i drugim? Moze, ale kody jednorazowe stosuje sie raczej w systemach "wysokiego" bezpieczenstwa i taka rada moze Cie uchronic przed pozniejszymi problemami. Poza tym - ucz sie dobrych nawykow. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.10.2025 - 07:42 |