Answers.Body: <p>this issue is resolved since upgrading from civicrm 5.26 to civicrm 5.28 AND upgrading the omnipay multiprocessor plugin to 3.13. Without upgrading the plugin, the white screen still showed up. Now it is all perfect again.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-08-27T11:44:21.973Z
Answers.LastActivityDate: 2020-08-27T11:44:21.973Z
Answers.UserDisplayName: ruud
Body: <p>I have a website with paid events. Earlier, I mentioned that doing a payment for an event results in a white screen.</p>
  <p>The cause of the white screen is the session variables: they do not survive the payment. The payment processor sets some session parameters just before the payment is done (like the return urls). As soon as the payment is done, the session parameters are not accessible anymore.</p>
  <p>Uptil now, this session problem only occurs during/after the payment of event.</p>
  <p>I find it difficult to find the cause of this session hickups, they are clearly related to the 'cannot modify header information' in the php_errorlog (see below). But I use not the right strategy to find the cause of that message. I surely can use  advice on tracking that down.</p>
  <p>thanks!</p>
  <ul>
  <li>wordpress install 5.26.2</li>
  <li>php 7.3</li>
  <li>omnipay extension 3.9</li>
  </ul>
  <p>the <code>php_errorlog</code> file adds an extra warning:</p>
  <pre><code>[05-Jul-2020 19:25:16 Europe/Amsterdam] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/mysite/public_html/civicrm-nw/wp-content/plugins/files/civicrm/custom_extensions/nz.co.fuzion.omnipaymultiprocessor-master/vendor/symfony/http-foundation/Response.php:1290) in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm/CRM/Utils/System/Base.php on line 949
  [05-Jul-2020 17:25:38 UTC] PHP Warning:  Class __PHP_Incomplete_Class has no unserializer in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm.php on line 369
  [05-Jul-2020 17:25:38 UTC] PHP Warning:  session_start(): Failed to decode session object. Session has been destroyed in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm.php on line 369
  </code></pre>
  <p>From the time stamps I can see that first these warnings are written to php_errorlog and after that, all session variable print statements show empty values in the civicrm log file.</p>
  <p><em>current status</em>: I have put debugging statements in the code to find the point where the 'Cannot modify header information' message is caused. When that message appears in php_errorlog, from that moment on all session parameters are lost.
  I found out that it  occurs right after the user presses 'continue' on the event confirmation screen and before actions are taken in the next payment screen.</p>
  <p>The  code runs fine up til doPayment() in OmnipayMultiProcessor.php, where it does a redirect to url <code>https://civicrm-nw.mysite.nl/civicrm/?civiwp=CiviCRM&amp;q=civicrm%2Fevent%2Fregister&amp;_qf_ThankYou_display=true&amp;qfKey=58...</code>. I followed the code and after  the setHttpHeader() in System.php, the session variables are still there and the warning is not printed yet. That happens soon thereafter.</p>
  <p>But here I lose the code flow. I need to know which code is executed after this redirect and before the mollie payscreen is rendered in order to pick up further debugging . Any ideas what class/ routine would be a good starting point?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-07-07T12:28:39.767Z
Comments.Text: Is the omnipay extension updated to latest from https://civicrm.org/extensions/omnipay-multiprocessor-extension?
Comments.UserDisplayName: jitendra - fuzion
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2020-07-11T12:23:45.107Z
Comments.Text: I have installed a recent git-master. (june 21). Before I did that, I used 3.9 (latest).
Comments.UserDisplayName: ruud
Tags: <wordpress><payment-processor><session>
Title: session problem causes white screen
ThreadText: # session problem causes white screen
  
  (Asked by: username_0 on 2020-07-05)
  
  I have a website with paid events. Earlier, I mentioned that doing a payment for an event results in a white screen.
  
  The cause of the white screen is the session variables: they do not survive the payment. The payment processor sets some session parameters just before the payment is done (like the return urls). As soon as the payment is done, the session parameters are not accessible anymore.
  
  Uptil now, this session problem only occurs during/after the payment of event.
  
  I find it difficult to find the cause of this session hickups, they are clearly related to the 'cannot modify header information' in the php\_errorlog (see below). But I use not the right strategy to find the cause of that message. I surely can use advice on tracking that down.
  
  thanks!
  
  * wordpress install 5.26.2
  * php 7.3
  * omnipay extension 3.9
  
  the `php_errorlog` file adds an extra warning:
  
  ```
  [05-Jul-2020 19:25:16 Europe/Amsterdam] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/mysite/public_html/civicrm-nw/wp-content/plugins/files/civicrm/custom_extensions/nz.co.username_1.omnipaymultiprocessor-master/vendor/symfony/http-foundation/Response.php:1290) in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm/CRM/Utils/System/Base.php on line 949
  [05-Jul-2020 17:25:38 UTC] PHP Warning:  Class __PHP_Incomplete_Class has no unserializer in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm.php on line 369
  [05-Jul-2020 17:25:38 UTC] PHP Warning:  session_start(): Failed to decode session object. Session has been destroyed in /home/mysite/public_html/civicrm-nw/wp-content/plugins/civicrm/civicrm.php on line 369
  
  ```
  
  From the time stamps I can see that first these warnings are written to php\_errorlog and after that, all session variable print statements show empty values in the civicrm log file.
  
  *current status*: I have put debugging statements in the code to find the point where the 'Cannot modify header information' message is caused. When that message appears in php\_errorlog, from that moment on all session parameters are lost.
  I found out that it occurs right after the user presses 'continue' on the event confirmation screen and before actions are taken in the next payment screen.
  
  The code runs fine up til doPayment() in OmnipayMultiProcessor.php, where it does a redirect to url `https://civicrm-nw.mysite.nl/civicrm/?civiwp=CiviCRM&q=civicrm%2Fevent%2Fregister&_qf_ThankYou_display=true&qfKey=58...`. I followed the code and after the setHttpHeader() in System.php, the session variables are still there and the warning is not printed yet. That happens soon thereafter.
  
  But here I lose the code flow. I need to know which code is executed after this redirect and before the mollie payscreen is rendered in order to pick up further debugging . Any ideas what class/ routine would be a good starting point?
  
  **Tags:** wordpress, payment-processor, session
  
  > **Comments:**
  > **username_1**: Is the omnipay extension updated to latest from https://civicrm.org/extensions/omnipay-multiprocessor-extension?  
  > **username_0**: I have installed a recent git-master. (june 21). Before I did that, I used 3.9 (latest).  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2020-08-27. Score: 1 | Accepted answer
  
  this issue is resolved since upgrading from civicrm 5.26 to civicrm 5.28 AND upgrading the omnipay multiprocessor plugin to 3.13. Without upgrading the plugin, the white screen still showed up. Now it is all perfect again.
  
  
  ---
  
  