複数行のレス不具合を修正

This commit is contained in:
konkon-fox 2023-10-10 16:53:01 +09:00
parent fe23bfd2dc
commit 1ab9ad67fb
1 changed files with 8 additions and 7 deletions

View File

@ -70,7 +70,7 @@ if ($ipv6 === true) {
}
// 特殊な文字等変換
function escapePostData(&$postData){
function escapePostData(&$postData, $keepNewLine){
// 絵文字等が初期値では許可(checked)のはずが空文字列になってるので両方に対応
if (!isset($SETTING['BBS_UNICODE']) || $SETTING['BBS_UNICODE'] === 'checked') {
// 絵文字等をhtmlspecialcharsしてしまうと数値実体参照の文字列になってしまうので個別にエスケープ処理
@ -87,15 +87,16 @@ function escapePostData(&$postData){
$postData = preg_replace('/&#0*1[03];/', ' ', $postData);
// 
(LF) 
(CR) をエスケープ
$postData = preg_replace('/&#[xX]0*[aAdD];/', ' ', $postData);
// 改行系の制御文字をエスケープ
$postData = str_replace(array('\r','\n'), ' ', $postData);
// 改行コードをエスケープ ※本文のみ<br>に変換
$newLineChar = $keepNewLine ? '<br>' : '&nbsp;';
$postData = preg_replace('/(\r\n|\r|\n)/', $newLineChar, $postData);
// trim
$postData = trim($postData);
}
escapePostData($_POST['title']);
escapePostData($_POST['name']);
escapePostData($_POST['mail']);
escapePostData($_POST['comment']);
escapePostData($_POST['title'], false);
escapePostData($_POST['name'], false);
escapePostData($_POST['mail'], false);
escapePostData($_POST['comment'], true);
$_POST['board'] = str_replace(array('.','/','|'), '', $_POST['board']);
$_POST['thread'] = str_replace(array('.','/','|'), '', $_POST['thread']);
$msgbr = explode("<br>", $_POST['comment']);