[2.3] Passwortgeschützte Threads

rellek

relativ sensationell
Teammitglied
Bei einem neuen Beitrag wäre diese Abfrage auch sinnlos - da müsstest du beim neuen Thema kucken. Außerdem wäre das mehr ein Fall für das Template "newthread", weniger für die PHP-Datei.
 
S

Shackles

Guest
Ist das ein Bug im Hack?
Folgendes:
Wenn man auf Suche geht und dort einen Benutzernamen rechts eingibt und sich alle Beiträge anzeigen lässt, dass dort auch die Beiträge aus dem passwortgeschützten Thread mit aufgelistet werden?
Das ist ziemlich doof!
 

rellek

relativ sensationell
Teammitglied
Ja, das scheint ein Bug zu sein.....

Da müsst ich mir noch was einfallen lassen...
 

rellek

relativ sensationell
Teammitglied
Kleiner Hotfix, ungetestet, aber is ja eh alles beta ;P

vorher also backup machen!

Was wird behoben? Alle passwort geschützten Themen müssten von der Suche ausgeschlossen werden.

./search.php
suche (Zeile 77):
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$wbbuserdata[lastvisit]'

ersetze durch:
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$wbbuserdata[lastvisit]' AND t.pwd=''

suche (Zeile 111):
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$datecute'

ersetze durch:
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.posttime>'$datecute' AND t.pwd=''

suche (Zeile 147):
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.userid='$userid'

ersetze durch:
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND p.userid='$userid' AND t.pwd=''

suche (Zeile 189):
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND t.threadid IN (0".$threadIDs.") AND p.visible=1

ersetze durch:
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND t.threadid IN (0".$threadIDs.") AND p.visible=1  AND t.pwd=''

suche (Zeile 279):
Code:
WHERE p.postid IN (0$postids)

ersetze durch:
Code:
WHERE p.postid IN (0$postids) AND t.pwd=''

Suche (Zeile 391):
Code:
WHERE t.threadid IN (0$threadids)

ersetze durch:
Code:
WHERE t.threadid IN (0$threadids) AND t.pwd=''

suche (Zeile 674):
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1"

ersetze durch:
Code:
$result = $db->unbuffered_query("SELECT p.postid FROM bb".$n."_posts p, bb".$n."_threads t WHERE p.threadid=t.threadid AND p.visible=1 AND t.pwd=''"


Das wars.
 
S

Shackles

Guest
Ich mal wieder! *g*

Hier die Datei, unbearbeitet!
 

Anhänge

  • search.php.txt
    33,3 KB · Aufrufe: 101

Parkbank

Neuer Benutzer
Original von rellek
Kannst du die Datei evtl mal anhängen?

Ist jetzt zwar schon etwas länger her, aber habe eben erst wieder angefangen mich darum zu kümmern.
Um es nochmal kurz zusammenzufassen: Es ist z.Zt. nicht möglich, das Passwort auf den beschriebenen Weg zu entfernen. Deshalb habe ich mal meine modcp.php angehängt:
 

Anhänge

  • modcp.rar
    4,8 KB · Aufrufe: 29
S

Shackles

Guest
Bei mir klappt das Passwort wieder rausnehmen nicht mehr, wenns überhaupt schon mal funktioniert hat, welche Datei ist dafür zuständig?Dann kann ich sie hier mal anhängen!
 

rellek

relativ sensationell
Teammitglied
Meinst du bei Thema bearbeiten? Das wäre die Datei modcp.php.

Was passiert denn? Du klickst den "entfernen"-Button an und trotzdem bleibt das Passwort drin oder was?
 

Adrasthea

[inaktiv]
erstmal danke für diesen Hack, den ich erfolgreich einsetzte :)

Jetzt ist es leider so, dass einige User kein PW setzen.
Besteht die Möglichkeit ein PW zu erzwingen?
 

rellek

relativ sensationell
Teammitglied
Gibts auch, wenn du das möchtest...

newthread.php, suche:
Code:
			if(isset($_POST['pwd'])) $pwd = md5($_POST['pwd']);
			else $pwd = '';

danach einfügen:
Code:
if($pwd_enable == "1" && empty($pwd)) $error .= "Du musst ein Passwort setzen!";

(ungetestet)
 

rellek

relativ sensationell
Teammitglied
gut... *hust* mein fehler.


dann mach das mal rückgängig und such diese zeile:
Code:
		if ($wbbuserdata['max_post_image'] != -1 && wbb_substr_count(wbb_strtolower($message), "[img]") > $wbbuserdata['max_post_image']) $error .= $lang->items['LANG_POST_ERROR4'];

und füge danach ein:
Code:
if($pwd_enable == "1" && empty($_POST['pwd'])) $error .= "Du musst ein Passwort setzen!";
 
S

Shackles

Guest
Original von rellek
Meinst du bei Thema bearbeiten? Das wäre die Datei modcp.php.

Was passiert denn? Du klickst den "entfernen"-Button an und trotzdem bleibt das Passwort drin oder was?

Ja genau rellek!!!
 

rellek

relativ sensationell
Teammitglied
Hm. Das müsste so stimmen...

Es sei denn, PHP ist neuerdings pingeliger geworden....

Such mal:
Code:
if ($_POST['rempwd'] == 1) {

und ersetze durch:
Code:
if ($_POST['rempwd'] == "1") {
 
Oben