Ik heb aan de website van ons koor o.a. een mededelingen pagina toegevoegd (deze staat nog niet online). Ik heb een administrator pagina gemaakt waarmee de mededelingenpagina bewerkt kan worden, dus de pagina werkt met een database. Maar op de mededelingenpagina gaat het mis bij het laden van de inhoud van de database. Ik krijg de volgende foutmelding: "Notice: session_start(): A session had already been started - ignoring .....". En daarna volgen twee database waarschuwingen.
De mededelingen pagina is een protected page. Er moet dus voor worden ingelogd. Er moet echter ook een sessie gestart worden voor inloggen op de database waar de inhoud van de pagina vandaan moet komen. Deze twee sessies lijken elkaar in de weg te zitten. Hoe los ik dat op?
Protected page met database
Protected page met database
Groetjes,
Marloes
Marloes
Re: Protected page met database
Heb je geprobeerd de tweede session_start() te verwijderen?
Ik kan helaas geen ondersteuning op eigen code kan geven.
Ik kan helaas geen ondersteuning op eigen code kan geven.
Re: Protected page met database
Dat snap ik, maar het is geen eigen code ; ik heb de cms en login plugins van het programma gebruikt . Ik heb wel in de code gekeken om te zien wat er in de regel stond waar de foutmelding over ging. Maar weet dus niet zo goed hoe ik het op moet lossen.
Groetjes,
Marloes
Marloes
Re: Protected page met database
Het is lastig je hierbij te help zonder exact te zien wat je hebt gedaan.
Wat zijn je instellingen?
Wat is de gegenereerde PHP code?
Wat zijn je instellingen?
Wat is de gegenereerde PHP code?
Re: Protected page met database
Welke instellingen wil je precies weten?
De php code van de mededelingen pagina begint met:
En daarbij lijkt dus iets mis te gaan bij de 2e keer 'session_start()'
De php code van de mededelingen pagina begint met:
Code: Select all
if (session_id() == "")
{
session_start();
}
if (!isset($_SESSION['username']))
{
$_SESSION['referrer'] = $_SERVER['REQUEST_URI'];
header('Location: ');
exit;
}
if (isset($_SESSION['expires_by']))
{
$expires_by = intval($_SESSION['expires_by']);
if (time() < $expires_by)
{
$_SESSION['expires_by'] = time() + intval($_SESSION['expires_timeout']);
}
else
{
unset($_SESSION['username']);
unset($_SESSION['expires_by']);
unset($_SESSION['expires_timeout']);
$_SESSION['referrer'] = $_SERVER['REQUEST_URI'];
header('Location: ');
exit;
}
}
session_start();
define('MAIN_SCRIPT', basename(__FILE__));
function fireEvent($event_name, $id)
{
global $events;
if (isset($events[$event_name]))
{
foreach($events[$event_name] as $fn)
{
$fn($id);
}
}
}
$mysql_server = 'localhost';
$mysql_username = '***';
$mysql_password = '***';
$mysql_database = '***_mededelingen';
$mysql_table = 'cms_';
$cms_no_results = 'No results';
$cms_content = '';
$cms_page_id = 0;
$events = array();
if (file_exists('./plugins/'))
{
$handle = opendir("./plugins/");
while ($name = readdir($handle))
{
if ($name != "." && $name != ".." && is_dir("./plugins/".$name) && substr($name, 0, 1) != '_')
{
require_once('./plugins/'.$name.'/plugin.php');
if (isset($plugin['events']))
{
foreach($plugin['events'] as $name=>$fn)
{
if (!isset($events[$name]))
$events[$name] = array();
$events[$name][] = $fn;
}
}
}
}
closedir($handle);
}
$db = mysqli_connect($mysql_server, $mysql_username, $mysql_password);
if (!$db)
{
die('Failed to connect to database server!<br>'.mysqli_error($db));
}
En daarbij lijkt dus iets mis te gaan bij de 2e keer 'session_start()'
Groetjes,
Marloes
Marloes
Re: Protected page met database
Om dit moment is de combinatie 'CMS View' en "Protected Page" niet mogelijk.
Ik zal proberen dit in de toekomst mogelijk te maken.
Ik zal proberen dit in de toekomst mogelijk te maken.
Re: Protected page met database
Welke aanpassing kan ik tot die tijd zelf in de gegenereerde php code doen om het te laten werken?
Groetjes,
Marloes
Marloes
Re: Protected page met database
Je kunt proberen de tweede session_start() uit de code te verwijderen.
Re: Protected page met database
Jaaaaa dat werkt! Ik kan nu beide functies gebruiken zonder problemen. Dankjewel! Ik heb het online gezet: https://maskmaarssen.nl/. De pagina waar het om ging staat uiteraard in het gedeelte waarvoor leden moeten inloggen. Maar hij is verder hetzelfde als de Nieuws pagina, waarvoor niet hoeft te worden ingelogd.
Groetjes,
Marloes
Marloes