Toegang webpagina's

Hulp nodig bij een modificaties of op zoek naar een MOD? Bekijk ons archief. Support wordt helaas niet meer verleend.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Lontronics

Bericht door Lontronics » 26 nov 2005, 11:48

Dan laat je het gewoon weg ;)

Thx voor het testen overigens :thumb:

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 26 nov 2005, 13:49

:? Ik moet iets verkeerd doen denk ik, dit krijg ik bij het openen van de pagina via mijn browser:

Code: Selecteer alles

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"); 

Het betreft hier wel een HTML-pagina...

Op aanraden van Paulus heb ik dus dat regeltje

Code: Selecteer alles

$sql = "SELECT group_id FROM " . GROUPS_TABLE . " WHERE group_name = '$ALL_GROUP_NAME'";
vervangen

Enig idee wat er fout zit?

mvg,[/code]

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 26 nov 2005, 13:51

Het bestand moet de extensie .php hebben ;)

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 26 nov 2005, 14:10

Dan krijg ik dit te zien:

Parse error: parse error, unexpected '<' in /usr/home/cacbbe/public_html/Forum/testpagina_beveiligde_pagina.php on line 44

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 26 nov 2005, 14:12

wat is regel 44?

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 26 nov 2005, 14:26

<html>

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 26 nov 2005, 14:30

Dan heb je php niet afgesloten met ?> ;)

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 26 nov 2005, 14:50

:? Dan:

Could not select group

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

SELECT group_id FROM phpbb_user_group WHERE user_id =

Line : 27
File : testpagina_beveiligde_pagina.php

Gebruikersavatar
Paul
Beheerder
Beheerder
Berichten: 20316
Lid geworden op: 23 okt 2003, 11:38
Locatie: Utrecht
Contacteer:

Bericht door Paul » 26 nov 2005, 14:52

verander

Code: Selecteer alles

$_usr = $userdata[0][0]; 
in

Code: Selecteer alles

$_usr = $userdata['user_id']; 

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 26 nov 2005, 15:05

:? Blijkbaar zit er nog ergens een foutje in, nu kunnen alle geregistreerde gebruikers de pagina bekijken, en niet enkel de gebruikers van de gebruikersgroep "Leden"...

mvg,

Lontronics

Bericht door Lontronics » 27 nov 2005, 15:56

Hallo Guust,

Zou je de code hier eens willen plaatsen die je nu in je pagina hebt staan?
Ik kan dan eens kijken waar de verschillen zitten en waar het mogelijk fout gaat ;)

Groeten,
Jan

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 27 nov 2005, 17:09

:) Jazeker! :

Code: Selecteer alles

<?php 
$ALL_GROUP_NAME = "Leden"; 

// 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 = '$ALL_GROUP_NAME'";
   if (!($result = $db->sql_query($sql))) 
   { 
   message_die(GENERAL_ERROR,"Could not select id","",__LINE__,__FILE__,$sql); 
   } 
   $_grp = $db->sql_fetchrow($result); 

   $_usr = $userdata['user_id']; 
   $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"); 
?>
<html>
<head>
<meta http-equiv="Content-Language" content="nl-be">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Testpagina beveiligde pagina</title>
<meta name="Microsoft Border" content="tlrb, default">
</head>

<body>

<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center"><font size="7" color="#FF0000">Testpagina beveiligde pagina</font></p>

</body>

</html>

mvg,

Lontronics

Bericht door Lontronics » 27 nov 2005, 19:33

Nou, dat is vreemd.

Ik heb bij groep Admin ingevuld en vervolgens gecheckt.
Wanneer ik ingelogd ben, krijg ik netjes toegang.
Wanneer ik uitgelogd ben, krijg ik netjes de melding 'je hebt geen toegang tot deze pagina'.

Oftewel, hier werkt het.

Hier de pagina wanneer ik ingelogd ben: Screenshot 1 (55kb, 1280x1024px)

Hier de pagina wanneer ik uitgelogd ben: Screenshot 2 (63kb, 1280x1024px)

Hier is de code die ik heb toegepast:

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 = '$ALL_GROUP_NAME'";
   if (!($result = $db->sql_query($sql)))
   {
   message_die(GENERAL_ERROR,"Could not select id","",__LINE__,__FILE__,$sql);
   }
   $_grp = $db->sql_fetchrow($result);

   $_usr = $userdata['user_id'];
   $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");
?>
<html>
<head>
<meta http-equiv="Content-Language" content="nl-be">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Testpagina beveiligde pagina</title>
<meta name="Microsoft Border" content="tlrb, default">
</head>

<body>

<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center"><font size="7" color="#FF0000">Testpagina beveiligde pagina</font></p>

</body>

</html> 
Groeten,
Jan
Laatst gewijzigd door Lontronics op 27 nov 2005, 19:48, 1 keer totaal gewijzigd.

Lontronics

Bericht door Lontronics » 27 nov 2005, 19:47

Ik ben toch eens verder gaan kijken en ik denk dat ik weet waar het probleem zit.
Mijn probleem is echter dat ik geen groepen gebruik en het dus verder ook niet uitgebreider kan testen.

De procedure zou moeten zijn:

- de naam van de opgegeven groep omzetten in het group_id, uitgaande van de tabel %prefix%_GROUPS
- vervolgens kijken of de user_id in de lijst met user_id's staat in de tabel %prefix%_USER_GROUP. Ik ga er tenminste vanuit dat in het veld user_id meerdere id's zullen staan als er meerdere users in de groep zitten......
- Als de user_id er niet in zit dan error, anders doorlaten.

Ik weet niet of er iemand is met php kennis die ook nog eens groups gebruikt en e.e.a. aan zou kunnen passen voor Guust?

Jan

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 28 nov 2005, 22:56

:( Paulus?

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 30 nov 2005, 21:24

:wave: Hallo? Hééélp!!!!! :wave:

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 08 dec 2005, 21:20

:wink: Dit lijkt er al meer op, nu krijg je onderstaande mededeling wanneer je niet bent ingelogd. kijk eerst even op: http://www.cacb.be/Forum/testpagina_bev ... pagina.php

De eigenlijke bedoeling -dat met enkel toegang voor één bepaalde groep- wil nog steeds niet lukken...

Iemand? :?

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 15 dec 2005, 21:37

:wave: Is hier écht niemand die me kan helpen? :wave:
De procedure zou moeten zijn:

- de naam van de opgegeven groep omzetten in het group_id, uitgaande van de tabel %prefix%_GROUPS
- vervolgens kijken of de user_id in de lijst met user_id's staat in de tabel %prefix%_USER_GROUP. Ik ga er tenminste vanuit dat in het veld user_id meerdere id's zullen staan als er meerdere users in de groep zitten......
- Als de user_id er niet in zit dan error, anders doorlaten.
Ergens moet er nog een foutje inzitten in onderstaande code.
Momenteel kunnen àlle geregistreerden op de pagina, en niet enkel die van de geselecteerde groep "leden".

Code: Selecteer alles

<?php 
$ALL_GROUP_NAME = "Leden"; 

// 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_id = '$ALL_GROUP_NAME'"; 
   if (!($result = $db->sql_query($sql))) 
   { 
   message_die(GENERAL_ERROR,"Could not select id","",__LINE__,__FILE__,$sql); 
   } 
   $_grp = $db->sql_fetchrow($result); 

   $_usr = $userdata['user_id']; 
 $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"); 
?>
<HTML>
<HEAD>
<META http-equiv="Content-Language" content="nl-be">
<META name="GENERATOR" content="Microsoft FrontPage 6.0">
<META name="ProgId" content="FrontPage.Editor.Document">
<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
<TITLE>Testpagina beveiligde pagina</TITLE>
<META name="Microsoft Border" content="tlrb, default">
</HEAD>
<BODY>
<P align="center">&nbsp;</P>
<P align="center">&nbsp;</P>
<P align="center">&nbsp;</P>
<P align="center">&nbsp;</P>
<P align="center">&nbsp;</P>
<P align="center"><FONT size="7" color="#FF0000">Testpagina beveiligde pagina</FONT></P>
</BODY>
</HTML>
mvg,

fn002449
Berichten: 326
Lid geworden op: 09 nov 2005, 13:59

Re: Toegang webpagina's

Bericht door fn002449 » 15 dec 2005, 21:44

Guust schreef: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,
Nou ik ga je even helpen ;)

Code: Selecteer alles

$sql = "SELECT g.group_id, g.group_name
		FROM " . %prefix%_groups . " g, " . %prefix%_user_group . " ug
		WHERE g.group_id = ug.group_id
		AND g.group_single_user = 0
		AND ug.user_id = '".$userdata['user_id']."'
		AND ug.user_pending = 0;";
Met deze sql query vraag je op in welke groep degene zit die is ingelogt.... daarna voer je gewoon een check uit... klaar is kees...

Guust
Berichten: 96
Lid geworden op: 06 sep 2005, 23:41
Locatie: Mechelen
Contacteer:

Bericht door Guust » 15 dec 2005, 23:10

En deze code voeg ik toe aan bovenstaande? En waar ergens?


Alvast bedankt! ik dacht dat ik er nooit meer zou uitkomen...
mvg,

Gesloten