|
@@ -91,22 +91,22 @@ function getUserLink($username, $rating = null, $certs = null) {
|
|
|
|
|
|
|
|
function getRemoteProblemLink($rpid) {
|
|
function getRemoteProblemLink($rpid) {
|
|
|
$rp = queryRemoteProblemBrief($rpid);
|
|
$rp = queryRemoteProblemBrief($rpid);
|
|
|
- return '<a href="/rp/' . $rpid . '">' . $rp['title'] . '</a>';
|
|
|
|
|
|
|
+ return '<a href="/rp/' . $rpid . '">' . HTML::escape($rp['title']) . '</a>';
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function getProblemLink($problem, $problem_title = '!title_only') {
|
|
function getProblemLink($problem, $problem_title = '!title_only') {
|
|
|
if ($problem_title == '!title_only') {
|
|
if ($problem_title == '!title_only') {
|
|
|
- $problem_title = $problem['title'];
|
|
|
|
|
|
|
+ $problem_title = HTML::escape($problem['title']);
|
|
|
} elseif ($problem_title == '!id_and_title') {
|
|
} elseif ($problem_title == '!id_and_title') {
|
|
|
- $problem_title = "#${problem['id']}. ${problem['title']}";
|
|
|
|
|
|
|
+ $problem_title = "#${problem['id']}. " . HTML::escape($problem['title']);
|
|
|
}
|
|
}
|
|
|
return '<a href="/problem/'.$problem['id'].'">'.$problem_title.'</a>';
|
|
return '<a href="/problem/'.$problem['id'].'">'.$problem_title.'</a>';
|
|
|
}
|
|
}
|
|
|
function getContestProblemLink($problem, $contest_id, $problem_title = '!title_only') {
|
|
function getContestProblemLink($problem, $contest_id, $problem_title = '!title_only') {
|
|
|
if ($problem_title == '!title_only') {
|
|
if ($problem_title == '!title_only') {
|
|
|
- $problem_title = $problem['title'];
|
|
|
|
|
|
|
+ $problem_title = HTML::escape($problem['title']);
|
|
|
} elseif ($problem_title == '!id_and_title') {
|
|
} elseif ($problem_title == '!id_and_title') {
|
|
|
- $problem_title = "#{$problem['id']}. {$problem['title']}";
|
|
|
|
|
|
|
+ $problem_title = "#{$problem['id']}. " . HTML::escape($problem['title']);
|
|
|
}
|
|
}
|
|
|
return '<a href="/contest/'.$contest_id.'/problem/'.$problem['id'].'">'.$problem_title.'</a>';
|
|
return '<a href="/contest/'.$contest_id.'/problem/'.$problem['id'].'">'.$problem_title.'</a>';
|
|
|
}
|
|
}
|
|
@@ -429,7 +429,7 @@ function echoBelongGroupList($user) {
|
|
|
echoShortList('<tr><th>组名</th><th>显示名</th><th>题目</th></tr>', queryUserExtgroups($user), function($grp) {
|
|
echoShortList('<tr><th>组名</th><th>显示名</th><th>题目</th></tr>', queryUserExtgroups($user), function($grp) {
|
|
|
$qp = queryUser($grp);
|
|
$qp = queryUser($grp);
|
|
|
$link = getUserLink($qp['username']);
|
|
$link = getUserLink($qp['username']);
|
|
|
- $name = $qp['email'];
|
|
|
|
|
|
|
+ $name = HTML::escape($qp['email']);
|
|
|
echo <<<HTML
|
|
echo <<<HTML
|
|
|
<tr>
|
|
<tr>
|
|
|
<td>$link</td>
|
|
<td>$link</td>
|
|
@@ -462,7 +462,7 @@ function echoGroupProblemList($grp) {
|
|
|
function($pid) use ($grp) {
|
|
function($pid) use ($grp) {
|
|
|
$problem = queryProblemBrief($pid);
|
|
$problem = queryProblemBrief($pid);
|
|
|
$pid = $pid;
|
|
$pid = $pid;
|
|
|
- $title = $problem['title'];
|
|
|
|
|
|
|
+ $title = HTML::escape($problem['title']);
|
|
|
if ($problem['ctrl'] && $problem['ctrl'] == $grp['username']) $adminp = '<b>是</b>';
|
|
if ($problem['ctrl'] && $problem['ctrl'] == $grp['username']) $adminp = '<b>是</b>';
|
|
|
else $adminp = '否';
|
|
else $adminp = '否';
|
|
|
$size = printSize(queryProblemSize($pid));
|
|
$size = printSize(queryProblemSize($pid));
|
|
@@ -480,7 +480,7 @@ function echoGroupProblemSizeList($grp) {
|
|
|
function($pid) {
|
|
function($pid) {
|
|
|
$problem = queryProblemBrief($pid);
|
|
$problem = queryProblemBrief($pid);
|
|
|
$pid = $pid;
|
|
$pid = $pid;
|
|
|
- $title = $problem['title'];
|
|
|
|
|
|
|
+ $title = HTML::escape($problem['title']);
|
|
|
$size = printSize(queryProblemSize($pid));
|
|
$size = printSize(queryProblemSize($pid));
|
|
|
echo <<<HTML
|
|
echo <<<HTML
|
|
|
<tr><td>$pid</td>
|
|
<tr><td>$pid</td>
|
|
@@ -493,7 +493,7 @@ function echoControlGroupList($user) {
|
|
|
echoShortList('<tr><th>组名</th><th>显示名</th><th>管理</th></tr>', queryUserCtrlgroups($user), function($grp) {
|
|
echoShortList('<tr><th>组名</th><th>显示名</th><th>管理</th></tr>', queryUserCtrlgroups($user), function($grp) {
|
|
|
$qp = queryUser($grp);
|
|
$qp = queryUser($grp);
|
|
|
$link = getUserLink($qp['username']);
|
|
$link = getUserLink($qp['username']);
|
|
|
- $name = $qp['email'];
|
|
|
|
|
|
|
+ $name = HTML::escape($qp['email']);
|
|
|
echo <<<HTML
|
|
echo <<<HTML
|
|
|
<tr>
|
|
<tr>
|
|
|
<td>$link</td>
|
|
<td>$link</td>
|
|
@@ -530,14 +530,16 @@ HTML;
|
|
|
|
|
|
|
|
function echoCertsList($user) {
|
|
function echoCertsList($user) {
|
|
|
echoShortList('<tr><th>勋章</th><th>展示</th></tr>', explode(',', $user['certslist']), function($certs) {
|
|
echoShortList('<tr><th>勋章</th><th>展示</th></tr>', explode(',', $user['certslist']), function($certs) {
|
|
|
|
|
+ $token = HTML::hiddenToken();
|
|
|
$col = explode('#', $certs)[0];
|
|
$col = explode('#', $certs)[0];
|
|
|
- $text = explode('#', $certs)[1];
|
|
|
|
|
|
|
+ $text = HTML::escape(explode('#', $certs)[1]);
|
|
|
$cert = '<span class="uoj-certs uoj-certs-' . $col . '">' . $text . '</span>';
|
|
$cert = '<span class="uoj-certs uoj-certs-' . $col . '">' . $text . '</span>';
|
|
|
echo <<<HTML
|
|
echo <<<HTML
|
|
|
<tr>
|
|
<tr>
|
|
|
<td>$cert</td>
|
|
<td>$cert</td>
|
|
|
<td>
|
|
<td>
|
|
|
<form action="/certs-manage" method="post">
|
|
<form action="/certs-manage" method="post">
|
|
|
|
|
+ {$token}
|
|
|
<input type="hidden" name="certs" value="$certs">
|
|
<input type="hidden" name="certs" value="$certs">
|
|
|
<button type="submit" class="btn btn-primary">展示这个</button>
|
|
<button type="submit" class="btn btn-primary">展示这个</button>
|
|
|
</form>
|
|
</form>
|
|
@@ -1219,7 +1221,7 @@ function echoBlogCard($blog) {
|
|
|
$poster = queryUser($blog['poster']);
|
|
$poster = queryUser($blog['poster']);
|
|
|
$userlink = getUserLink($blog['poster']);
|
|
$userlink = getUserLink($blog['poster']);
|
|
|
$posttime = $blog['post_time'];
|
|
$posttime = $blog['post_time'];
|
|
|
- $usermotto = $poster['motto'];
|
|
|
|
|
|
|
+ $usermotto = HTML::escape($poster['motto']);
|
|
|
$zanblock = getClickZanBlock('B', $blog['id'], $blog['zan']);
|
|
$zanblock = getClickZanBlock('B', $blog['id'], $blog['zan']);
|
|
|
$avatar = "https://q.qlogo.cn/g?b=qq&nk=" . $poster['qq'] . "&s=100";
|
|
$avatar = "https://q.qlogo.cn/g?b=qq&nk=" . $poster['qq'] . "&s=100";
|
|
|
|
|
|