I have a CakePHP 2.x site I'm working on which performs as intended locally. Login works, session flash messages work, etc. When I push the code to my staging/prod server it's breaking.

Logins no longer work, no session flash messages appear, some controller actions that should be redirecting to /user/login are displaying nothing (empty document), etc.

I'm at a loss as to what the problem would be. Based on the issues I'm experiencing and some searching I've done I believe I've ruled out problems like whitespace after the closing ?> in a code-only PHP file (controllers). I'm using DB sessions, and I see session records being created in the DB on my local instance, but not on the remote staging/prod instance.

You are able to connect to the database from your production servers via the same user creds?
–
skrilledMar 6 '13 at 20:40

Different DBs and different creds, but yes the DB connection is working. I just did a test adding a new user record and got similarly strange behavior. The add form loaded/displayed, clicking submit (which posted to the same /users/add URL) I got a completely blank page/empty document, going back to the /users/index view I could see the new record had been added. Bizarre.
–
theraccoonbearMar 6 '13 at 20:51

2 Answers
2

One of the recommendations I came across frequently was to ensure that there was no whitespace after the closing PHP tag in a code-only file (or preferably to not actually have a closing PHP tag). Checking all my files showed that to be the case. Somehow, however, I managed to put a single line break before the opening PHP tag in AppController.php and that was the issue. My apologies to anyone who wasted time on this. I just hope this helps someone in the future who clumsily makes the same mistake.

Set debug level higher to 1, to do cache refresh. If you still don't see an error, try setting error_reporting to true in php.ini. (Although, this one is very obvious I am still pointing it out in case you might have missed it out)

I've looked into these items (at least the ones that apply in my case) and none of them seem to be the issue or at least are not revealing anything. I am noticing a more basic problem which seems to be that those actions that should be redirecting are not for some reason. Adding new records (and the records do get added successfully) is yielding a blank page with a 200 HTTP response instead of the expected 302. Why there's this inconsistency in behavior between my local and staging/prod environments is still a mystery. Thanks for your suggestions though.
–
theraccoonbearMar 11 '13 at 19:12