Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

session is empty after redirect #300

Open
sadalsuud opened this issue Feb 22, 2024 · 8 comments
Open

session is empty after redirect #300

sadalsuud opened this issue Feb 22, 2024 · 8 comments

Comments

@sadalsuud
Copy link

sadalsuud commented Feb 22, 2024

I have a login form on login.php that action's form go to LoginController.php
In LoginController.php I have this:

require_once '../vendor/autoload.php';

$db = \Delight\Db\PdoDatabase::fromDsn(new \Delight\Db\PdoDsn('mysql:dbname=blabla;host=localhost;charset=utf8mb4', 'blabla', 'blabla'));

$auth = new Auth($db);
$auth->loginWithUsername($_POST['username'], $_POST['password']);

 session_start();
 $_SESSION['auth'] = $auth;    

And I redirect to another php file: home.php and there I have:

session_start();
$auth = $_SESSION['auth'];
var_dump($_SESSION);

But the $_SESSION is empty ... that var_dump prints : array(0) { }

The login is working but when I redirect and I stay on home.php no data session, but session_id is the same in LoginController and home.php

What is wrong? Help please, I am undertanding how to use this great library
thanks

@eypsilon
Copy link

I don't know if it will fix the problem, but session_start(); must be called before anything else, before require_once. Is error_reporting on?

@sadalsuud
Copy link
Author

No nothing, It so same. Do you have a example, how do you pass data from script to another script? I think I am doing something wrong

@eypsilon
Copy link

Do you have a example

Well, it should work, like you are doing it. Try, if your SESSION works at all, save a string in $_SESSION['test'] = 'Test var';, redirect and check the SESSION. The target after the redirect needs also a session_start().

@sadalsuud
Copy link
Author

What you say I did that already. The sesión works if I do not use login() or loginWithUsername() methods then, how I do go to use the library ??

@eypsilon
Copy link

Sorry, you don't need to do the SESSION-handling, it's done internally by the lib. And the target-page (or URL) you redirect to needs to require the library, too.

@sadalsuud
Copy link
Author

Then on the Target-page I do
require_once '../vendor/autoload.php';
But how I do access the $auth object on the Target-page ?
I try it and Tell you

@eypsilon
Copy link

Chack the SESSION on the target Page, it should be filled after the require

require_once '../vendor/autoload.php';

var_dump($_SESSION);

@ponasromas
Copy link

Library automatically calls for session when it is needed. You don't need to initiate it.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants