

serwis kody wapacz dał mi takie instrukcje ale nie wiem jak to zrobić prosze o pomoc

Cytat
5. PRZYKŁADOWE SKRYPTY
Zakładam, że kody są już wygenerowane i znajdują sie w jakimś pliku tekstowym. Po wygenerowaniu kodow należy wrzucić je do bazy danych na swoim serwerze. Nasza przykładowa tabela będzie miała taką strukturę:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| kod | varchar(16) | YES | | NULL | |
| data | bigint(15) | YES | | 0 | |
+-------+-------------+------+-----+---------+-------+
Należy pamiętać żeby połączyć się z bazą danych, przed rozpączeciem operacji na tabelach:
mysql_pconnect('host','uzytkownik','haslo');
W celu dodania kodów do tabeli wywołujemy następującą funkcję:
function wrzuc_kody($baza, $tabela, $plik){
mysql_select_db($baza);
$insert = "INSERT INTO $tabela VALUES ";
$f = fopen("$plik","r");
while ($kod = fscanf($f, "%s")){
$insert .= "('$kod[0]',''),";
}
$insert = substr($insert,0, strlen($insert)-1);
mysql_query($insert);
}
Parametry tej funkcji:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$plik - nazwa pliku z wygenerowanymi kodami
Teraz kiedy nasze kody są już w tabeli, możemy zająć się ich obsługą. Kiedy użytkownik podaje kod, musimy sprawdzić dwie rzeczy:
1. Czy podany kod jest prawidłowy
2. Czy podany kod nie został już wcześniej użyty
Jeżeli oba powyższe warunki będą spełnione, wtedy możemy dać użytkownikowi dostęp do płatnej usługi. Oczywiście musimy też oznaczyć użyty kod, tak żeby nie można było użyć go ponownie.
W tym przykładzie kluczową role gra pole data z tabeli zawierającej kody. Jeśli wartość tego pola jest równa 0, znaczy to że dany kod nie został użyty. W przeciwnym wypadku wartość tego pola zawiera datę użycia kodu.
Funkcja sprawdzająca czy podany kod jest poprawny i czy nie został wcześniej użyty:
(pamiętaj o połączeniu się z bazą danych)
function sprawdz_kod($baza, $tabela, $kod){
mysql_select_db($baza);
$pyt = "SELECT * FROM $tabela WHERE kod='$kod'";
$odp = mysql_query($pyt);
$r = mysql_fetch_array($odp);
if ($r[data]=='0'){
// kod jest poprawny wiec dajemy klientowi dostep do jakiejs uslugi
dostep_do_uslugi();
// deaktywujemy uzyty kod
$pyt = "UPDATE $tabela SET data='$data' WHERE kod='$kod'";
mysql_query($pyt);
}
}
PARAMETRY:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$kod - kod wpisany przez użytkownika
Powyższy przykład pozauje w jaki sposób wykorzystać kody do jednorazowego dostępu do usługi. Jednak dzięki kodom można dać użytkownikowi dostęp do płatnej częsci serwisu na określony czas. W tym celu trzeba będzie "trochę" zmodyfikować naszą funkcje sprawdzającą, oraz dodac jedno pole w tabeli z kodami. Może najpierw funkja,a pozniej opis działania.
function sprawdz_kod($baza, $tabela, $kod, $czas_zycia){
global $kod_cookie;
$teraz = time();
mysql_select_db($baza);
$pyt = "SELECT * FROM $tabela WHERE kod='$kod' AND uzyty='0'";
$odp = mysql_query($pyt);
$r = mysql_fetch_array($odp);
// zly kod
if ($r==""){
return 0;
}
else {
// prawidlowy kod jeszcze nie uzywany
if ($r[data]==0){
$czas = $teraz+$czas_zycia;
setcookie("kod_cookie", $kod,$czas);
$query = "UPDATE $tabela SET data='$teraz' WHERE kod = '$kod'";
mysql_query($query);
return 1;
}
// prawidlowy i juz startowany
else {
// uplynal jego czas waznosci
if ($teraz >= ($r[data]+$czas_zycia)){
$query = "UPDATE $tabela SET uzyty='1' WHERE kod='$kod'";
mysql_query($query);
return 0;
}
// jeszcze nie skonczyl sie jego czas waznosci
else {
$czas = $teraz+$czas_zycia;
setcookie("kod_cookie", $kod,$czas);
return 1;
}
}
}
}
PARAMETRY:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$kod - kod wpisany przez użytkownika
$czas_zycia - okresla jak dlugo dany kod ma byc wazny (wartosc w sekundach)
Aby powyższa funkcja działała poprawnie, do tabeli musi zostać dodane jedno pole: uzyty, o wartosci początkowej 0. Jeśli wartość ta zostanie ustawiona na 1, będzie to znaczyło, że upłynął czas przez jaki kod miał być ważny.
Teraz opis funkcji:
Na początku sprawdzamy czy dany kod jest prawidłowy i czy nie upłynął jego termin ważności. Jeśli któryś z obu warunków nie jest spełniony, funkcja zwraca wartość 0 (czyli nie dajemy dostępu do płatnej części serwisu). W przeciwnym wypadku sprawdzamy:
- datę użycia kodu - jeśli jej wartość jest równa 0 znaczy to, że kod nie był używany. W tej sytuacji ustawiamy cookie, którego wartością jest kod, a czas życia jest ustalony zmienną $czas_zycia. Następnie ustawiamy w bazie datę użycia kodu.
Jeśli jednak data użycia kodu będzie różna od zera, to musimy sprawdzić czy nie minął termin ważności kodu (warunek if ($teraz >= ($r[data]+$czas_zycia))). Jeśli termin ważności upłynął, ustawiamy w tabeli pole uzyty na 1 co jest jednoznaczne z kodem nieważnym. W przeciwnym wypadku ustawiamy nowego cookiesa i zwracamy wartość 1 (czyli wpuszczamy do płatnej części serwisu).
Cała funkcja jest wywoływana tylko wtedy, jeśli na komputerze użytkownika nie ma zarejestrowanego cookie z kodem.
Zakładam, że kody są już wygenerowane i znajdują sie w jakimś pliku tekstowym. Po wygenerowaniu kodow należy wrzucić je do bazy danych na swoim serwerze. Nasza przykładowa tabela będzie miała taką strukturę:
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| kod | varchar(16) | YES | | NULL | |
| data | bigint(15) | YES | | 0 | |
+-------+-------------+------+-----+---------+-------+
Należy pamiętać żeby połączyć się z bazą danych, przed rozpączeciem operacji na tabelach:
mysql_pconnect('host','uzytkownik','haslo');
W celu dodania kodów do tabeli wywołujemy następującą funkcję:
function wrzuc_kody($baza, $tabela, $plik){
mysql_select_db($baza);
$insert = "INSERT INTO $tabela VALUES ";
$f = fopen("$plik","r");
while ($kod = fscanf($f, "%s")){
$insert .= "('$kod[0]',''),";
}
$insert = substr($insert,0, strlen($insert)-1);
mysql_query($insert);
}
Parametry tej funkcji:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$plik - nazwa pliku z wygenerowanymi kodami
Teraz kiedy nasze kody są już w tabeli, możemy zająć się ich obsługą. Kiedy użytkownik podaje kod, musimy sprawdzić dwie rzeczy:
1. Czy podany kod jest prawidłowy
2. Czy podany kod nie został już wcześniej użyty
Jeżeli oba powyższe warunki będą spełnione, wtedy możemy dać użytkownikowi dostęp do płatnej usługi. Oczywiście musimy też oznaczyć użyty kod, tak żeby nie można było użyć go ponownie.
W tym przykładzie kluczową role gra pole data z tabeli zawierającej kody. Jeśli wartość tego pola jest równa 0, znaczy to że dany kod nie został użyty. W przeciwnym wypadku wartość tego pola zawiera datę użycia kodu.
Funkcja sprawdzająca czy podany kod jest poprawny i czy nie został wcześniej użyty:
(pamiętaj o połączeniu się z bazą danych)
function sprawdz_kod($baza, $tabela, $kod){
mysql_select_db($baza);
$pyt = "SELECT * FROM $tabela WHERE kod='$kod'";
$odp = mysql_query($pyt);
$r = mysql_fetch_array($odp);
if ($r[data]=='0'){
// kod jest poprawny wiec dajemy klientowi dostep do jakiejs uslugi
dostep_do_uslugi();
// deaktywujemy uzyty kod
$pyt = "UPDATE $tabela SET data='$data' WHERE kod='$kod'";
mysql_query($pyt);
}
}
PARAMETRY:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$kod - kod wpisany przez użytkownika
Powyższy przykład pozauje w jaki sposób wykorzystać kody do jednorazowego dostępu do usługi. Jednak dzięki kodom można dać użytkownikowi dostęp do płatnej częsci serwisu na określony czas. W tym celu trzeba będzie "trochę" zmodyfikować naszą funkcje sprawdzającą, oraz dodac jedno pole w tabeli z kodami. Może najpierw funkja,a pozniej opis działania.
function sprawdz_kod($baza, $tabela, $kod, $czas_zycia){
global $kod_cookie;
$teraz = time();
mysql_select_db($baza);
$pyt = "SELECT * FROM $tabela WHERE kod='$kod' AND uzyty='0'";
$odp = mysql_query($pyt);
$r = mysql_fetch_array($odp);
// zly kod
if ($r==""){
return 0;
}
else {
// prawidlowy kod jeszcze nie uzywany
if ($r[data]==0){
$czas = $teraz+$czas_zycia;
setcookie("kod_cookie", $kod,$czas);
$query = "UPDATE $tabela SET data='$teraz' WHERE kod = '$kod'";
mysql_query($query);
return 1;
}
// prawidlowy i juz startowany
else {
// uplynal jego czas waznosci
if ($teraz >= ($r[data]+$czas_zycia)){
$query = "UPDATE $tabela SET uzyty='1' WHERE kod='$kod'";
mysql_query($query);
return 0;
}
// jeszcze nie skonczyl sie jego czas waznosci
else {
$czas = $teraz+$czas_zycia;
setcookie("kod_cookie", $kod,$czas);
return 1;
}
}
}
}
PARAMETRY:
$baza - nazwa bazy danych w której znajduje się tabela z kodami
$tabela - nazwa tabeli do której będą wrzucone kody
$kod - kod wpisany przez użytkownika
$czas_zycia - okresla jak dlugo dany kod ma byc wazny (wartosc w sekundach)
Aby powyższa funkcja działała poprawnie, do tabeli musi zostać dodane jedno pole: uzyty, o wartosci początkowej 0. Jeśli wartość ta zostanie ustawiona na 1, będzie to znaczyło, że upłynął czas przez jaki kod miał być ważny.
Teraz opis funkcji:
Na początku sprawdzamy czy dany kod jest prawidłowy i czy nie upłynął jego termin ważności. Jeśli któryś z obu warunków nie jest spełniony, funkcja zwraca wartość 0 (czyli nie dajemy dostępu do płatnej części serwisu). W przeciwnym wypadku sprawdzamy:
- datę użycia kodu - jeśli jej wartość jest równa 0 znaczy to, że kod nie był używany. W tej sytuacji ustawiamy cookie, którego wartością jest kod, a czas życia jest ustalony zmienną $czas_zycia. Następnie ustawiamy w bazie datę użycia kodu.
Jeśli jednak data użycia kodu będzie różna od zera, to musimy sprawdzić czy nie minął termin ważności kodu (warunek if ($teraz >= ($r[data]+$czas_zycia))). Jeśli termin ważności upłynął, ustawiamy w tabeli pole uzyty na 1 co jest jednoznaczne z kodem nieważnym. W przeciwnym wypadku ustawiamy nowego cookiesa i zwracamy wartość 1 (czyli wpuszczamy do płatnej części serwisu).
Cała funkcja jest wywoływana tylko wtedy, jeśli na komputerze użytkownika nie ma zarejestrowanego cookie z kodem.
baze danych utworzyłem ale nie dałem tak kodów bo nie wiem jak
