Verhindern das User sehen was sie nicht sehen dürfen? ;)

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Jason

Verhindern das User sehen was sie nicht sehen dürfen? ;)

Beitrag von Jason »

Hi,
ich frage mit diesem Query einige Topic infos ab:

Code: Alles auswählen

$sql = "SELECT topic_id,topic_title,topic_replies
        FROM " . TOPICS_TABLE . " t
        LEFT JOIN " . FORUMS_TABLE . " f
        ON t.forum_id=f.forum_id
        ORDER BY topic_replies DESC
        LIMIT 10";
Um genau zu sein die Top 10 Topics nach Replies nun würde ich gerne verhindern das Benutzer Topics sehen für die sie nicht die nötigen rechte haben reicht es da wenn ich einfach WHERE f.auth_view = 0 hinzufüge?

Gruß Jason
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Es sollte reichen, aber ich such dir was eleganteres raus. Wird aber erst heute abend.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Jason

Beitrag von Jason »

Ja das wär nett :)

Grüße Jason
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Versuch's mal mit:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
	$sql = "SELECT DISTINCT t.topic_id, t.topic_title, t.topic_replies
		FROM " . TOPICS_TABLE . " t 
		INNER JOIN " . FORUMS_TABLE . " f ON t.forum_id = f.forum_id
		LEFT JOIN " . AUTH_ACCESS_TABLE . " aa on f.forum_id = aa.forum_id
		LEFT JOIN " . USER_GROUP_TABLE . " ug on aa.group_id = ug.group_id
		LEFT JOIN " . USERS_TABLE . " u on ug.user_id = u.user_id
		WHERE f.auth_read = " . AUTH_ALL " . OR
			(ug.user_id = " . $userdata['user_id'] . " AND ((aa.auth_read = 1 AND ug.user_pending = 0) OR user_level = " . ADMIN . "))
		ORDER BY topic_replies DESC 
		LIMIT 10";
}
else
{
	$sql = "SELECT DISTINCT t.topic_id, t.topic_title, t.topic_replies
		FROM " . TOPICS_TABLE . " t 
		INNER JOIN " . FORUMS_TABLE . " f ON t.forum_id = f.forum_id
		LEFT JOIN " . AUTH_ACCESS_TABLE . " aa on f.forum_id = aa.forum_id
		LEFT JOIN " . USER_GROUP_TABLE . " ug on aa.group_id = ug.group_id
		LEFT JOIN " . USERS_TABLE . " u on ug.user_id = u.user_id
		WHERE f.auth_read = " . AUTH_ALL
		ORDER BY topic_replies DESC 
		LIMIT 10";
}
Ich hoffe, dass der auch in schwierigen Fällen richtig funzt...

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“