Protected page met database

Dit forum is bedoeld voor vragen met betrekking tot WYSIWYG Web Builder.
Post Reply
User avatar
marloes
 
 
Posts: 37
Joined: Wed Apr 06, 2016 5:01 pm

Protected page met database

Post by marloes » Mon May 11, 2020 3:28 pm

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?
Groetjes,
Marloes

User avatar
Pablo
 
Posts: 20577
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: Protected page met database

Post by Pablo » Mon May 11, 2020 4:11 pm

Heb je geprobeerd de tweede session_start() te verwijderen?

Ik kan helaas geen ondersteuning op eigen code kan geven.

User avatar
marloes
 
 
Posts: 37
Joined: Wed Apr 06, 2016 5:01 pm

Re: Protected page met database

Post by marloes » Mon May 11, 2020 9:28 pm

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

User avatar
Pablo
 
Posts: 20577
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: Protected page met database

Post by Pablo » Tue May 12, 2020 5:54 am

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?

User avatar
marloes
 
 
Posts: 37
Joined: Wed Apr 06, 2016 5:01 pm

Re: Protected page met database

Post by marloes » Tue May 12, 2020 12:22 pm

Welke instellingen wil je precies weten?

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

User avatar
Pablo
 
Posts: 20577
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: Protected page met database

Post by Pablo » Tue May 12, 2020 1:08 pm

Om dit moment is de combinatie 'CMS View' en "Protected Page" niet mogelijk.
Ik zal proberen dit in de toekomst mogelijk te maken.

User avatar
marloes
 
 
Posts: 37
Joined: Wed Apr 06, 2016 5:01 pm

Re: Protected page met database

Post by marloes » Tue May 12, 2020 2:15 pm

Welke aanpassing kan ik tot die tijd zelf in de gegenereerde php code doen om het te laten werken?
Groetjes,
Marloes

User avatar
Pablo
 
Posts: 20577
Joined: Tue Mar 28, 2006 12:00 pm
Location: Europe
Contact:

Re: Protected page met database

Post by Pablo » Tue May 12, 2020 2:33 pm

Je kunt proberen de tweede session_start() uit de code te verwijderen.

User avatar
marloes
 
 
Posts: 37
Joined: Wed Apr 06, 2016 5:01 pm

Re: Protected page met database

Post by marloes » Wed May 13, 2020 12:59 pm

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

Post Reply