Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pseudo baza danych i dezaktywacja
Forum PHP.pl > Forum > PHP
bartinkopl
Witam!

A więc chciałbym zrobić coś takiego że byłaby taka pseudo baza danych w której byłyby cyfry

np.


20609409405903
23010391039109
95498594893392


i jeśli ktoś wpisze do formularza na stronie 20609409405903 i kliknie okej, to kod sie dezaktywuje i usuwa z bazy danych, i w ogóle jakby trzeba było zrobić, żeby po wpisaniu 20609409405903 przenosiłoby na inną stronę a wpisaniu jakiegoś o28491849184918 by pisało "Błędny kod"

Z góry dziękuję za pomoc!
Uriziel01
Nie rób pseudo bazy tylko faktycznie zrów sobie bazę w MySQL, tabele `codes` [code_id, code] przy wyświetlaniu formularza nic jeszcze nie robisz, dopiero w momencie wysłania zawartości formularza robisz szukanie w bazie przy WHERE code = '" . $_POST['code'] . '" jeżeli baza zwraca jakiekolwiek wyniki to mamy sukces, zwrócone id wykorzystujemy do usunięcia danego wiersza z bazy.
Sephirus
hmmm nie wiem co rozumiesz przez pseudo-bazę smile.gif

W sumie to co napisał ~Uriziel01 jest najlepszym rozwiązaniem, ale jeśli masz mieć mało tych rekordów i nie chcesz używać bazy... to zawsze możesz użyć pliku tekstowego o określonej konstrukcji ale jest z tym nieco zabawy...

najlepszy byłby plik w formacie CSV:

Kod
1293128319023132;http://www.strona1.pl
1234094109891284;http://www.strona2.pl
0993819283891773;http://www.strona3.pl
0104021401924182;http://www.strona4.pl
0109102491238910;http://www.strona5.pl
.
.
.
itd...


Teraz otwierasz plik poprzez fopen(), lecisz w while'u po każdej linii (fgets()) , explode'ujesz linie po ";" i sprawdzasz czy podany numer jest taki jak w linii jak jest to zapisujesz skojarzony adres, usuwasz z pliku linię (patrz dalej) i przekierowywujesz. Jeśli po całej pętli while nie znajdziesz danego numeru wyrzucasz "niepoprawny numer".

Co do usuwania danej linii z pliku, metod jest wiele... ale chyba żadna nie jest ani wydajna ani optymalna pod tym kątem... Poszukaj jakiegoś info u wujka google - tylko nie korzystaj z funkcji "file()" jeśli plik będzie duży...

by_ikar
sqlite stoi otworem - baza w pliku wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.