Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]przeróbka skryptu php [pytanie]
Forum PHP.pl > Forum > Przedszkole
lazzar
Witam

Jestem właścicielem serwisu oferującego galerie zdjęć. Umieściłem je w specjalnej strefie i chciałbym za dostęp do tego działu pobierać opłatę. Zarejestrowałem się w serwisie allpay i ściągnąłem odpowiednie skrypty. Jednak jest pewien problem. Muszę tak przerobić skrypt by po kliknięciu na specjalny link owy skrypt sprawdzał czy urzytkownik ma wykupiony bonament czy nie. W razie wykupionego abonamentu będzie przenosił go do strefy ze zdjęciami, a w innym przypadku będzie go przenosił do odpowiedniej strony gdzie będzie można wykupić kod dostępu.

Po opisaniu problemu gościowi z allpay dowiedziałem się jak przerobic skrypt by przenoslił urzytkownika po wpisaniu złego kodu, ale nie jestem pewien czy ten sam trik będzie działam w przypadku braku kodu. I tu właśnie potrzebuję waszej pomocu. Napiszcie czy taki skrypt będzie działam tak jak chcę czy muszę coś jeszcze zmienić. Z góry dziekuję za odpowiedzi.

A oto ten skrypt:

################################################################################
############################################
if($check == NULL)
exit("Prosze wpisac kod");

$array = array();
$array['code'] = $code;
$array['check']= $check;
$array['id'] = $id;
$array['type'] = $type;
$array['del'] = $del;
$ch = curl_init ();
curl_setopt ($ch, CURLOPT_URL, "https://ssl.allpay.eu/check_code.php");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_TIMEOUT, 100);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $array);
$recv = curl_exec ($ch);
curl_close ($ch);

$dane = explode("\n", $recv);
$status = $dane[0];
$czas_zycia = $dane[1];

if ($status == 0) {header("Location: main.php"); 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ł±czenie strony głównej
}
?>

Nie znam się za bardzo na php i chciałbym się dowiedzieć czy to zadziała czy nie?
drPayton
1. Dostaw tagi do kodu, będzie czytelniejszy
2. Weryfikacja następuję już w allpay, więc to od ich systemu zależy. Ale możesz mieć 99,99% pewności, że brak kodu zadziała tak samo jak błędny kod (czyli tu u Ciebie zmienna $status będzie miała 0).
3. Nie ma jednak sensu, by nawiązywać komunikację z allpayem w przypadku braku kodu, lepiej samemu dorobić obsługę takiego zdarzenia.

Nie wiem co to jest $check, ale kod jak zakładam jest w zmiennej $code. Jeśli tak, to zamiast
  1. <?php
  2. if($check == NULL)
  3. exit("Prosze wpisac kod");
  4. ?>

Daj:
  1. <?php
  2. if($check == NULL || empty($code))
  3. exit("Prosze wpisac kod");
  4. ?>

Tylko jedna sprawa: skąd biorą się te dane ($check, $code etc)?
Jeżeli z tablicy $_GET lub $_POST to pozmieniaj (np $code na, odpowiednio $_GET['code'] lub $_POST['code']). Jeśli są gdzieś wcześniej zadeklarowane to nie ruszaj winksmiley.jpg
lazzar
dzięki za odpowiedź
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.