благодаря
define('DEVELOPMENT_MODE', 1);
и соответственно MYSQL strict mode
поймал и обезвредил опасного преступника-рецидивиста в коде
он аффектил логику
Amazon_Checkout
Google_Checkout
3dsecure
и все PG
возникла ошибка
[05-Jun-2012 15:36:54] (shop: 05-Jun-2012 15:34:55) SQL error:
Site : https://xcart2-532.crtdev.local/~aim/xcart_4_5_x
Remote IP : 192.168.10.204
Logged as : demo-customer@x-cart.com
SQL query : INSERT INTO xcart_order_status_history (`orderid`, `userid`, `date_time`, `details`) VALUES ('1038', '', '1338896095', 'a:4:{s:10:\"old_status\";s:1:\"I\";s:10:\"new_status\";s:1:\"F\";s:4:\"type\";s:1:\"X\";s:9:\"reference\";i:7;}')
Error code : 1366
Description : Incorrect integer value: '' for column 'userid' at row 1
Request URI: /~aim/xcart_4_5_x/payment/ps_paypal_advanced.php
Backtrace:
include/func/func.db.php:307
include/func/func.db.php:207
include/func/func.db.php:682
modules/Advanced_Order_Management/func.php:139
include/func/func.order.php:1831
payment/payment_ccmid.php:577
payment/payment_ccend.php:48
payment/ps_paypal_advanced.php:99
стал выяснять
оказалось вот что
1) стартует сессия в payment/auth.php
регаются переменные
в том числе
x_session_register('logged_userid', 0);
2) вызывается
x_session_id
вся сессия сносится
нужно по новому делать вызовы
x_session_register('logged_userid', 0);
3)но это обычно забывают
и получается что
$logged_userid = null
хотя в сессии сидит нормальное значение
те все вызовы
x_session_register
после
x_session_id
становились невалидными
Другой пример
0122437: PayPal Advanced 451 #contrib. нотисы показали что cc_pp3_data не обновляется
[05-Jun-2012 18:15:22] Notice: Undefined variable: skey in payment/prepare_payment_ccwebset.php on line 81
REQUEST_URI: /~aim/xcart_4_5_x/payment/ps_paypal_advanced.php
Backtrace:
payment/prepare_payment_ccwebset.php:81
payment/payment_ccmid.php:575
payment/payment_ccend.php:48
payment/ps_paypal_advanced.php:99
Выводы
*те нотисы это хороший эвристический прием и во многих случаях если думать глубже чем тупо @ или intval() позволяют отловить более серьезную логическую ошибку
*тот кто фиксит нотисы ради нотисов без решения корневой проблемы - поступает плохо и очень плохо
тк по сути лишает возможности найти эту проблему превентивно до того как ее запостили пользователи
если баг это преступник, то такой программер является соучастником преступления со всеми вытекающими
Минусы 'DEVELOPMENT_MODE'
*проблема это то, что нотисы немного вырывают из текущего контекста если их много
*еще проблема в том, чтобы дойти уровня когда нотисы помогают
нужно долго и долго чистится перед этим
мы 3-4 релиза чистились пока выполнение не стало более-менее чистым
define('DEVELOPMENT_MODE', 1);
и соответственно MYSQL strict mode
поймал и обезвредил опасного преступника-рецидивиста в коде
он аффектил логику
Amazon_Checkout
Google_Checkout
3dsecure
и все PG
возникла ошибка
[05-Jun-2012 15:36:54] (shop: 05-Jun-2012 15:34:55) SQL error:
Site : https://xcart2-532.crtdev.local/~aim/xcart_4_5_x
Remote IP : 192.168.10.204
Logged as : demo-customer@x-cart.com
SQL query : INSERT INTO xcart_order_status_history (`orderid`, `userid`, `date_time`, `details`) VALUES ('1038', '', '1338896095', 'a:4:{s:10:\"old_status\";s:1:\"I\";s:10:\"new_status\";s:1:\"F\";s:4:\"type\";s:1:\"X\";s:9:\"reference\";i:7;}')
Error code : 1366
Description : Incorrect integer value: '' for column 'userid' at row 1
Request URI: /~aim/xcart_4_5_x/payment/ps_paypal_advanced.php
Backtrace:
include/func/func.db.php:307
include/func/func.db.php:207
include/func/func.db.php:682
modules/Advanced_Order_Management/func.php:139
include/func/func.order.php:1831
payment/payment_ccmid.php:577
payment/payment_ccend.php:48
payment/ps_paypal_advanced.php:99
стал выяснять
оказалось вот что
1) стартует сессия в payment/auth.php
регаются переменные
в том числе
x_session_register('logged_userid', 0);
2) вызывается
x_session_id
вся сессия сносится
нужно по новому делать вызовы
x_session_register('logged_userid', 0);
3)но это обычно забывают
и получается что
$logged_userid = null
хотя в сессии сидит нормальное значение
те все вызовы
x_session_register
после
x_session_id
становились невалидными
Другой пример
0122437: PayPal Advanced 451 #contrib. нотисы показали что cc_pp3_data не обновляется
[05-Jun-2012 18:15:22] Notice: Undefined variable: skey in payment/prepare_payment_ccwebset.php on line 81
REQUEST_URI: /~aim/xcart_4_5_x/payment/ps_paypal_advanced.php
Backtrace:
payment/prepare_payment_ccwebset.php:81
payment/payment_ccmid.php:575
payment/payment_ccend.php:48
payment/ps_paypal_advanced.php:99
Выводы
*те нотисы это хороший эвристический прием и во многих случаях если думать глубже чем тупо @ или intval() позволяют отловить более серьезную логическую ошибку
*тот кто фиксит нотисы ради нотисов без решения корневой проблемы - поступает плохо и очень плохо
тк по сути лишает возможности найти эту проблему превентивно до того как ее запостили пользователи
если баг это преступник, то такой программер является соучастником преступления со всеми вытекающими
Минусы 'DEVELOPMENT_MODE'
*проблема это то, что нотисы немного вырывают из текущего контекста если их много
*еще проблема в том, чтобы дойти уровня когда нотисы помогают
нужно долго и долго чистится перед этим
мы 3-4 релиза чистились пока выполнение не стало более-менее чистым
Комментариев нет:
Отправить комментарий