Hoi allemaal,

Ik heb een bestand genaamd functions.php en dat ziet er ongeveer zo uit:

<?php

/*Heel wat andere regels*/

class USER {

public $test = "hoi";

function authenticate(){
    ini_set('session.cookie_domain', '.example.com');
    session_start();

    if (!isset($_SESSION['username'])) {
      header("Location: https://example.com");
      exit();
    } else {
      if ($_SESSION['school'] != "correcteschool") {
        $school = $_SESSION['school'];
        if ($school != "admin") {
          $url = "https://" . $school . ".example.com";
          header("Location: $url");
        }
      }
    }
    $username = $_SESSION['username'];
    $school = $_SESSION['school'];
  }
}

/*De rest van de code*/

?>


Dit is mijn index.php


<?php

include "includes/functions.php";

$user = new USER();
$user->authenticate();

echo $school;

?>


er gebeurd niks (geen school in ieder geval)
als ik de echo tag in de functie zet, en de functie "aanroep" werkt het wel.

Als ik de test variabele wil printen kan ik dit doen:

<?php

echo $user->test;

?>


Kan iemand mij helpen?

Ik heb de adressen veranderd omwille van privacyredenen
Waar wordt de sessievariabele $_SESSION['school'] ingesteld?
In de pagina functions.php (bovenste code) in de functie onderin:

<?php $school = $_SESSION['school'] ?> 


De sessie wordt op een ander subdomein ingesteld, dit werkt....
Moet dat niet zo:
<?php $_SESSION['school'] = ... iets ...; ?>
De variabele $school bestaat alleen binnen de functie authenticate() en niet erbuiten. Je hebt die variabele echter niet nodig, want de waarde is toch gelijk aan $_SESSION['school'] en die is wél overal toegankelijk.
- SanThe - op 01/04/2019 14:06:51

Moet dat niet zo:
<?php $_SESSION['school'] = ... iets ...; ?>


Ja, dat klopt. Maar dat is al ergens op een ander subdomein gebeurd... Hier stel ik $school gelijk aan die sessie variabele

[size=xsmall]Toevoeging op 01/04/2019 14:11:50:[/size]

Ward van der Put op 01/04/2019 14:09:42

De variabele $school bestaat alleen binnen de functie authenticate() en niet erbuiten. Je hebt die variabele echter niet nodig, want de waarde is toch gelijk aan $_SESSION['school'] en die is wél overal toegankelijk.


Daar heb je gelijk in! Dankjewel

Reageren