Только что скачал последние файлы с 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!');
}
Глядя на код, генерирующий сообщение об ошибке:
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-адрес их кодировать, как требуется.
Других решений пока нет …