Re: altered carts OnSale mod for php 7+
I did get this error with the php code checker...
Quote:
Code:
array(func_query_first_cell("SELECT categoryid FROM $sql_tbl[products_categories] WHERE productid='".$product['productid']."' AND main='Y'")) It that really an error or is the code ok? |
Re: altered carts OnSale mod for php 7+
So i've made a few changes to the OnSale mod to try and get it in line with php7.2 and here one I'm stuck on... I currently have
Code:
if (db_query("UPDATE xcart_onsale SET begin='$begin', end='$end', saletype='$saletype', criteria='".addslashes(serialize($product_criteria))."', coupon_code='$coupon_code', uses='$times_to_use', home_display='$home_display', onsale_product_display='$onsale_product_display', onsale_display='$onsale_display', per_customer='$per_customer', productids='$productids', catids='$catids', provider='$login', status='".mysqli_real_escape_string($sale_status)."' WHERE onsaleid='$edit_update'")){ Quote:
Apparently I need to add the connection to the db in the mysqli function part Code:
.mysqli_real_escape_string($my_connection,$sale_status) and am I headed in the right direction? Thanks. |
Re: altered carts OnSale mod for php 7+
Don't update the original code to use mysqli_real_escape_string(). Instead, leave the old code as-is and recreate the missing mysql_real_escape_string() function that was removed in PHP7.
The details on how to do it are explained here: https://forum.x-cart.com/showpost.php?p=410661&postcount=10 . |
Re: altered carts OnSale mod for php 7+
I notice that post says if it is the ionCube version than that fix won't help. The instructions in the Bills unencrypted source code says that
Quote:
|
Re: altered carts OnSale mod for php 7+
In the Final weeks of Bill closing down his business he provided unencrypted source code (ioncube removed) to existing customers for a small fee. It was a limited time offer.
If that is what you have then you can ignore the ioncube license comment in his instructions since it does not apply. |
Re: altered carts OnSale mod for php 7+
Looks like it may have worked, stand by.
|
Re: altered carts OnSale mod for php 7+
I'm still working through this and am getting this Warning...
count(): Parameter must be an array or an object that implements Countable here are the 2 lines of code it referring to... Code:
$smarty->assign('pidCount'count(): Parameter must be an array or an object that implements Countable, count(isset($sale['criteria']['purchase_products']) ? $sale['criteria']['purchase_products'] : 0)+count(isset($sale['criteria']['received_products']) ? $sale['criteria']['received_products'] : 0)+1); Should this be different for php7? |
Re: altered carts OnSale mod for php 7+
That warning was suppressed in earlier PHP versions. But now PHP7.2+ has elevated the warning to encourage better coding practices.
The solution is to test the variable to confirm it is countable BEFORE counting it. It would be something like this: Code:
$smarty->assign('wPidCount', (($sale['criteria']['wholesale'] instanceof Countable) && count(isset($sale['criteria']['wholesale'])) ? $sale['criteria']['wholesale'] : 0)+1); This is just a coding example and may not work as-is. My example is just to give you a fundamental idea on how to fix it. BTW, PHP7.3 introduced the is_countable() function as alternate way to do the "instanceof Countable" var test. Details here: https://www.php.net/manual/en/function.is-countable.php . |
Re: altered carts OnSale mod for php 7+
I've worked through the changes that were suggested and still don't have this working right. I get a bunch of Undefined index: and Undefined variable: notices and have no idea how to fix them. For example...
Undefined index Quote:
Code:
// Load Settings // example of Undefinded variable Quote:
Code:
$query = "SELECT * FROM $sql_tbl[onsale] can someone give me an example of what I should do so I can fix the rest of them? I tried google but they talk way over my head so it's like comparing apples to oranges. Thanks. |
Re: altered carts OnSale mod for php 7+
These are notices not even warnings. So you can ignore them. If you want them to go away you will have to assign a value no matter what.
So for example for the $p_query you need to find where its value is assigned somewhere before this line 524 and check if value is not assign and you can do something like $p_query = ''; It will highly depend on the code there what it does and how it does it to decide how to assign the variable value. |
All times are GMT -8. The time now is 09:10 PM. |
Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.