Pagina 1 van 3

Toegang webpagina's

Geplaatst: 27 okt 2005, 18:56
door Guust
Hallo,

:? Graag had ik, wanneer geregistreerde gebruikers uit een bepaalde gebruikersgroep ingelogd zijn, ze ook toelating gegeven op "beveiligde pagina's" van mijn website. Is dit mogelijk?

:( Dit probleem is nog steeds niet opgelost!!! neem aub eens een kijkje op de laatste topics. :(

mvg,

Geplaatst: 27 okt 2005, 21:35
door Lady Elensar
Volgensmij kun je dit gewoon bij permissies instellen. Ik kan het je niet precies zeggen, want m'n acp is iets veranderd, maar ik geloof dat je bij groepsbeheer, bij de permissies, dat kan instellen.

Geplaatst: 27 okt 2005, 21:52
door Guust
:( Ik vind helaas niets onder permissies. Enkel de verschillende Fora kan ik hierin aanpassen, geen (externe) html pagina's van m'n website...

Geplaatst: 09 nov 2005, 23:42
door Guust
:wave: Is er iemand die mij kan helpen?

:? Ik meen eens ergens gelezen te hebben dat je simpelweg een stukje in php dient toe te voegen bovenaan je html-code van elke pagina die je achter de inlog wil zetten Klopt dit?
En welke php-code zet ik er dan voor?


Mvg,

Geplaatst: 10 nov 2005, 22:09
door Lady Elensar
Ik had niet gezien dat je een html pagina bedoelde, maar keb toch maar ff op phpbbhacks.com gekeken, en daar zag ik wel zo'n mod:
Extra Permission Hack:
http://phpbbhacks.com/download/2046

Maar ik weet niet zeker of dit iets is wat je zoekt. Anders moet je gewoon ff op zoeken naar mods met de trefwoorden, protect(ion) of secure(ty). Misschien vind je dan iets? :)

Geplaatst: 10 nov 2005, 22:15
door XP-Rene
Misschien heb je hier iets aan?

Geplaatst: 22 nov 2005, 23:53
door Guust
XP-Rene schreef:Misschien heb je hier iets aan?
:? Weinig, ik heb nu reeds beveiligde pagina's op m'n website, maar wil deze toegankelijk maken via het Forum. Echter wel enkel voor één bepaalde gebruikersgroep.

mvg, en toch bedankt Rene!!

Geplaatst: 24 nov 2005, 18:13
door TWEagle
post in een forum die linken maar maak dat forum alleen toegankelijk voor die group?

en anders die usergroup een aantal accounts aanmaken via iis als het een windowsserver is en die daar toegang tot geven?

Geplaatst: 24 nov 2005, 19:05
door Lontronics
Ik denk dat je dit bedoelt: http://www.phpbb.nl/viewtopic.php?t=24353 ;)

Groeten,
Jan

Geplaatst: 24 nov 2005, 21:26
door Guust
Lontronics schreef:Ik denk dat je dit bedoelt: http://www.phpbb.nl/viewtopic.php?t=24353 ;)

Groeten,
Jan
:thumb: Inderdaad! Dit is het zowat denk ik, enkel... ik zou ook willen selecteren op usergroup. Dus enkel die bepaalde gebruikersgroep mag toegang krijgen.
In jou code wordt gecontroleerd of die bepaalde persoon ingelogd is (denk ik), maar er zou ook moeten gecontroleerd worden of hij lid is van een bepaalde groep.
:? Enig idee wat ik dan nog aan jou code moet toevoegen?
mvg,

Geplaatst: 25 nov 2005, 00:39
door Lontronics
Als je weet wat waarde is van usergroup in de tabel dan kan het vrij eenvoudig.
Dit is te zien via phpmyadmin.

Dit is de code die in de andere topic stond:

Code: Selecteer alles

// Controls for phpbb login inclusion
define('IN_PHPBB', true);
$phpbb_root_path =  "LOCAAL_WWWROOTPATH/forum/";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, FOTOALBUMS);
init_userprefs($userdata);
if ( !$userdata['session_logged_in'] )
{
   echo ("<center><br><br><br>");
   echo ("Alleen leden hebben toegang tot de fotoalbums.<br>");
   echo ("Bent u al lid, log dan in op het forum om tevens toegang te krijgen tot de fotoalbums.");
   echo ("</center>");
   die();
}
Ik heb net ff zitten testen, puur met code die ik uit de pagina's van phpbb pik en dan werkt het volgende:

Code: Selecteer alles

<?php
$ALLOWED_GROUP = "3";

// Controls for phpbb login inclusion
$CHECK_ALLOWED = 0;
define('IN_PHPBB', true);
$phpbb_root_path =  "LOCAAL_WWWROOTPATH/forum/";
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, INDEX);
init_userprefs($userdata);
if ( $userdata['session_logged_in'] )
{
	$usr = $userdata[0][0];
	$sql = "SELECT group_id FROM " . USER_GROUP_TABLE . " WHERE user_id = $usr";
	if (!($result = $db->sql_query($sql)))
	{
		die("Error finding group information for user in sql table");
	}
	$row = $db->sql_fetchrow($result);
	if ($row[0] = $ALLOWED_GROUP)
	{
		$CHECK_ALLOWED = 1;
	}
}
if ($CHECK_ALLOWED == 0)
{
   echo ("<center><br><br><br>");
   echo ("Alleen leden hebben toegang tot de fotoalbums.<br>");
   echo ("Bent u al lid, log dan in op het forum om tevens toegang te krijgen tot de fotoalbums.");
   echo ("</center>");
   die(); 
}

EN HIER DE REST VAN DE PAGINA
$ALLOWED_GROUP is de groep die toegang heeft
$php_root_path is het path naar je phpbb directory

Het kan misschien wel eenvoudiger, maar ik weet niet hoe.
En wb. de groepen, ik gebruik ze zelf niet, maar heb in de sql-tabel gekeken en vlgs mij moet het zo kloppen ;)

Jan

Geplaatst: 25 nov 2005, 10:03
door Guust
Dus, als ik het goed begrijp (sorry hoor :oops: ) dien ik in:

Code: Selecteer alles

$ALLOWED_GROUP = "3"; 
de 3 te vervangen door de naam van m'n usergroup.

en in

Code: Selecteer alles

$phpbb_root_path =  "LOCAAL_WWWROOTPATH/forum/"; 
LOCAAL_WWWROOTPATH/forum/ door het path waar bij m'n forum in staat?

mvg,

Geplaatst: 25 nov 2005, 10:47
door Lontronics
Niet de naam maar het nummer, wat overeenkomt met het nummer wat in de phpbb tabel staat bij de usergroup :wink:

Ik zal vanavond nog wel ff snuffelen om te kijken of ik het iets eenvoudiger voor je kan maken door de naam van de usergroep te gebruiken.

Geplaatst: 25 nov 2005, 10:55
door Guust
Die snelheid, die souplesse...!

:bier: alvast bedankt, ga het vanmiddag eens proberen!

mvg,

Geplaatst: 25 nov 2005, 23:50
door Lontronics
Hier het werkende script, uitgaande van de groepsnaam:

Code: Selecteer alles

<?php
$ALL_GROUP_NAME = "Admin";

// Controls for phpbb login inclusion
$CHECK_ALLOWED = 0;
define('IN_PHPBB', true);
$phpbb_root_path =  dirname(__FILE__) . "/";

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, INDEX);
init_userprefs($userdata);

if ( $userdata['session_logged_in'] )
{
   $sql = "SELECT group_id FROM " . GROUPS_TABLE . " WHERE group_name = CONVERT( _utf8 '$ALL_GROUP_NAME' USING latin1 ) ";
   if (!($result = $db->sql_query($sql)))
   {
	die("ERROR FINDING GROUP_ID IN SQL TABLE");
   }
   $_grp = $db->sql_fetchrow($result);

   $_usr = $userdata[0][0];
   $sql = "SELECT group_id FROM " . USER_GROUP_TABLE . " WHERE user_id = $_usr";
   if (!($result = $db->sql_query($sql)))
   {
	die("ERROR FINDING USER_ID IN SQL TABLE");
   }
   $_row = $db->sql_fetchrow($result);

   if ($_row[0] = $_grp[0])
   {
      $CHECK_ALLOWED = 1;
   }
}

if ($CHECK_ALLOWED == 0)
{
   echo ("U HEBT GEEN TOEGANG TOT DIT DEEL VAN DE WEBSITE");
   die();
}

echo ("ALS JE DIT OP JE SCHERM KRIJGT DAN BEN JE INGELOGD EN ZIT JE IN DE USERGROUP");
Je kunt dirname(__FILE__) . "/" ook vervangen door het path tussen twee quotes.
Wanneer je echter het bestand in de phpbb directory hebt staan werkt het ook met __FILE__ en hoef je het volledige path niet in te typen ;)

Verder in $ALL_GROUP_NAME = "Admin"; Admin vervangen door de juiste groep.

Uiteraard de teksten aanpassen en de echo("Als je dit op je scherm etc..... vervangen door de code van je pagina.

Hier werkt het op deze manier, maar geen garanties dat het bij jou ook werkt :D

Groeten,
Jan

Geplaatst: 26 nov 2005, 10:52
door Paul

Code: Selecteer alles

<?php
$ALL_GROUP_NAME = "Admin";

// Controls for phpbb login inclusion
$CHECK_ALLOWED = false;
define('IN_PHPBB', true);
$phpbb_root_path =  dirname(__FILE__) . "/";

include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

if ( $userdata['session_logged_in'] )
{
   $sql = "SELECT group_id FROM " . GROUPS_TABLE . " WHERE group_name = CONVERT( _utf8 '$ALL_GROUP_NAME' USING latin1 ) ";
   if (!($result = $db->sql_query($sql)))
   {
   message_die(GENERAL_ERROR,"Could not select id","",__LINE__,__FILE__,$sql);
   }
   $_grp = $db->sql_fetchrow($result);

   $_usr = $userdata[0][0];
   $sql = "SELECT group_id FROM " . USER_GROUP_TABLE . " WHERE user_id = $_usr";
   if (!($result = $db->sql_query($sql)))
   {
   message_die(GENERAL_ERROR,"Could not select group","",__LINE__,__FILE__,$sql);
   }
   $_row = $db->sql_fetchrow($result);

   if ($_row[0] == $_grp[0])
   {
      $CHECK_ALLOWED = true;
   }
}

if (!$CHECK_ALLOWED)
{
   message_die(GENERAL_MESSAGE,"Je hebt geen toegang tot deze pagina","");
}

echo ("ALS JE DIT OP JE SCHERM KRIJGT DAN BEN JE INGELOGD EN ZIT JE IN DE USERGROUP"); 
Even beetje aangepast aan de phpbb standaard, en waarom gebruik je CONVERT in je query, lijkt me beetje onzinnig :?

Geplaatst: 26 nov 2005, 11:14
door Lontronics
probeer het maar eens zonder ;)

Geplaatst: 26 nov 2005, 11:23
door Paul
phpbb gebruikt het ook niet, en lijkt me dus niet zo nodig. Heb hier even geen phpbb zo draaien, dus kan ff niet testen.

Geplaatst: 26 nov 2005, 11:37
door Lontronics
Ik heb het eerst geprobeerd zonder, maar dat bleek hier niet te werken.
Misschien dat mijn tabellen destijds niet goed zijn aangemaakt dan, dat zou kunnen, iig heb ik phpmyadmin erbij gepakt, en geselecteerd op 'Admin' en de regel overgenomen zoals hij in phpmyadmin gebruikt werd.
Daarmee was bij mij het probleem opgelost, en werkte alles keurig netjes ;)

Jan

Geplaatst: 26 nov 2005, 11:45
door Paul
Ik heb het denet getest met deze query:

Code: Selecteer alles

$sql = "SELECT group_id FROM " . GROUPS_TABLE . " WHERE group_name = '$ALL_GROUP_NAME'";
Op een mysql 5.0.16, met een phpbb 2.0.18, en werkt perfect :)