MyBB.de Forum
Beitragserstellung bei vorhandenem Thema verweigern? - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: Beitragserstellung bei vorhandenem Thema verweigern? (/thread-16283.html)

Seiten: Seiten: 1 2 3


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 03.08.2012

Vorab hier noch mal der Link zu Beitrag#5 um zu wissen um welche Änderung es ging:
https://www.mybb.de/forum/thread-16283-post-117180.html#pid117180

Ich hab jetzt doch noch ein Problem festgestellt. Wenn ein Apostroph (Das von der Raute-Taste -> ' ) im Betreff ist, dann kommt eine Fehlermeldung bei Themenerstellung. Ich habe das zuerst so gefixt:

inc/datahandlers/post.php In dieser Zeile:
PHP-Code:
$subject = &$thread['subject']; 
wie folgt geändert:
PHP-Code:
$subject mysql_real_escape_string(&$thread['subject']); 

Die Themenerstellung klappte dann wieder. Aber nur solange bis man wirklich einen Betreff eingegeben hat, den es schon gibt. Also erst dann wenn die eigentliche Funktion eigentlich greifen soll. Und so sah das dann aus:

http://img86.xooimage.com/files/3/9/7/mwsnap08-03--2012-01_49_07-36d5fdc.jpg

Und das hier ist die Zeile in der newthread.php:
PHP-Code:
$proof_for_double_subject $posthandler->verify_proof_for_double_subject(); 

Und jetzt weiss ich nicht weiter. Wink
Help please


RE: Beitragserstellung bei vorhandenem Thema verweigern? - StefanT - 03.08.2012

$db->escape_string() und nicht mysql_real_escape_string()


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 03.08.2012

Vielen Dank StefanT, funzt Wink

Hätte ich mal vorher nach "escape" in der php gesucht, hätte ich auch andere Zeilen mit dem richtigen Code entdeckt. Naja, man lernt eben dazu ^^


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 06.08.2012

Ich war wohl etwas zu voreilig. Ich hatte nur im Preview-Modus kontrolliert, ob noch eine Fehlermeldung kommt. Leider musste ich jetzt feststellen dass durch die Modifikation, wenn ein Apostroph im Titel ist, vor diesem Apostroph ein Backslash nach dem posten im Titel ist. Wie kann ich das jetzt wiederum verhindern?


RE: Beitragserstellung bei vorhandenem Thema verweigern? - StefanT - 06.08.2012

Dann escapst du an der falschen Stelle. Wink


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 06.08.2012

OK, aber welche Stelle wäre dann die richtige? Die Modifikation ist hier in Beitrag#5 -> https://www.mybb.de/forum/thread-16283-post-117180.html#pid117180


RE: Beitragserstellung bei vorhandenem Thema verweigern? - StefanT - 06.08.2012

Das ist mit der Referenz etwas kniffelig. Ich habe mir mal erlaubt diese Sicherheitslücke im Beitrag oben zu beheben.


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 06.08.2012

Soweit habe ich jetzt die Änderung übernommen. Ja, das scheint alles etwas knifflig. Würde mich freuen wenn noch jemand eine Idee dazu hat. Wink


RE: Beitragserstellung bei vorhandenem Thema verweigern? - StefanT - 06.08.2012

Funktioniert meine Änderung in Beitrag #5 nicht?


RE: Beitragserstellung bei vorhandenem Thema verweigern? - GreenDragon - 06.08.2012

Wenn die Änderung nur auf diese Zeile bezogen war, dann nein:
PHP-Code:
$no_double_subject_query $db->query("SELECT subject FROM ".TABLE_PREFIX."threads WHERE subject='".$db->escape_string($subject)."' LIMIT 0,1"); 

Hab nur diese Zeile geändert, aber immer noch SQL Error 1064 wenn ein Apostroph im Titel ist.