sdk — QuickBooks Webconnector (Php) array_merge (): аргумент № 2 не является массивом в … / QuickBooks / Utilities.php в строке 54

Только что скачал последние файлы с https://github.com/consolibyte/quickbooks-php и настройка на localhost и его пример работы веб-коннектора с рабочим столом QuickBooks, но при загрузке на сервер даже образец формы не запускает ошибку, просмотрите следующую форму.

https://qbdesktop.1dash.com/consus/webconnector/form.php

Бросаю следующее сообщение.

Предупреждение: array_merge (): аргумент № 2 не является массивом в файле consus / QuickBooks / Utilities.php в строке 54

Примечание: неопределенный индекс: передать consus / QuickBooks / Utilities.php на
линия 57

Предупреждение: require_once (consus / QuickBooks / Driver / .php):
не удалось открыть поток: нет такого файла или каталога в
consus / QuickBooks / Loader.php в строке 56

Неустранимая ошибка: require_once (): сбой открытия обязателен
‘CONSUS / QuickBooks / Водитель / .php’
(Include_path =».: / USR / доли / груша: / USR / доли / PHP: / Var / WWW / HTML / CONSUS’)
в consus / QuickBooks / Loader.php в строке 56

Ниже приведен код в config.php

    <?php
// We need to make sure the correct timezone is set, or some PHP installations will complain
if (function_exists('date_default_timezone_set'))
{
// * MAKE SURE YOU SET THIS TO THE CORRECT TIMEZONE! *
// List of valid timezones is here: http://us3.php.net/manual/en/timezones.php
date_default_timezone_set('America/New_York');
}

// I always program in E_STRICT error mode...
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL | E_STRICT);

// Require the framework
require_once dirname(__FILE__) . '/../QuickBooks.php';

// Your .QWC file username/password
$qbwc_user = 'quickbooks';
$qbwc_pass = 'password';

// * MAKE SURE YOU CHANGE THE DATABASE CONNECTION STRING BELOW TO A VALID MYSQL USERNAME/PASSWORD/HOSTNAME *
//$dsn = 'mysql://root@localhost/1dashnew';
$dsn = 'mysql://user:password@server.amazonaws.com:3306/dbname';

if (!QuickBooks_Utilities::initialized($dsn))
{
// Initialize creates the neccessary database schema for queueing up requests and logging
QuickBooks_Utilities::initialize($dsn);

// This creates a username and password which is used by the Web Connector to authenticate
QuickBooks_Utilities::createUser($dsn, $qbwc_user, $qbwc_pass);

$Queue = new QuickBooks_WebConnector_Queue($dsn);
// Create our test table
mysql_query("CREATE TABLE my_customer_table (
id int(10) unsigned NOT NULL AUTO_INCREMENT,
name varchar(64) NOT NULL,
fname varchar(64) NOT NULL,
lname varchar(64) NOT NULL,
quickbooks_listid varchar(255) DEFAULT NULL,
quickbooks_editsequence varchar(255) DEFAULT NULL,
quickbooks_errnum varchar(255) DEFAULT NULL,
quickbooks_errmsg varchar(255) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM");
}

и в handler.php

<?php
/**
* Require some configuration stuff
*/
require_once dirname(__FILE__) . '/config.php';

// Handle the form post
if (isset($_POST['submitted']))
{
// Save the record
mysql_query("INSERT INTO
my_customer_table
(
name,
fname,
lname
) VALUES (
'" . mysql_escape_string($_POST['name']) . "',
'" . mysql_escape_string($_POST['fname']) . "',
'" . mysql_escape_string($_POST['lname']) . "'
)");

// Get the primary key of the new record
$id = mysql_insert_id();

// Queue up the customer add
$Queue = new QuickBooks_WebConnector_Queue($dsn);
$Queue->enqueue(QUICKBOOKS_ADD_CUSTOMER, $id);

die('Great, queued up a customer!');
}

0

Решение

Глядя на код, генерирующий сообщение об ошибке:

https://github.com/consolibyte/quickbooks-php/blob/master/QuickBooks/Utilities.php#L54

    $parse = array_merge($defaults, parse_url($dsn));

$parse['user'] = urldecode($parse['user']);
$parse['pass'] = urldecode($parse['pass']);

Вы можете увидеть это сообщение об ошибке только в том случае, если $dsn строка неверно отформатирована.

Я готов поспорить, что это не ваш факт $dsn строка:

$dsn = 'mysql://user:password@server.amazonaws.com:3306/dbname';

И это, если вы разместили свой фактический $dsn строка, она не будет правильно отформатирована.

Пожалуйста, либо опубликуйте его, либо дважды проверьте его на своем конце и убедитесь, что он соответствует правильному формату. Удостовериться что если у вас есть специальные символы там, вы URL-адрес их кодировать, как требуется.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector