isValid() function is preventing me to go the third step when adding a submission

I am using ojs 3.1.2.4 and when I am adding a new submission, the third step Upload Submission is loading forever and dont let me go next step.
after checking the ojs3 code I have noticed that isValid() function in /pkp/classes/form/Form.inc.php is the issue as it is already been reserved in php 7.
I have noticed that there are many php functions been deprecated and need to be replaced with new ones.
any ideas?

Hi @sm2020

The isValid method in the Form class will not cause the problem you’re describing. PHP respects name spaces and we only ever call isValid on a form object, never globally. Also, looking through PHP’s function documentation, I don’t find a method called isValid at this point.

We run OJS 3.1.2.4 on PHP7 with many of our hosted journals without issue. Perhaps the submission step is stalling and there is a recorded fatal error in your webserver error log. Mind having a look?

Cheers,
Jason

Thanks Jason for replying,
you are right, it is not a php function, I just got confused with the xml one to Indicate if the parsed document is valid.
I am not sure why that step is having the issue (step two Upload Submission), I have checked my error log and nothing there, and when I track the request

http://ojs3.up:8000/index.php/fadsf/submission/saveStep/2?csrfToken=4cca176bd3f9f954766019a4ede11ff0&submissionId=1

It shows 502 Bad Gateway while the other steps shows normal json response.

regarding the deprecated functions I get quite warnings like this:

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; ADORecordSet_array has a deprecated constructor in /var/www/html/ojs3.up/lib/pkp/lib/adodb/adodb.inc.php on line 3939

and this:
Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /var/www/html/ojs3.up/lib/pkp/lib/adodb/adodb-error.inc.php on line 112

I have to stop showing errors to be able using the system.

Regards

Hi @sm2020

I’m not sure why you’re getting a 502 Bad Gateway response, but historically people have problems with the step two part of submissions because it’s the file upload step, and if permissions on the server aren’t quite right, the step may fail. There should definitely be a “Fatal Error” in your log, if you grep for that you should find something. The deprecated/warning messages are cosmetic and won’t create issues with OJS.

Cheers
Jason

Hi Jason,
just figured out the issue.
it was the php version as OJS is not compatible completely with PHP 7.3 yet regarding this issue:

Deprecated: Non-static method PKPRequest::_checkThis() should not be called statically in /var/www/html/ojs3.up/lib/pkp/classes/core/PKPRequest.inc.php on line 398

I just had to go back to php 7.2 to make it working.

any ideas when you will be able to replace all these deprecated issues from OJS, specially the _construct() issue?

regards
Salman

Hey Salman,

That’s a good question, so let me tag in @asmecher because he’s the man with the plan.

Cheers,
Jason

Hi @sm2020,

What version of PHP were you using before, and were you able to locate a fatal error in your log? The deprecation warning above shouldn’t cause anything to break.

We’re releasing OJS 3.2 within a couple of months and it contains a lot of work to resolve deprecation messages etc.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi Alec,

I was using 7.3.12-fpm and I am sure it was the deprecation issue was the one causing the problem as soon as I used lower version the problem disappeared.
I was thinking the same that the warning shouldn’t do anything to break but unfortunately it is, and every time I turn on the errors from the config file the whole system breaks and just get warnings about these deprecated functions.
Glad to hear that you are riding off these issues in the next version.

Many thanks
Salman