P.S Funkcja mail() jest odblokowana na serverze na ktorym strona jest zamieszczona. I sam skrypt wysyłajacy mail bez sprawdzenie i dodania kodu działa poprawnie.
Cytat
<?php
$sms_code = substr($_POST['sms_code'],0,10); // kod SMS wprowadzony w formularzu
if ($sms_code != ""){
// KONFIGURACJA:
//
// Dane znajdziesz w panelu pod adresem:
// https://platnosci-online.pl/dane_osobowe.html ("Ustawienia konta" > "dane osobowe/firmy")
//
$id_sprzedawcy = 1xxx; // ID Partnera
$klucz_transakcyjny = 'x...x' ; // 32-znakowy klucz do podpisywania transakcji.
// KONIEC konfiguracji
$sufix = substr($_POST['sufsms'], 0, 10); // sufiks usługi SMS
$valsms = intval($_POST['valsms']); // kwota w groszach za SMS
// sprawdzenie kodu SMS
$tablica = array();
$tablica['code'] = $sms_code;
$tablica['id'] = $id_sprzedawcy;
$tablica['sufix'] = $sufix;
$sms_server = 'https://platnosci-online.pl/sms_check.php';
$opch = curl_init();
curl_setopt ($opch, CURLOPT_URL, $sms_server);
curl_setopt ($opch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($opch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($opch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($opch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($opch, CURLOPT_TIMEOUT, 100);
curl_setopt ($opch, CURLOPT_POST, 1);
curl_setopt ($opch, CURLOPT_POSTFIELDS, $tablica);
$wynik = curl_exec ($opch);
curl_close ($opch);
$dane = explode("\n", $wynik);
$status = $dane[0]; // wartości 1 - OK, 0 - błąd
$amount = $dane[1]; // kwota w groszach za SMS (netto), lub numer bledu
$control = $dane[2]; // suma kontrolna
$bkey = pack('H*',$klucz_transakcyjny);
$control_test = md5($id_sprzedawcy.$sufix.$sms_code.$bkey); // oblicz sumę kontrolną transakcji
if ($status == 0) {
// Kod niepoprawny
// Kody błędów:
// jeśli zmienna $status jest równa 0:
// 1 - kod już był raz sprawdzony przez formularz użytkownika więc jest nieważny
// 2 - kod jest niewłaściwy
// 3 - SUFIKS usługi SMS nie należy do Partnera
// 4 - niewłaściwy tryb sprawdzania kodów (zdefiniowana lista kodów a sprawdzenie online)
print "Podany kod jest niewłaściwy lub juz wykorzystany. Kod bledu: ".$amount;
}elseif($status == 1){
if ($control_test==$control) {
// transakcja prawidłowa
if ($amount==$valsms) {
// wyświetl podziękowanie itp.
print 'Dziękujemy za skorzystanie z uslugi SMS.';
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = 'xxx@xxx.com'; // Adres e-mail adresata
$subject = 'przykładowy temat'; // Temat listu
$message = 'Dziękujemy za wysłanie formularza'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
$charset = 'iso-8859-2'; // Strona kodowa
$imie = htmlspecialchars(trim($_POST['imie']));
$mail = htmlspecialchars(trim($_POST['mail']));
$kod = htmlspecialchars(trim($_POST['kod']));
//////////////////////////////
$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
// oplaconych użytkowników Twojego serwisu WWW
// np. udostępnij płatną część serwisu
}else{
// nie zgadza się cena SMS
print 'Blad ceny za SMS.';
}
}else{
// suma kontrolna transakcji się nie zgadza
print 'Blad sumy kontrolnej.';
}
}
}else{
// DANE WEJSCIOWE:
$prefix = "XX"; //xx.xxx
$sufix = "XXX"; // sufiks usługi SMS (dla MPA.ABC będzie to słowo ABC).
$numer_sms = "71XX"; // numer telefonu, pod który trzeba wysłać SMS
$wartosc_sms = "100"; // kwota NETTO w groszach za wysłanie SMS
// KONIEC danych wejściowych
// pokaz formularz
?>
<DIV>
<style type="text/css">
body {
background: url(tlo.png) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
color: white;
font-size: 20px;
}
</style>
<center>
<FORM name="form_sms" method="POST">
Aby zakupic konto VIR, wyslij SMS o tresci <font color="#FF8C00"><? print $prefix; ?>.<? print $sufix; ?></font> na numer <font color="#FF8C00"><? print $numer_sms; ?></font> <BR>
<BR>
Koszt wysłania wiadomosci SMS wynosi <? print number_format($wartosc_sms/100*1.23,2,',',' ') ?> PLN brutto. <BR>
<BR>
W odpowiedzi otrzymasz SMS z kodem aktywacyjnym. I wpisz go w pole poniżej<br><br>
Kod Aktwyacyjny:    <input type="text" name="sms_code" value="" maxlength="10"><br>
<label for="imie">Nick:                        </label>
<input type="text" id="imie" name="imie"/> <br>
<label for="mail">E-mail*:                   </label>
<input type="text" id="mail" name="mail"/> <br>
<br><br>
<a class="style_a" onclick="java script:document.form_sms.submit();" href="#"><input type="submit" value="Wysli" id="send" name="send" /></a>
<input type="hidden" name="valsms" value="">
<input type="hidden" name="sufsms" value="">
</FORM> <BR>
*e-mail - nieobowiazkowy, jednak pozwoli na szybsza reakcje w razie problemów z serwisem<br>
<BR>
Usluga SMS jest dostępna w sieci T-Mobile, Plus GSM, Orange i Play.<BR>
<BR>
Własciciel serwisu: <a style="cursor:pointer;" href="mailto:xxx@xxx.com">xxx@xxx.com</a><BR>
<BR>
Usługę Premium SMS dostarcza i obsluguje <a href="http://www.platnosci-online.pl" target="_blank">Płatnosci-Online.pl</a>
<BR><a href="http://platnosci-online.pl"><img src="pay6.jpg" target="_blank" border="0"></a><BR>
<BR>
Regulamin usługi jest dostępny <a href="http://www.platnosci-online.pl/regulamin_sms.html" target="_blank">na tej stronie</a>.<BR>
<BR>
<center>
</DIV>
<?
}
?>
$sms_code = substr($_POST['sms_code'],0,10); // kod SMS wprowadzony w formularzu
if ($sms_code != ""){
// KONFIGURACJA:
//
// Dane znajdziesz w panelu pod adresem:
// https://platnosci-online.pl/dane_osobowe.html ("Ustawienia konta" > "dane osobowe/firmy")
//
$id_sprzedawcy = 1xxx; // ID Partnera
$klucz_transakcyjny = 'x...x' ; // 32-znakowy klucz do podpisywania transakcji.
// KONIEC konfiguracji
$sufix = substr($_POST['sufsms'], 0, 10); // sufiks usługi SMS
$valsms = intval($_POST['valsms']); // kwota w groszach za SMS
// sprawdzenie kodu SMS
$tablica = array();
$tablica['code'] = $sms_code;
$tablica['id'] = $id_sprzedawcy;
$tablica['sufix'] = $sufix;
$sms_server = 'https://platnosci-online.pl/sms_check.php';
$opch = curl_init();
curl_setopt ($opch, CURLOPT_URL, $sms_server);
curl_setopt ($opch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($opch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt ($opch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($opch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($opch, CURLOPT_TIMEOUT, 100);
curl_setopt ($opch, CURLOPT_POST, 1);
curl_setopt ($opch, CURLOPT_POSTFIELDS, $tablica);
$wynik = curl_exec ($opch);
curl_close ($opch);
$dane = explode("\n", $wynik);
$status = $dane[0]; // wartości 1 - OK, 0 - błąd
$amount = $dane[1]; // kwota w groszach za SMS (netto), lub numer bledu
$control = $dane[2]; // suma kontrolna
$bkey = pack('H*',$klucz_transakcyjny);
$control_test = md5($id_sprzedawcy.$sufix.$sms_code.$bkey); // oblicz sumę kontrolną transakcji
if ($status == 0) {
// Kod niepoprawny
// Kody błędów:
// jeśli zmienna $status jest równa 0:
// 1 - kod już był raz sprawdzony przez formularz użytkownika więc jest nieważny
// 2 - kod jest niewłaściwy
// 3 - SUFIKS usługi SMS nie należy do Partnera
// 4 - niewłaściwy tryb sprawdzania kodów (zdefiniowana lista kodów a sprawdzenie online)
print "Podany kod jest niewłaściwy lub juz wykorzystany. Kod bledu: ".$amount;
}elseif($status == 1){
if ($control_test==$control) {
// transakcja prawidłowa
if ($amount==$valsms) {
// wyświetl podziękowanie itp.
print 'Dziękujemy za skorzystanie z uslugi SMS.';
if (count($_POST))
{
////////// USTAWIENIA //////////
$email = 'xxx@xxx.com'; // Adres e-mail adresata
$subject = 'przykładowy temat'; // Temat listu
$message = 'Dziękujemy za wysłanie formularza'; // Komunikat
$error = 'Wystąpił błąd podczas wysyłania formularza'; // Komunikat błędu
$charset = 'iso-8859-2'; // Strona kodowa
$imie = htmlspecialchars(trim($_POST['imie']));
$mail = htmlspecialchars(trim($_POST['mail']));
$kod = htmlspecialchars(trim($_POST['kod']));
//////////////////////////////
$head =
"MIME-Version: 1.0\r\n" .
"Content-Type: text/plain; charset=$charset\r\n" .
"Content-Transfer-Encoding: 8bit";
$body = '';
foreach ($_POST as $name => $value)
{
if (is_array($value))
{
for ($i = 0; $i < count($value); $i++)
{
$body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
}
}
else $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
}
echo mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
}
// oplaconych użytkowników Twojego serwisu WWW
// np. udostępnij płatną część serwisu
}else{
// nie zgadza się cena SMS
print 'Blad ceny za SMS.';
}
}else{
// suma kontrolna transakcji się nie zgadza
print 'Blad sumy kontrolnej.';
}
}
}else{
// DANE WEJSCIOWE:
$prefix = "XX"; //xx.xxx
$sufix = "XXX"; // sufiks usługi SMS (dla MPA.ABC będzie to słowo ABC).
$numer_sms = "71XX"; // numer telefonu, pod który trzeba wysłać SMS
$wartosc_sms = "100"; // kwota NETTO w groszach za wysłanie SMS
// KONIEC danych wejściowych
// pokaz formularz
?>
<DIV>
<style type="text/css">
body {
background: url(tlo.png) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
color: white;
font-size: 20px;
}
</style>
<center>
<FORM name="form_sms" method="POST">
Aby zakupic konto VIR, wyslij SMS o tresci <font color="#FF8C00"><? print $prefix; ?>.<? print $sufix; ?></font> na numer <font color="#FF8C00"><? print $numer_sms; ?></font> <BR>
<BR>
Koszt wysłania wiadomosci SMS wynosi <? print number_format($wartosc_sms/100*1.23,2,',',' ') ?> PLN brutto. <BR>
<BR>
W odpowiedzi otrzymasz SMS z kodem aktywacyjnym. I wpisz go w pole poniżej<br><br>
Kod Aktwyacyjny:    <input type="text" name="sms_code" value="" maxlength="10"><br>
<label for="imie">Nick:                        </label>
<input type="text" id="imie" name="imie"/> <br>
<label for="mail">E-mail*:                   </label>
<input type="text" id="mail" name="mail"/> <br>
<br><br>
<a class="style_a" onclick="java script:document.form_sms.submit();" href="#"><input type="submit" value="Wysli" id="send" name="send" /></a>
<input type="hidden" name="valsms" value="">
<input type="hidden" name="sufsms" value="">
</FORM> <BR>
*e-mail - nieobowiazkowy, jednak pozwoli na szybsza reakcje w razie problemów z serwisem<br>
<BR>
Usluga SMS jest dostępna w sieci T-Mobile, Plus GSM, Orange i Play.<BR>
<BR>
Własciciel serwisu: <a style="cursor:pointer;" href="mailto:xxx@xxx.com">xxx@xxx.com</a><BR>
<BR>
Usługę Premium SMS dostarcza i obsluguje <a href="http://www.platnosci-online.pl" target="_blank">Płatnosci-Online.pl</a>
<BR><a href="http://platnosci-online.pl"><img src="pay6.jpg" target="_blank" border="0"></a><BR>
<BR>
Regulamin usługi jest dostępny <a href="http://www.platnosci-online.pl/regulamin_sms.html" target="_blank">na tej stronie</a>.<BR>
<BR>
<center>
</DIV>
<?
}
?>