Latest News: (loading..)

Archived

This topic is now archived and is closed to further replies.

GemRock

osc3.0.2 - first trial & some issues

21 posts in this topic

first looked at the file set, its completely different from any previous versions. then i had the urge to install it immediately and fond out what it would look like.

the installation (on a local server) went smoothly and finished in a couple of minutes w/o glitch except a few php notice seen at admin, which i ignored as everything the shop and the 'aministration tool' looked fine anf working.

that is until:

1. i changed the currency to GBP or Euro, both currencies' symbol did not display properly, e.g GBP would be A£ instead of £. i had to change the browser's encoding to unicode (UTF-8), which fixed the problem but thats not a solution as most shop visitors in the real world would not know to do this;

2. worse to come (unfortunately), i decided to change the English symbol to use UK flag and the default currency to GBP using the admin tool. the devil came out obviously unhappy with the changes i made (it would be a normal change for any previous version), and the admin tool hangs ever since displaying the ever spinning loading icon, further more, many language definition no longer show correctly, e.g index_heading instead of the right heading being shown at both the shop and admin, button_reset instead of Reset, table_heading_countries instead of just Countries., all the application menu shows app_title instead of the title for the sub-menu. in short, the admin tool no longer work.

at the point i had no idea why it does this and how to fix it. i guess i would re-install it later.

so far, i can only say the jquery button is much clearer and there seems no admin folder to hack. further comments would have to wait until i reinstall it, and perhaps fix the encoding issue.

 

Ken

Share this post


Link to post
Share on other sites

Hi Ken..

 

The encoding of UTF-8 should be handled automatically. Which OS, PHP, MySQL, and browser versions are you using?

 

Kind regards,

Share this post


Link to post
Share on other sites

Hi Harald,

 

the installation is on xampp 1.7.3, which comes with php 5.3.1 and mysql 5.1.41. there is no browser difference: IE9, FF5.0 and chrome 12.0.742.122, all behave the same. when i looked at the page source, FF says the encoding is ISO-8859-1, whereby the charset is blank in IE. the OS is windows 7.

 

the major problem i came across is at the admin tool, now it is completelt not working after i tried to make the first change to it (ie, change the language icon and default currency.

 

Ken

 

ps i attach two jpg screenshots, one the shop, the other admin tool.

post-122078-0-38428200-1312719785_thumb.jpg

post-122078-0-15516400-1312719805_thumb.jpg

Share this post


Link to post
Share on other sites

Hi Ken..

 

I've downloaded XAMPP 1.7.3 from their SourceForge page and will try it out on Windows 7 later today.

 

Kind regards,

Share this post


Link to post
Share on other sites

i have done two more installations. it appears the problem stems from attempting to change the languages - english, which is the only language at the moment. if you click on edit then all the fields are empty except text direction (ltr, or rtl). i would expect it to populate the fields with whats in the database's languanges table. so theres nothing to edit. then if you dare to click Save (instead of Cancel), or you fill in what you think is the correct values and clcik Save, your installation would at the point completely be damaged beyond repare (IMO). i even tried to import the languages table from a working installation, but its still not happy: the loading icon spins non stop at admin whatever you choose to do (well, maybe the only exception is the Help menu).

i now only have one working installation among 3. i could do all changes such as sort order, deleting countries bar language, i have no problem doing all that with the working one. and the currency symbols have no problem displaying the £.

 

Ken

Share this post


Link to post
Share on other sites

Hi Ken..

 

I have installed v3.0.2 on XAMPP 1.7.3 and noticed 3 issues:

 

1) Some queries are saved in the Error Log as notices but no actual errors are reported. In addition the following is being reported:

 

Cannot execute queries while other unbuffered queries are active.

 

2) Editing a language contains no information in the text fields (as you reported)

 

3) The ability to sort categories is not present in IE (but is in Firefox)

 

Still looking into this.

 

Kind regards,

Share this post


Link to post
Share on other sites

Hi Ken..

 

I just installed v3.0.2 on XAMPP 1.7.4 and the language and database query problems are not occurring.

 

Kind regards,

Share this post


Link to post
Share on other sites

Hi Ken..

 

The PDO_MYSQL driver on XAMPP 1.7.3 with PHP 5.3.1 was compiled with libmysql, and the driver on XAMPP 1.7.4 with PHP 5.3.5 was compiled with mysqlnd.

 

OSCOM v3.0 is optimized for mysqlnd and don't know if there is a way to switch from libmysql to mysqlnd through php.ini.

 

I will see if this can be detected to show on the installation requirement page.

 

Kind regards,

Share this post


Link to post
Share on other sites

Tried a local install using EasyPHP and all seems to be working, no errors logged.

 

I must say i really like how the admin section is starting to look and feel.

Share this post


Link to post
Share on other sites

Hi Harald

 

Thank you for the pointer. obviously i didnt know the technical details of osc3.0.2. i saw on the first screen of installation it gave the green tick to all items so assuming it met all requirements. if the installation cant detect mysqlnd or libmysql, then i think it would at least after the installation, in admin, it would give a error msg informing people of the problem, which is caused by the use of libmysql or the absent of mysqlnd, if possible.

 

now, based on your pointer, i commented out libmysql, and instead uncommented mysqlnd in php.ini. after restarted xampp, i then logged in to my working osc302 admin, click edit language, all fields were now populated with same values as seen in the database languags table. tried to change default currency to GBP, then Save. no problem although some of the values can't be changed w/o the loading icon spinning nonstop.

 

Ken

 

ps

i am still using xampp 1.7.3

Share this post


Link to post
Share on other sites

or the Server Requirements for 3.0.2 and following releases would better mention specifically the requirement of mysqlnd, so that the right question to the host could be asked.

 

Ken

Share this post


Link to post
Share on other sites

 

I will see if this can be detected to show on the installation requirement page.

 

 

an idea :

Mysqli is always compiled with mysqlnd driver.

 

implementation : https://github.com/foxp2/oscommerce/commit/92e32d26ddb27313086b38d3118ae43af6ea17e1

 

tested with :

xamp 1.7.3 : the test failed.

xamp 1.7.4 : the test passed

Share this post


Link to post
Share on other sites

Hi Laurent..

 

Great work on finding this! It's an interesting (and easy) solution. The PHP documentation states:

 

The mysql extension, the mysqli extension and the PDO MySQL driver can each be individually configured to use either libmysql or mysqlnd.

 

But the mysqli_fetch_all page states:

 

Available only with mysqlnd.

 

I will take a look and see what result XAMPP 1.7.3 gives.

 

EDIT: Oh, I see you already tested with XAMPP. Great that it works as intended!

 

Kind regards,

Share this post


Link to post
Share on other sites

Hi Laurent..

 

It's my understanding that mysql, mysqli, and pdo_mysql can be separately compiled into PHP. Checking against mysqi_fetch_all() would fail if mysqli is not compiled but pdo_mysql is with mysqlnd. Even if mysqli_fetch_all() is available, pdo_mysql might still be compiled with libmysql.

 

It seems the only proper way to check is after a database connection is made, which is useless for a server requirements check page. This means the check must be moved to a new SQL module where the MySQL module would check $PDO->getAttribute(PDO::ATTR_CLIENT_VERSION) and if "mysqlnd" is not returned, redirect to an extra page informing that mysqlnd is required.

 

Ugly, but currently the only proper way to detect mysqlnd.

 

Kind regards,

Share this post


Link to post
Share on other sites

It seems the only proper way to check is after a database connection is made, which is useless for a server requirements check page. This means the check must be moved to a new SQL module where the MySQL module would check $PDO->getAttribute(PDO::ATTR_CLIENT_VERSION) and if "mysqlnd" is not returned, redirect to an extra page informing that mysqlnd is required.

 

Ugly, but currently the only proper way to detect mysqlnd.

i agree.

this is the first solution I found yesterday : discussion in french forum

Share this post


Link to post
Share on other sites

Hi All..

 

We are using the multiple-queries feature of PDO for performance/optimizations reasons, specifically the PDOStatement::nextRowset() function which is causing the problem described in this topic. I could not find any information if multiple-queries is only supported by mysqlnd. I do not know if XAMPP 1.7.3 has PDO_MYSQL compiled with libmysql or mysqli (both share the same version number) but we know it is not compiled with mysqlnd and may be the cause of the problem.

 

I do not know if the developers of XAMPP 1.7.3 compiled PDO_MYSQL wrong without mysqlnd, as the following article states:

 

http://forge.mysql.com/wiki/PHP_PDO_MYSQLND

 

As of PHP 5.3 all PHP extensions using MySQL (ext/mysql, ext/mysqli, PDO_MYSQL) use mysqlnd as a default.

 

which was a factor for using multiple-queries.

 

Our options for our MySQL Standard and MySQL v5 database drivers are:

 

1) Continue using multiple-queries for MySQL Standard and MySQL v5; add server requirement check for both

2) Drop multiple-queries in MySQL Standard but keep it in MySQL v5 (due to stored procedures); add server requirement check for MySQL v5

 

Feedback appreciated!

Share this post


Link to post
Share on other sites

Hi All..

 

XAMPP 1.7.3 may have compiled PDO_MYSQL with libmysql as mysqli supports multiple queries with mysqli_next_result() which PDO_MYSQL should use.

 

libmysql does not support multiple-queries at all.

 

Kind regards,

Share this post


Link to post
Share on other sites

Hi All..

 

There might be another factor involved. I just compiled PHP 5.3.1 with pdo_mysql+libmysql to match XAMPP 1.7.3 and do not get any errors.

 

:wacko:

Share this post


Link to post
Share on other sites

Hi All..

 

There might be another factor involved. I just compiled PHP 5.3.1 with pdo_mysql+libmysql to match XAMPP 1.7.3 and do not get any errors.

 

:wacko:

 

crazy !

 

>_<

 

by the way, a good blog : Internet Super Hero

Share this post


Link to post
Share on other sites

Hi All..

 

In XAMPP 1.7.3, make the following change in C:\xampp\php\php.ini:

 

FROM:

 

;extension=php_pdo_mysql_mysqlnd.dll

extension=php_pdo_mysql_libmysql.dll

 

TO:

 

extension=php_pdo_mysql_mysqlnd.dll

;extension=php_pdo_mysql_libmysql.dll

 

and stop&start the Apache server through the XAMPP Control Panel.

 

If there is a database connection problem after this, change the database server from localhost to 127.0.0.1 in osCommerce/OM/Config/settings.ini.

 

This will fix the reported issue in this topic BUT it will introduce another. For some reason PDOStatement::execute() returns false on some queries even though the error code is 00000 (which is not an error but a successful code). This has the side effect of adding PHP Notices of the queries involved to the ErrorLog.

 

XAMPP 1.7.4 only contains extensions for mysql, mysqli, and pdo_mysql that are compiled with mysqlnd. No libmysql compiled extensions exist in the xampp\php\ext directory.

 

To clarify what has been posted: this does not seem to be an issue of libmysql vs mysqlnd but of another factor evident in XAMPP 1.7.3.

 

Kind regards,

Share this post


Link to post
Share on other sites

after making the changes in php.ini (i remember there were more than one instatnce i made the changes but did not bother to think which one was necessary and which was not), i only see one php notice after logging in admin - every time it is about the customers query. i do not bother to find out why it generates this 'error'. from a pragmatic point of view, i ignore it or simply comment out line 68 in PDOStatement.php if i dont want to see this silly 'error'.

 

i am more irritated by the way the default currency is handled: there are a total of 3 places that are relevant to the setting of default currency, which will no doubt in my mind confuse an ordinary webshop owner and there would be questions of 'can't set default currency' posted on the forums. the 3 places are: 1. configuartion - languages where you seem to be able to set a default currency, which in fact may not be the case; 2. configuartion - currencies, which again may not be the case; and 3. modules - services - currencies. the setting would depend on the other one or two settings. to be honest, to my liking, i would simplify the process of setting default currency and take away the default currency from the languages settings, and from the services, leave it only to the configuration - currencies.

 

as i am peeking it more and more, i discover theres a nice feature in customer's edit: you can see a google map showing that customer's address/area.

 

Nice job!

Ken

Share this post


Link to post
Share on other sites