Может ли $_SERVER['remote_port'] повлиять на успех запроса MySQL?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Может ли $_SERVER['remote_port'] повлиять на успех запроса MySQL?

Сообщение Anonymous »


У меня возникла очень странная проблема с веб-сайтом электронной коммерции: некоторые запросы (но не все) на обновление статусов заказов не выполняются по какой-то загадочной причине.

При успешной оплате покупателем платежный шлюз вызывает в интернет-магазине php-скрипт, который должен обновить статус соответствующего заказа (с «ожидает» на «подтвержден»).

В некоторых случаях это работает, но не в других. Я заметил закономерность, согласно которой order_status_update() работает, когда URL-адрес обратного вызова вызывается с определенного IP-адреса (и соответствующего порта), но не с другого.

Я просмотрел код и снабдил его множеством журналов, и все было проверено вплоть до уровня запроса, но в одном случае это работает, а в другом — нет.

Единственная разница, которую я вижу:
[*]IP-адрес сервера, вызывающего сценарий обратного вызова, [*]удаленный порт сервера, вызывающего сценарий обратного вызова.
Насколько мне известно, $_SERVER['REMOTE_ADDR'] вызова не должен влиять на что-либо выполняемое (если, конечно, сценарий явно не делает что-то соответственно, а это не так), поэтому я' Мне интересно, может ли $_SERVER['REMOTE_PORT'] повлиять на MySQL/базу данных, что может привести к потенциальному сбою запроса?

Если сценарий/запрос выполнен успешно, REMOTE_PORT равен 18436, в случае сбоя REMOTE_PORT — 49495.

Я прикрепил журналы двух заказов: первый успешный, второй неудачный — вы можете видеть, что они фактически идентичны (за исключением order_id и mdate, как и ожидалось)

Когда это работает:

nab_notify - вызов order_status_update с помощью d[]=:Array\n(\n [order_id] => 2860\n [order_status] => C\n [notify_customer] => Y\n)\n ps_order::order_status_update - d[]=Array\n(\n [order_id] => 2860\n [order_status] => C\n [notify_customer] => Y\n)\n ps_order::order_status_update - curr_order_status: order_status:C notify_customer:1 ps_order::order_status_update - ОБНОВЛЕНИЕ vm_orders (1) w/fields[]=Array\n(\n [order_status] => C\n [mdate] => 1314093024\n)\n ps_order::order_status_update - ОБНОВЛЕНИЕ vm_orders (2) order_id:[2860] ps_order::order_status_update - UPDATE vm_orders (3) QUERY:[UPDATE `#__vm_orders` SET `order_status` = 'C',\n`mdate` = '1314093024'\nWHERE order_id='2860'] ps_order::order_status_update — ОБНОВЛЕНИЕ vm_orders (4) qresult:[1] Когда это не работает:

nab_notify - вызов order_status_update с помощью d[]=:Array\n(\n [order_id] => 2863\n [order_status] => C\n [notify_customer] => Y\n)\n ps_order::order_status_update - d[]=Array\n(\n [order_id] => 2863\n [order_status] => C\n [notify_customer] => Y\n)\n ps_order::order_status_update - curr_order_status: order_status:C notify_customer:1 ps_order::order_status_update - ОБНОВЛЕНИЕ vm_orders (1) w/fields[]=Array\n(\n [order_status] => C\n [mdate] => 1314137858\n)\n ps_order::order_status_update - ОБНОВЛЕНИЕ vm_orders (2) order_id:[2863] ps_order::order_status_update - UPDATE vm_orders (3) QUERY:[UPDATE `#__vm_orders` SET `order_status` = 'C',\n`mdate` = '1314137858'\nWHERE order_id='2863'] ps_order::order_status_update — ОБНОВЛЕНИЕ vm_orders (4) qresult:[0] Принимая во внимание «один и тот же» запрос, может ли кто-нибудь пролить свет на то, почему один потерпит неудачу, а другой преуспеет?

Спасибо, Эрик

ОБНОВЛЕНИЕ 1. Я добавил ведение журнала на уровне запроса и обнаружил некоторые ошибки, которые показывают журналы:

ОШИБКА 2006 – сервер MySQL исчез

... но, как ни странно, не для всех запросов в рамках этого конкретного сеанса (думаете, это обнадеживает?). Я оставил разрывы строк в трассировках на случай, если они имеют значение.

После пары поисков и других сообщений на форуме я проверил настройки PHP и увидел

max_execution_time = 60 максимальное_входное_время = 60 какого времени должно быть достаточно?

Странно то, что это происходит только тогда, когда запрос к определенному URL-адресу выполняется с определенного IP-адреса (на этот раз того же IP-адреса, что и в случае, когда статусы других заказов не обновлялись).
2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECT `order_number`, `user_id`, `order_subtotal`, `order_total`, `order_currency`, `order_tax`, 'order_status', `order_shipping_tax`, `coupon_discount`, `order_discount` ИЗ `jos_vm_orders` ГДЕ `order_id`='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=SELECT `order_number`, `user_id`, `order_subtotal`, `order_total`, `order_currency`, `order_tax`, 'order_status', `order_shipping_tax`, `coupon_discount`, `order_discount` ИЗ `jos_vm_orders` ГДЕ `order_id`='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECT user_id,order_total,order_status ИЗ jos_vm_orders ГДЕ jos_vm_orders.order_id='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=SELECT user_id,order_total,order_status FROM jos_vm_orders WHERE jos_vm_orders.order_id='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=UPDATE `jos_vm_orders` SET `order_status` = 'C', `mdate` = '1314240914' ГДЕ order_id='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=UPDATE `jos_vm_orders` SET `order_status` = 'C', `mdate` = '1314240914' ГДЕ order_id='2868' 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=INSERT INTO `jos_vm_order_history` (`order_id`, `order_status_code`, `date_added`, `customer_notified`, `комментарии`) ЗНАЧЕНИЯ ( '2868' ,'С' ,'2011-08-25 12:25:14' ,'1' ,'' ) 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=INSERT INTO `jos_vm_order_history` (`order_id`, `order_status_code`, `date_added`, `customer_notified`, `комментарии`) ЗНАЧЕНИЯ ( '2868' ,'С' ,'2011-08-25 12:25:14' ,'1' ,'' ) 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECT order_item_id, event_reg_id FROM jos_vm_order_item ГДЕ order_id=2868 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез SQL=SELECT order_item_id, event_reg_id FROM jos_vm_order_item WHERE order_id=2868 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECT id FROM jos_menu WHERE link='index.php?option=com_virtuemart' И опубликовано=1 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=SELECT id FROM jos_menu WHERE link='index.php?option=com_virtuemart' ANDPublished=1 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECTvendor_name,contact_email FROM jos_vm_vendor WHEREvendor_id='1' 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез. SQL=SELECTvendor_name,contact_email FROM jos_vm_vendor WHEREvendor_id='1' 2011-08-25 02:54:48 - JDatabaseMySQL::query - SQL=SELECT first_name,last_name,user_email,order_status_name,country,order_currency FROM jos_vm_order_user_info,jos_vm_orders,jos_vm_order_status ГДЕ jos_vm_orders.order_id = '2868' И jos_ vm_orders.user_id = jos_vm_order_user_info .user_id И jos_vm_orders.order_id = jos_vm_order_user_info.order_id И order_status = order_status_code 2011-08-25 02:54:48 - JDatabaseMySQL::query - !!!! ОШИБКА !!!! 2006 — сервер MySQL исчез _info.user_id И jos_vm_orders.order_id = jos_vm_order_user_info. идентификатор_заказа И статус_заказа = код_статуса_заказа
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Не удалось разрешить заполнитель «server.port» в значении «${server.port}».
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Не удалось разрешить Placeholder 'server.port' in value "$ {server.port}"
    Anonymous » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между настройкой server.port = 0 vs server.port = -1 в Application.properties?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между настройкой server.port = 0 vs server.port = -1 в Application.properties в Spring Boot?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Не удалось разрешить Placeholder 'server.port' in value "$ {server.port}"
    Anonymous » » в форуме JAVA
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»