Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z płatnym zabezpieczeniem strony w dotpay.pl
Forum PHP.pl > Forum > Przedszkole
greg302006
Witam
Jestem tu nowy, postanowiłem tu wejśc bo nie umiem sobie poradzić, dla niektórych pewnie, z prostym problemem.
Założyłem strone www, w której dostęp będzie płatny za pomoca sms premium. Zarejestrowałem usługe w dotpay, pobrałem niezbędne pliki, zmodyfikowałem pod moje ID i wrzuciłem na serwer.
Dotpay oferuje zestaw składający się z:
index.html
sprawdzacz.php
sprawdz.php
main.php-strona testowa, która ma sie otworzyć po wpisaniu kodu na stronie głównej(index.html)
main.php jest zabezpieczona poprzez funkcję:<?php include "sprawdzacz.php"; ?>.
Wszystko działa cacy, kod wygenerowany przekierowuje na main.php, kod zły odmawia dostępu...ale main.php można otworzyć bezpośrednio, omijając główną stronę np. wpisując ją do ulubionych.
Ktoś pomoże?
Ramzaa
Bez kodu to my naprawdę dużo możemy Rkingsmiley.png
tehaha
to zrób tak, żeby po poprawnej weryfikacji została ustawiona zmienna sesyjna i jak jej nie ma to nie można wejść na main.php
Ramzaa
Ogólnie z tego co ja pamiętam, w tym skrypcie jest coś z sesjami.. dlatego napisałem, żeby podał kod.
tehaha
teraz patrzę, że sprawdzacz.php (o ile się kod nie zmienił) jest oparty o ciastka, i tam masz domyślnie ustawione przez jaki czas użytkownik ma jeszcze dostęp po wpisaniu poprawnego kodu, więc jeżeli nie chcesz żeby mógł sobie potem wchodzić to ustaw ten czas na np. na 10min.
greg302006
Cytat(tehaha @ 24.08.2010, 13:03:06 ) *
teraz patrzę, że sprawdzacz.php (o ile się kod nie zmienił) jest oparty o ciastka, i tam masz domyślnie ustawione przez jaki czas użytkownik ma jeszcze dostęp po wpisaniu poprawnego kodu, więc jeżeli nie chcesz żeby mógł sobie potem wchodzić to ustaw ten czas na np. na 10min.


<?php # skrypt sprawdzający ważność kodu
if (!isset($_COOKIE['ActiveCode']))
{
print "koniec czasu<BR>";
unset($_COOKIE[session_name()]);
exit;
}
?>

Taki jest sprawdzacz.php. Co tu zmienić?
vermis
tutaj nic poszukaj ustawienia ciastka: funkcja setcookie()
greg302006
Cytat(vermis @ 24.08.2010, 13:29:45 ) *
tutaj nic poszukaj ustawienia ciastka: funkcja setcookie()

Funkcja ciastka jest w sprawdz.php z tego co widze

<?php

$id = .......; # numer ID zarejestrowanego klienta
$code = "........."; # identyfikator usług SMS
$type = "sms"; # typ konta: C1 - 8 znakowy kod bezobsługowy
# typ konta: sms dla sprawdzania SMSow
$page = "main.php"; # nazwa pliku jaki ma sie zaladowac po podaniu poprawnego kodu


# gdy sprawdzane będ&plusmn; zarówno konta smsowe jak i konta przy płatno&para;ciach kart&plusmn;
# to należy wtedy użyć zapisu:
# $type = "c1,sms";

#
# przy sprawdzaniu kilku kont o różnych identyfikatorach należy użyć zapisu:
# $code = "abcd1,abcd2,kody2,kody6";

$del=0; # jeżeli kod ma być skasowany od razu po sprawdzeniu to ustaw warto&para;ć na 1
################################################################################
#
$check = $_POST['check']; # podany kod na stronie gdzie wej&para;cie jest płatne i wymagany jest zakupiony kod
if($check == NULL)
exit("Prosze wpisac kod");


$handle = fopen("http://dotpay.pl/check_code.php?id=".$id."&code=".$code."&check=".$check."&type=".$type."&del=".$del, 'r');
$status = fgets($handle, 8);
$czas_zycia = fgets($handle, 24);
fclose($handle);
$czas_zycia = rtrim($czas_zycia);



if ($status == 0) {print "Kod niepoprawny."; exit;} # gdy kod niepoprawny
else
{ # gdy kod poprawny:
if (!isset($_COOKIE['ActiveCode']))
{
setcookie('ActiveCode',1, time()+$czas_zycia);
}
else
{
setcookie('ActiveCode',0, time()+2, "/");
setcookie('ActiveCode',1, time()+$czas_zycia, "/");
}
header("Location: ".$page); # wł&plusmn;czenie strony głównej
}
?>
tehaha
zmienna, która Cię interesuje to $czas_zycia , w niej ustawiasz czas życia ciastka czyli czas dostępu w sekundach, więc ustaw jakiś krótki
greg302006
Cytat(tehaha @ 24.08.2010, 13:43:14 ) *
zmienna, która Cię interesuje to $czas_zycia , w niej ustawiasz czas życia ciastka czyli czas dostępu w sekundach, więc ustaw jakiś krótki

Aha...a konkretnie w którym miejscu, zakładając że chciałbym aby to była minuta?...Pamiętajmy że pisze w dziale Przedszkole:)

Dzięki wszystkim, pomogły sugestie i z braku dalszych podpowiedzi doszedłem gdzie zmienić czas życia party.gif ...ale pojawił sie drugi problem, moja stronka (płatna) przechodzi w podstronę, która już się otwiera bez problemu sciana.gif . Czy ten czas życia można dodac na podstronce? Czy trzeba ją dodać w sprawdzaczu? Pomości!
Ramzaa
<?php include("sprawdzacz.php"); ?>

? smile.gif
greg302006
Eh, no to nie jest takie proste, ta funkcja juz odnosi sie do strony glownej, jak ją wpisuje w podstrone to wywala błąd, probowalem dodac ją jako drugą strone do otwarcia po podaniu kodu i...też błąd

Problem rozwiązałem, dzięki za pomoc, sugestie pomogły a resztę sam jakoś wykombinowałem. Temat zamykam guitar.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.