Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не выполняется функция в условии.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не добавляет данные в таблицы.
ruslanlizogub
Отправлено: 22 Августа, 2013 - 20:54:07
Post Id


Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Июнь 2013  


Помог: 0 раз(а)

[+]


Всем привет.
Пот скрипт который при покупке товара должен вносить данные покупателя в базу.
После покупки на страницу возвращается но добавлять данные в таблицу не хочет.
Подскажите как можно определить ошибку.
Вот нужный листинг.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3.  
  4. include('db_fns.php');
  5.  
  6. $paypal_email = "ruslanlizogub@maail.ru";
  7. $paypal_currency = 'USD';
  8. $shipping = 10.00;
  9.  
  10. function no_paypal_trans_id($trans_id)
  11. {
  12.         $connection = db_connect();
  13.         $query = sprintf("SELECT id from products WHERE paypal_trans_id = '%s'", mysql_real_escape_string($trans_id));
  14.         $result = mysql_query($query);
  15.  
  16.         $num_results = mysql_num_rows($result);
  17.        
  18.         if ($num_results == 0)
  19.         {
  20.                 return true;
  21.         }
  22.  
  23.         return false;
  24.  
  25. }
  26.  
  27. function payment_amount_correct($shipping, $params)
  28. {
  29.         $amount = 0.00;
  30.  
  31.         for ($i=1; $i <= $params['num_cart_items'] ; $i++)
  32.         {
  33.                 $query = sprintf("SELECT price from products where id='%s'", mysql_real_escape_string($params["item_number($i)"]));
  34.                 $result = mysql_query($query);
  35.                 if ($result)
  36.                 {
  37.                         $item_price = mysql_result($result, 0 , 'price');
  38.                         $amount += $item_price * $params["quantity($i)"];
  39.                 }
  40.         }
  41.  
  42.         if(($amount+$shipping) == $params['mc_gross'])
  43.         {
  44.                 return true;
  45.         }
  46.         else
  47.         {
  48.                 return false;
  49.         }
  50. }
  51.  
  52.  
  53. function create_order($params)
  54.         {
  55.            db_connect();
  56.                
  57.                  $query =  sprintf("INSERT INTO orders set
  58.                                                                                   orders.firstname = '%s',
  59.                                                                                                   orders.lastname = '%s',
  60.                                                                                                   orders.email = '%s',
  61.                                                                                                   orders.country = '%s',
  62.                                                                           orders.address = '%s',
  63.                                                                           orders.city = '%s',
  64.                                                                                                   orders.zip_code = '%s',
  65.                                                                                                   orders.state = '%s',
  66.                                                                                                   orders.status = '%s',
  67.                                                                                                   orders.amount = '%s',
  68.                                                                                                   orders.paypal_trans_id = '%s',
  69.                                                                                                   created_at = NOW()
  70.                                                                         ",
  71.                                                                              mysql_real_escape_string($params['first_name']),
  72.                                                                                  mysql_real_escape_string($params['last_name']),
  73.                                                                                  mysql_real_escape_string($params['payer_email']),
  74.                                                                              mysql_real_escape_string($params['address_country']),
  75.                                                                                  mysql_real_escape_string($params['address_street']),
  76.                                                                                  mysql_real_escape_string($params['address_city']),
  77.                                                                                  mysql_real_escape_string($params['address_zip']),
  78.                                                                                  mysql_real_escape_string($params['address_state']),
  79.                                                                                  mysql_real_escape_string($params['payment_status']),
  80.                                                                                  mysql_real_escape_string($params['mc_gross']),
  81.                                                                                  mysql_real_escape_string($params['txn_id'])
  82.                
  83.                                                                         );
  84.  
  85.                 $result = mysql_query($query);
  86.                 if(!$result)
  87.                 {
  88.                          return false;
  89.                 }
  90.                
  91.                 $order_id = mysql_insert_id();
  92.                
  93.                 for ($i=1;  $i <= $params['num_cart_items'] ; $i++)
  94.                 {
  95.                           $product = find_product($params["item_number{$i}"]);
  96.                                
  97.                           $query = sprintf("INSERT
  98.                                                              INTO items
  99.                                                           set
  100.                                                                                                 order_id = '%s',
  101.                                                                                                 product_id = '%s',
  102.                                                                                                 title = '%s',
  103.                                                                                                 price = '%s',
  104.                                                                                                 qty = '%s'
  105.                                                                                                 ",
  106.                                                                                                  mysql_real_escape_string($order_id),
  107.                                                                                                  mysql_real_escape_string($product['id']),
  108.                                                                                                  mysql_real_escape_string($product['title']),
  109.                                                                                              mysql_real_escape_string($product['price']),
  110.                                                                                                  mysql_real_escape_string($params["quantity{$i}"])       
  111.                                                                                        
  112.                                                                                                  );
  113.                                
  114.                                  $result = mysql_query($query);
  115.                                  
  116.                                  if(!$result)
  117.                                  {
  118.                                          return false;
  119.                                  }
  120.                                  
  121.                          }
  122.  
  123.  
  124.                  return true;
  125.         }      
  126.  
  127.  
  128. // read the post from PayPal system and add 'cmd'
  129. $req = 'cmd=_notify-validate';
  130.  
  131. foreach ($_POST as $key => $value) {
  132. $value = urlencode(stripslashes($value));
  133. $req .= "&$key=$value";
  134. }
  135.  
  136. // post back to PayPal system to validate
  137. $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
  138. $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
  139. $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
  140. $fp = fsockopen ('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
  141.  
  142. // assign posted variables to local variables
  143. $item_name = $_POST['item_name'];
  144. $item_number = $_POST['item_number'];
  145. $payment_status = $_POST['payment_status'];
  146. $payment_amount = $_POST['mc_gross'];
  147. $payment_currency = $_POST['mc_currency'];
  148. $txn_id = $_POST['txn_id'];
  149. $receiver_email = $_POST['receiver_email'];
  150. $payer_email = $_POST['payer_email'];
  151.  
  152. if (!$fp) {
  153. // HTTP ERROR
  154. } else {
  155. fputs ($fp, $header . $req);
  156. while (!feof($fp)) {
  157. $res = fgets ($fp, 1024);
  158. if (strcmp ($res, "VERIFIED") == 0) {
  159.  
  160.         if ($_POST['payment_status'] == 'Completed'
  161.                         && no_paypal_trans_id($_POST['txn_id'])
  162.                         && $paypal_email == $_POST['receiver_email']
  163.                         && $paypal_currency == $_POST['mc_currency']
  164.                         && payment_amount_correct($shipping, $_POST)
  165.                         )
  166.         {
  167.      // process payment
  168.                  create_order($_POST);
  169.          
  170.         }
  171. }
  172. else if (strcmp ($res, "INVALID") == 0) {
  173. // log for manual investigation
  174. }
  175. }
  176. fclose ($fp);
  177. }
  178.  
  179. ?>
  180.  
  181.  

Должна выполнятся функция , но чота не хочет.
 
 Top
soffrick
Отправлено: 22 Августа, 2013 - 21:00:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 379
Дата рег-ции: Май 2012  
Откуда: Россия, Москва


Помог: 17 раз(а)




ruslanlizogub пишет:
Подскажите как можно определить ошибку.

http://phpfaq[dot]ru/debug


-----
Правильный вопрос - уже половина правильного ответа!

p.s. индусы повсюду, будьте осторожны!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB