[2.3] Passwortgeschützte Threads

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.
 
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!
 
Ja, das scheint ein Bug zu sein.....

Da müsst ich mir noch was einfallen lassen...
 
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.
 
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

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!
 
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?
 
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?
 
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)
 
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!";
 
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!!!
 
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") {
 
Zurück
Oben