Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] FunkcjA dodawania pkt do bazy.
Forum PHP.pl > Forum > Przedszkole
klavius
Witam,

Chciałbym zrobić system który sprawdzi czy dany kod z sms jest poprawny , jeśli tak to doda doda do tabeli "rejestracja" w rekordzie points "wyznaczoną sumę.


Wpisujesz nick:
Wpisujesz kod:
WYBIERASZ Jaki sms:

etc.

Mam takie coś chodzi ale mam problem z funkcją która jest odpowiedzialna za "dodanie do rekordu points wartosci",

  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4. <?php
  5. #################### CONFIG ###################################################
  6. # przykladowy konfig dla SMS
  7. $config['dotpay'][0]['id'] = 46494; # numer ID zarejestrowanego klienta
  8. $config['dotpay'][0]['code'] = "test"; # identyfikator uslug SMS
  9. $config['dotpay'][0]['type'] = "sms"; # typ konta: C1 - 8 znakowy kod bezobslugowy, sms - dla sprawdzania SMSow
  10. $config['dotpay'][0]['addpoints'] = 100; # ile premium punktow daje dany sms
  11. $config['dotpay'][0]['sms_number'] = 73068; # numer na jaki nalezy wyslac kod
  12. $config['dotpay'][0]['sms_text'] = "AP.test"; # tresc jaka ma byc w SMSie
  13. $config['dotpay'][0]['sms_cost'] = "3.66 zl brutto"; # cena za wyslanie sms
  14. ?>
  15. <?php include('header.php'); ?>
  16.  
  17. <h2>&raquo; Portfel</h2>
  18. <div class="content">
  19.  
  20.  
  21. <?php
  22. if (isset($_SESSION['login'])) { // dostęp dla zalogowanego użytkownika
  23.  
  24. include 'inc/db.php'; // połączenie się z bazą danych
  25. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  26. $tabela2 = 'history';
  27. $login = $_SESSION['login'];
  28.  
  29.  
  30.  
  31.  
  32. <div class="section">Doładuj portfel SMSem</div>
  33.  
  34. <div class="info">
  35. Aby doładować portfel za pomocą SMSa wyślij wiadomość...
  36.  
  37.  
  38. <div style="margin-top: 10px; margin-left: 10px;">
  39. ...na jeden z numerów:
  40.  
  41.  
  42.  
  43.  
  44.  
  45. <ul>
  46. <li><span style="color: red;">*</span>&nbsp;na numer <b>73068</b> o treści <strong>AP.test</strong> za <b>3 zł</b> (+ VAT), doładuje o kwotę <b>1 zł</b></li>
  47. <li><span style="color: red;">*</span>&nbsp;na numer <b>76068</b> o treści <strong>AP.test7</strong> za <b>6 zł</b> (+ VAT), doładuje o kwotę <b>2 zł</b></li>
  48. <li><span style="color: red;">*</span>&nbsp;na numer <b>79068</b> o treści <strong>AP.test9</strong> za <b>9 zł</b> (+ VAT), doładuje o kwotę <b>3 zł</b></li>
  49. <li><span style="color: red;">*</span>&nbsp;na numer <b>91958</b> o treści <strong>AP.test19</strong> za <b>19 zł</b> (+ VAT), doładuje o kwotę <b>7.50 zł</b></li>
  50. <li><span style="color: red;">*</span>&nbsp;na numer <b>92558 </b> o treści <strong>AP.test25</strong> za <b>25 zł</b> (+ VAT), doładuje o kwotę <b>9.50 zł</b></li>
  51. </ul>
  52. </div>
  53.  
  54.  
  55. <br><BR> <br><BR><br><BR><br><BR><br><BR>
  56. ';
  57.  
  58.  
  59. function delete_code_dotpay($code, $posted_code, $user_id, $type)
  60. {
  61. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".$posted_code."&type=".$type."&del=1", 'r');
  62. fclose($handle);
  63. }
  64.  
  65.  
  66.  
  67. function check_code_dotpay($code, $posted_code, $user_id, $type)
  68. {
  69. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".str_replace('&','',$posted_code)."&type=".$type."&del=0", 'r');
  70. $status = fgets($handle, 8);
  71. $czas_zycia = fgets($handle, 24);
  72. fclose($handle);
  73. $czas_zycia = rtrim($czas_zycia);
  74. return array($status, $czas_zycia);
  75. }
  76.  
  77. function add_points($account, $number_of_points)
  78. {
  79. if($account->isLoaded())
  80. {
  81. $account->setCustomField('points', ($account->getCustomField('points')+$number_of_points));
  82. return true;
  83. }
  84. else
  85. return false;
  86. }
  87.  
  88.  
  89. ################################################################################
    #
  90. $sms_type = (int) $_POST['sms_type'];
  91. $posted_code = trim($_POST['code']);
  92. $to_user = trim($_POST['to_user']);
  93. $verify_code = trim($_POST['verify_code']);
  94. ################################################################################
    #
  95. if(!empty($to_user))
  96. {
  97. if(count($errors) == 0)
  98. {
  99. $code_info = check_code_dotpay($config['dotpay'][$sms_type]['code'], $posted_code, $config['dotpay'][$sms_type]['id'], $config['dotpay'][$sms_type]['type']);
  100. if($code_info[0] == 0)
  101. $errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
  102. else
  103. {
  104. if(add_points($account, $config['dotpay'][$sms_type]['addpoints']))
  105. {
  106. save_trans('config/dotpay.log', $account->getId(), $posted_code);
  107. $code_info = delete_code_dotpay($config['dotpay'][$sms_type]['code'], $posted_code, $config['dotpay'][$sms_type]['id'], $config['dotpay'][$sms_type]['type']);
  108. echo '<h1><font color="red">Dodano '.$config['dotpay'][$sms_type]['addpoints'].' punktow premium do konta: '.$to_user.' !</font></h1>';
  109. }
  110. else
  111. $errors[] = 'Wystapil blad podczas dodawania punktow do konta, sproboj ponownie.';
  112. }
  113. }
  114. }
  115. }
  116.  
  117. if(count($errors) > 0)
  118. {
  119. echo 'Wystapily bledy:';
  120. foreach($errors as $error)
  121. echo '<br />* '.$error;
  122. echo '<hr /><hr />';
  123. }
  124. echo '<form action="?subtopic=buypoints&system=dotpay" method="POST"><table>';
  125. echo '<tr><td><b>Nick postaci lub numer konta: </b></td><td><input type="text" size="20" value="'.$to_user.'" name="to_user" /></td></tr>
  126. <tr><td><b>Kod z SMSa: </b></td<td><input type="text" size="20" value="'.$posted_code.'" name="code" /></td></tr><tr><td><b>Typ wyslanego SMSa: </b></td><td><select name="sms_type">';
  127. foreach($config['dotpay'] as $id => $sms)
  128. if($sms['type'] == 'sms')
  129. echo '<option value="'.$id.'">numer '.$sms['sms_number'].' - kod '.$sms['sms_text'].' - SMS za '.$sms['sms_cost'].'</option>';
  130. echo '</select></td></tr>';
  131. if($config['site']['verify_code_shop'])
  132. echo '<tr><td><B>Kod weryfikacji: </B></td><td><img src="imgverification/imagebuilder.php?image_refresher='.mt_rand(1,99999).'" border="0" alt=""></td></tr>
  133. <tr><td><B>Wpisz kod weryfikacji: </B></td><td><INPUT id="verify" NAME="verify_code" VALUE="" SIZE=30></td></tr>';
  134. echo '<tr><td></td><td><input type="submit" value="Sprawdz" /></td></tr></table></form><hr>
  135. ';
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152. ?>
  153.  
  154. </div>
  155. <?php include('footer.php'); ?>


Baza danych "rejestracja" to
id
imie
nazwisko
login
haslo
email
kod
data
status
points


Jak ktoś może proszę o pomoc ewentualnie o poprawienie kodu.

Z góry Dziękuje!

  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4. <?php
  5. #################### CONFIG ###################################################
  6. # przykladowy konfig dla SMS
  7. $config['dotpay'][0]['id'] = 46494; # numer ID zarejestrowanego klienta
  8. $config['dotpay'][0]['code'] = "test"; # identyfikator uslug SMS
  9. $config['dotpay'][0]['type'] = "sms"; # typ konta: C1 - 8 znakowy kod bezobslugowy, sms - dla sprawdzania SMSow
  10. $config['dotpay'][0]['addpoints'] = 100; # ile premium punktow daje dany sms
  11. $config['dotpay'][0]['sms_number'] = 73068; # numer na jaki nalezy wyslac kod
  12. $config['dotpay'][0]['sms_text'] = "AP.test"; # tresc jaka ma byc w SMSie
  13. $config['dotpay'][0]['sms_cost'] = "3.66 zl brutto"; # cena za wyslanie sms
  14. ?>
  15. <?php include('header.php'); ?>
  16.  
  17. <h2>&raquo; Portfel</h2>
  18. <div class="content">
  19.  
  20.  
  21. <?php
  22. if (isset($_SESSION['login'])) { // dostęp dla zalogowanego użytkownika
  23.  
  24. include 'inc/db.php'; // połączenie się z bazą danych
  25. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  26. $tabela2 = 'history';
  27. $login = $_SESSION['login'];
  28.  
  29.  
  30.  
  31.  
  32. <div class="section">Doładuj portfel SMSem</div>
  33.  
  34. <div class="info">
  35. Aby doładować portfel za pomocą SMSa wyślij wiadomość...
  36.  
  37.  
  38. <div style="margin-top: 10px; margin-left: 10px;">
  39. ...na jeden z numerów:
  40.  
  41.  
  42.  
  43.  
  44.  
  45. <ul>
  46. <li><span style="color: red;">*</span>&nbsp;na numer <b>73068</b> o treści <strong>AP.test</strong> za <b>3 zł</b> (+ VAT), doładuje o kwotę <b>1 zł</b></li>
  47. <li><span style="color: red;">*</span>&nbsp;na numer <b>76068</b> o treści <strong>AP.test7</strong> za <b>6 zł</b> (+ VAT), doładuje o kwotę <b>2 zł</b></li>
  48. <li><span style="color: red;">*</span>&nbsp;na numer <b>79068</b> o treści <strong>AP.test9</strong> za <b>9 zł</b> (+ VAT), doładuje o kwotę <b>3 zł</b></li>
  49. <li><span style="color: red;">*</span>&nbsp;na numer <b>91958</b> o treści <strong>AP.test19</strong> za <b>19 zł</b> (+ VAT), doładuje o kwotę <b>7.50 zł</b></li>
  50. <li><span style="color: red;">*</span>&nbsp;na numer <b>92558 </b> o treści <strong>AP.test25</strong> za <b>25 zł</b> (+ VAT), doładuje o kwotę <b>9.50 zł</b></li>
  51. </ul>
  52. </div>
  53.  
  54.  
  55. <br><BR> <br><BR><br><BR><br><BR><br><BR>
  56. ';
  57.  
  58.  
  59. function delete_code_dotpay($code, $posted_code, $user_id, $type)
  60. {
  61. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".$posted_code."&type=".$type."&del=1", 'r');
  62. fclose($handle);
  63. }
  64.  
  65.  
  66.  
  67. function check_code_dotpay($code, $posted_code, $user_id, $type)
  68. {
  69. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".str_replace('&','',$posted_code)."&type=".$type."&del=0", 'r');
  70. $status = fgets($handle, 8);
  71. $czas_zycia = fgets($handle, 24);
  72. fclose($handle);
  73. $czas_zycia = rtrim($czas_zycia);
  74. return array($status, $czas_zycia);
  75. }
  76.  
  77. function add_points($number_of_points)
  78. {
  79. $dodaj = mysql_query ("UPDATE $tabela SET `points` = `points` + '$number_of_points' WHERE `login`='$login'");
  80. }
  81.  
  82.  
  83. ################################################################################
    #
  84. $sms_type = (int) $_POST['sms_type'];
  85. $posted_code = trim($_POST['code']);
  86. $$login = trim($_POST['$login']);
  87. $verify_code = trim($_POST['verify_code']);
  88. ################################################################################
    #
  89. if(!empty($$login))
  90. {
  91. if(count($errors) == 0)
  92. {
  93. $code_info = check_code_dotpay($config['dotpay'][$sms_type]['code'], $posted_code, $config['dotpay'][$sms_type]['id'], $config['dotpay'][$sms_type]['type']);
  94. if($code_info[0] == 0)
  95. $errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
  96. else
  97. {
  98. if(add_points($config['dotpay'][$sms_type]['addpoints']))
  99. {
  100. save_trans('config/dotpay.log', $login->getId(), $posted_code);
  101. $code_info = delete_code_dotpay($config['dotpay'][$sms_type]['code'], $posted_code, $config['dotpay'][$sms_type]['id'], $config['dotpay'][$sms_type]['type']);
  102. echo '<h1><font color="red">Dodano '.$config['dotpay'][$sms_type]['addpoints'].' punktow premium do konta: '.$login.' !</font></h1>';
  103. }
  104. else
  105. $errors[] = 'Wystapil blad podczas dodawania punktow do konta, sproboj ponownie.';
  106. }
  107. }
  108. }
  109. }
  110.  
  111. if(count($errors) > 0)
  112. {
  113. echo 'Wystapily bledy:';
  114. foreach($errors as $error)
  115. echo '<br />* '.$error;
  116. echo '<hr /><hr />';
  117. }
  118. echo '<form action="?subtopic=buypoints&system=dotpay" method="POST"><table>';
  119. echo '<tr><td><b>Nick postaci lub numer konta: </b></td><td><input type="text" size="20" value="'.$$login.'" name="$login" /></td></tr>
  120. <tr><td><b>Kod z SMSa: </b></td<td><input type="text" size="20" value="'.$posted_code.'" name="code" /></td></tr><tr><td><b>Typ wyslanego SMSa: </b></td><td><select name="sms_type">';
  121. foreach($config['dotpay'] as $id => $sms)
  122. if($sms['type'] == 'sms')
  123. echo '<option value="'.$id.'">numer '.$sms['sms_number'].' - kod '.$sms['sms_text'].' - SMS za '.$sms['sms_cost'].'</option>';
  124. echo '</select></td></tr>';
  125. if($config['site']['verify_code_shop'])
  126. echo '<tr><td><B>Kod weryfikacji: </B></td><td><img src="imgverification/imagebuilder.php?image_refresher='.mt_rand(1,99999).'" border="0" alt=""></td></tr>
  127. <tr><td><B>Wpisz kod weryfikacji: </B></td><td><INPUT id="verify" NAME="verify_code" VALUE="" SIZE=30></td></tr>';
  128. echo '<tr><td></td><td><input type="submit" value="Sprawdz" /></td></tr></table></form><hr>
  129. ';
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146. ?>
  147.  
  148. </div>
  149. <?php include('footer.php'); ?>



Zrobiłem Funkcję dodawania punktów, lecz mam problem z jej wywołaniem...;/ , all chodzi do momentu kiedy ma być "funkcja add_points"...

Wie ktoś może o co be?; p Proszę Bardzo o pmoc!
sadistic_son
Definiujesz funkcję add_points dwa razy - źle. Anyway.... jaki error jest zwrócony?
klavius
Poprawiłem kod na:

  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3. ?>
  4. <?php
  5. #################### CONFIG ###################################################
  6. # przykladowy konfig dla SMS
  7. $config['dotpay'][0]['id'] = 46494; # numer ID zarejestrowanego klienta
  8. $config['dotpay'][0]['code'] = "test"; # identyfikator uslug SMS
  9. $config['dotpay'][0]['type'] = "sms"; # typ konta: C1 - 8 znakowy kod bezobslugowy, sms - dla sprawdzania SMSow
  10. $config['dotpay'][0]['addpoints'] = 100; # ile premium punktow daje dany sms
  11. $config['dotpay'][0]['sms_number'] = 73068; # numer na jaki nalezy wyslac kod
  12. $config['dotpay'][0]['sms_text'] = "AP.test"; # tresc jaka ma byc w SMSie
  13. $config['dotpay'][0]['sms_cost'] = "3.66 zl brutto"; # cena za wyslanie sms
  14. ?>
  15. <?php include('header.php'); ?>
  16.  
  17. <h2>&raquo; Portfel</h2>
  18. <div class="content">
  19.  
  20.  
  21. <?php
  22. if (isset($_SESSION['login'])) { // dostęp dla zalogowanego użytkownika
  23.  
  24. include 'inc/db.php'; // połączenie się z bazą danych
  25. $tabela = 'rejestracja'; // zdefiniowanie tabeli MySQL
  26. $tabela2 = 'history';
  27. $login = $_SESSION['login'];
  28.  
  29.  
  30.  
  31.  
  32. <div class="section">Doładuj portfel SMSem</div>
  33.  
  34. <div class="info">
  35. Aby doładować portfel za pomocą SMSa wyślij wiadomość...
  36.  
  37.  
  38. <div style="margin-top: 10px; margin-left: 10px;">
  39. ...na jeden z numerów:
  40.  
  41.  
  42.  
  43.  
  44.  
  45. <ul>
  46. <li><span style="color: red;">*</span>&nbsp;na numer <b>73068</b> o treści <strong>AP.test</strong> za <b>3 zł</b> (+ VAT), doładuje o kwotę <b>1 zł</b></li>
  47. </ul>
  48. </div>
  49.  
  50.  
  51. <br><BR> <br><BR><br><BR><br><BR><br><BR>
  52. ';
  53.  
  54.  
  55. function delete_code_dotpay($code, $posted_code, $user_id, $type)
  56. {
  57. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".$posted_code."&type=".$type."&del=1", 'r');
  58. fclose($handle);
  59. }
  60.  
  61.  
  62.  
  63. function check_code_dotpay($code, $posted_code, $user_id, $type)
  64. {
  65. $handle = fopen("http://dotpay.pl/check_code.php?id=".$user_id."&code=".$code."&check=".str_replace('&','',$posted_code)."&type=".$type."&del=0", 'r');
  66. $status = fgets($handle, 8);
  67. $czas_zycia = fgets($handle, 24);
  68. fclose($handle);
  69. $czas_zycia = rtrim($czas_zycia);
  70. return array($status, $czas_zycia);
  71. }
  72.  
  73. function add_points($number_of_points, $tabela, $login)
  74. {
  75. mysql_query ("UPDATE $tabela SET `points` = `points` + '$number_of_points' WHERE `login`='$login'");
  76.  
  77. }
  78.  
  79. function save_trans($file, $login, $code)
  80. {
  81. $hak = fopen($file, "a");
  82. fwrite($hak, $code.'='.$login.'');
  83. fclose($hak);
  84. }
  85.  
  86.  
  87. ################################################################################
    #
  88. $sms_type = (int) $_POST['sms_type'];
  89. $posted_code = trim($_POST['code']);
  90. $to_user = trim($_POST['to_user']);
  91. $verify_code = trim($_POST['verify_code']);
  92. ################################################################################
    #
  93. if(!empty($to_user))
  94. {
  95. if(count($errors) == 0)
  96. {
  97. $code_info = check_code_dotpay($config['dotpay'][$sms_type]['code'], $posted_code, $config['dotpay'][$sms_type]['id'], $config['dotpay'][$sms_type]['type']);
  98. if($code_info[0] == 0)
  99. $errors[] = 'Podany kod z SMSa/przelewu jest niepoprawny lub wybrano zla opcje SMSa/przelewu.';
  100. else
  101. {
  102.  
  103. if(add_points($config['dotpay'][$sms_type]['addpoints'], $tabela, $login))
  104. {
  105.  
  106. echo '<h1><font color="red">Dodano '.$config['dotpay'][$sms_type]['addpoints'].' punktow premium do konta: '.$login.' !</font></h1>';
  107. }
  108. else
  109. $errors[] = 'Wystapil blad podczas dodawania punktow do konta, sproboj ponownie.';
  110. }
  111. }
  112. }
  113. }
  114.  
  115. if(count($errors) > 0)
  116. {
  117. echo 'Wystapily bledy:';
  118. foreach($errors as $error)
  119. echo '<br />* '.$error;
  120. echo '<hr /><hr />';
  121. }
  122. echo '<form action="?subtopic=buypoints&system=dotpay" method="POST"><table>';
  123. echo '<tr><td><b>Nick postaci lub numer konta: </b></td><td><input type="text" size="20" value="'.$to_user.'" name="to_user" /></td></tr>
  124. <tr><td><b>Kod z SMSa: </b></td<td><input type="text" size="20" value="'.$posted_code.'" name="code" /></td></tr><tr><td><b>Typ wyslanego SMSa: </b></td><td><select name="sms_type">';
  125. foreach($config['dotpay'] as $id => $sms)
  126. if($sms['type'] == 'sms')
  127. echo '<option value="'.$id.'">numer '.$sms['sms_number'].' - kod '.$sms['sms_text'].' - SMS za '.$sms['sms_cost'].'</option>';
  128. echo '</select></td></tr>';
  129. if($config['site']['verify_code_shop'])
  130. echo '<tr><td><B>Kod weryfikacji: </B></td><td><img src="imgverification/imagebuilder.php?image_refresher='.mt_rand(1,99999).'" border="0" alt=""></td></tr>
  131. <tr><td><B>Wpisz kod weryfikacji: </B></td><td><INPUT id="verify" NAME="verify_code" VALUE="" SIZE=30></td></tr>';
  132. echo '<tr><td></td><td><input type="submit" value="Sprawdz" /></td></tr></table></form><hr>
  133. ';
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150. ?>
  151.  
  152. </div>
  153. <?php include('footer.php'); ?>



I tak, wpisuje nazwę+kod all chodzi tylko że zamiast wyskaiwać że dodało Ci x pkt etc to wyskakuje error
"Wystapily bledy:
* Wystapil blad podczas dodawania punktow do konta, sproboj ponownie." i mimo błędu dodaje pkt.

nie wiem jak to rozwiązać;/
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.