Skip to content

Conversation

@luhla
Copy link
Contributor

@luhla luhla commented Mar 7, 2016

No description provided.

@luhla
Copy link
Contributor Author

luhla commented Mar 7, 2016

Sorry, have to study how run tests before pull request...

@hrach
Copy link
Contributor

hrach commented Mar 7, 2016

And try to fix the current one, not to open another :)

throw new Nette\InvalidStateException('Cannot regenerate session ID after HTTP headers have been sent' . ($file ? " (output started at $file:$line)." : '.'));
}
if (session_id() !== '') {
session_write_close();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@luhla Maybe the session_write_close(); should be before the if. That should fix the failing test as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did try it before, but result was also failed checks. Solution is session_write_close(); before session_regenerate_id(TRUE); in my case but I wouldnt do annoing tests here.

@dg
Copy link
Member

dg commented Jun 17, 2016

Can you explain what is it good for?

@luhla
Copy link
Contributor Author

luhla commented Jun 20, 2016

Getting "session_regenerate_id(): Session object destruction failed" when calling before session_write_close();
But i can`t call session_write_close(); before session_id().

@dg
Copy link
Member

dg commented Jun 20, 2016

Is it needed to call session_write_close() when session_id() === '' ?

Or now we can use http://php.net/manual/en/function.session-status.php

@luhla
Copy link
Contributor Author

luhla commented Jun 20, 2016

Getting error when using:

if (session_id() !== '') {
        session_regenerate_id(TRUE);
}

Everithing fine when using:

if (session_status() === PHP_SESSION_ACTIVE ) {
        session_regenerate_id(TRUE);
}

luhla added 2 commits June 20, 2016 14:56
Change sessions state detection
readded session_write_close(); deleted by mistake
@dg
Copy link
Member

dg commented Jun 20, 2016

IMHO session_write_close(); should be in condition too.

luhla added 2 commits June 20, 2016 15:41
session_write_close moved to condition
session_write_close readded after condition
@dg
Copy link
Member

dg commented Jun 20, 2016

Did you change the order of session_write_close and session_regenerate_id intentionally?

@luhla
Copy link
Contributor Author

luhla commented Jun 20, 2016

Make no sense for me, where should be session_write_close() "in condition too" ?
After session_regenerate_id(TRUE) it is unnecessary because there is another session_write_close() after condition. But it should be always before $backup = $_SESSION;
Giving session_write_close() before session_regenerate_id(TRUE) is not obviously good idea.

@dg
Copy link
Member

dg commented Jun 20, 2016

After session_regenerate_id(TRUE) it is unnecessary because there is another session_write_close() after condition

Why must be another after condition? Why call it when session is not active?

@luhla
Copy link
Contributor Author

luhla commented Jun 20, 2016

Well, thats true, it might not, when seesion status is not active, nothing will be writen to session. I will fix it.

@dg dg merged commit 80efe13 into nette:master Jun 21, 2016
@dg
Copy link
Member

dg commented Jun 21, 2016

Thanks!

@luhla
Copy link
Contributor Author

luhla commented Jun 21, 2016

Thanks for nothing, you did the solution. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants