I want to set the session in my service file:
<code><?php session_start();
require_once '../entities/User.php';
require '../vendor/autoload.php';
use MongoDBClient as MongoClient;
class TestService{
private static $client = null;
private static function getClient() {
if (self::$client === null) {
self::$client = new MongoClient('mongodb://localhost:27017');
}
return self::$client;
}
public static function saveMessage($message,$date) {
$client = self::getClient();
$collection = $client->forumTest->test;
$result = $collection->insertOne(['message' => $message, 'date' => $date]);
return $result->getInsertedCount() === 1;
}
public static function checkUsername($username){
$client = self::getClient();
$collection = $client->forumTest->users;
$user = $collection->findOne(['username' => $username]);
return $user !== null;
}
public static function saveUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->insertOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
return $result->getInsertedCount() === 1;
}
public static function checkUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->findOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
if($result !==null){
$username = $user->getUsername();
$_SESSION['username'] = $username;
}
return $result !== null;
}
}
?>
</code>
<code><?php session_start();
require_once '../entities/User.php';
require '../vendor/autoload.php';
use MongoDBClient as MongoClient;
class TestService{
private static $client = null;
private static function getClient() {
if (self::$client === null) {
self::$client = new MongoClient('mongodb://localhost:27017');
}
return self::$client;
}
public static function saveMessage($message,$date) {
$client = self::getClient();
$collection = $client->forumTest->test;
$result = $collection->insertOne(['message' => $message, 'date' => $date]);
return $result->getInsertedCount() === 1;
}
public static function checkUsername($username){
$client = self::getClient();
$collection = $client->forumTest->users;
$user = $collection->findOne(['username' => $username]);
return $user !== null;
}
public static function saveUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->insertOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
return $result->getInsertedCount() === 1;
}
public static function checkUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->findOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
if($result !==null){
$username = $user->getUsername();
$_SESSION['username'] = $username;
}
return $result !== null;
}
}
?>
</code>
<?php session_start();
require_once '../entities/User.php';
require '../vendor/autoload.php';
use MongoDBClient as MongoClient;
class TestService{
private static $client = null;
private static function getClient() {
if (self::$client === null) {
self::$client = new MongoClient('mongodb://localhost:27017');
}
return self::$client;
}
public static function saveMessage($message,$date) {
$client = self::getClient();
$collection = $client->forumTest->test;
$result = $collection->insertOne(['message' => $message, 'date' => $date]);
return $result->getInsertedCount() === 1;
}
public static function checkUsername($username){
$client = self::getClient();
$collection = $client->forumTest->users;
$user = $collection->findOne(['username' => $username]);
return $user !== null;
}
public static function saveUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->insertOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
return $result->getInsertedCount() === 1;
}
public static function checkUser(User $user){
$client = self::getClient();
$collection = $client->forumTest->users;
$result = $collection->findOne(['username' => $user->getUsername(),'password' => $user->getPassword()]);
if($result !==null){
$username = $user->getUsername();
$_SESSION['username'] = $username;
}
return $result !== null;
}
}
?>
And I want to call it here:
<code><?php session_start();
header("Access-Control-Allow-Origin: http://localhost:3000");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Credentials: true");
$loggedIn = isset($_SESSION['username']);
echo json_encode(['loggedIn' => $loggedIn]);
?>
</code>
<code><?php session_start();
header("Access-Control-Allow-Origin: http://localhost:3000");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Credentials: true");
$loggedIn = isset($_SESSION['username']);
echo json_encode(['loggedIn' => $loggedIn]);
?>
</code>
<?php session_start();
header("Access-Control-Allow-Origin: http://localhost:3000");
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
header("Access-Control-Allow-Credentials: true");
$loggedIn = isset($_SESSION['username']);
echo json_encode(['loggedIn' => $loggedIn]);
?>
But the $_SESSION[‘username’] is null. I tried to do a test session with two test files and it worked so I guess the problem is in my code.
testFile1:
<code><?php session_start();
$asd = "asd";
$_SESSION['asd'] = $asd;
?>
</code>
<code><?php session_start();
$asd = "asd";
$_SESSION['asd'] = $asd;
?>
</code>
<?php session_start();
$asd = "asd";
$_SESSION['asd'] = $asd;
?>
TestFile 2:
<code><?php session_start();
echo $_SESSION['asd'];
?>
</code>
<code><?php session_start();
echo $_SESSION['asd'];
?>
</code>
<?php session_start();
echo $_SESSION['asd'];
?>
It works like this, but when I want to use it in my Service and call it in another file it doesn’t work.
New contributor
Zenon is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
2