1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-21 00:02:18 +02:00

Merge pull request #6324 from rxu/ticket/16908

[ticket/16908] Fix PHP warning on non-existent post id requests
This commit is contained in:
Marc Alexander 2021-11-30 21:54:09 +01:00
commit 39905eaf4b
No known key found for this signature in database
GPG Key ID: 50E0D2423696F995
2 changed files with 28 additions and 5 deletions

View File

@ -87,24 +87,25 @@ switch ($mode)
$post_id = $request->variable('p', 0);
if ($post_id)
{
$topic_forum = array();
$topic_forum = [];
$sql = 'SELECT t.topic_id, t.forum_id
FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
WHERE p.post_id = ' . $post_id . '
AND t.topic_id = p.topic_id';
$result = $db->sql_query($sql);
$topic_forum = $db->sql_fetchrow();
$topic_id = (int) $topic_forum['topic_id'];
$forum_id = (int) $topic_forum['forum_id'];
$topic_forum = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
}
if (!$post_id || !$topic_id || !$forum_id)
if (!$post_id || !$topic_forum)
{
$user->setup('posting');
trigger_error('NO_POST');
}
$topic_id = (int) $topic_forum['topic_id'];
$forum_id = (int) $topic_forum['forum_id'];
break;
}

View File

@ -300,4 +300,26 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
$crawler->filter('#preview .content')->html()
);
}
public function nonexistent_post_id_data()
{
$nonexistent_post_id = 999999; // Random value
return [
['edit', $nonexistent_post_id],
['delete', $nonexistent_post_id],
['quote', $nonexistent_post_id],
['soft_delete', $nonexistent_post_id],
];
}
/**
* @dataProvider nonexistent_post_id_data
*/
public function test_nonexistent_post_id($mode, $nonexistent_post_id)
{
$this->add_lang('posting');
$this->login();
$crawler = self::request('GET', "posting.php?mode={$mode}&p={$nonexistent_post_id}&sid={$this->sid}");
$this->assertContainsLang('NO_POST', $crawler->text());
}
}