mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
[ticket/16908] Fix PHP warning on non-existent post id requests
PHPBB3-16908
This commit is contained in:
parent
3bfb2b3f69
commit
88a11c1377
2 changed files with 28 additions and 5 deletions
|
@ -87,24 +87,25 @@ switch ($mode)
|
||||||
$post_id = $request->variable('p', 0);
|
$post_id = $request->variable('p', 0);
|
||||||
if ($post_id)
|
if ($post_id)
|
||||||
{
|
{
|
||||||
$topic_forum = array();
|
$topic_forum = [];
|
||||||
|
|
||||||
$sql = 'SELECT t.topic_id, t.forum_id
|
$sql = 'SELECT t.topic_id, t.forum_id
|
||||||
FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
|
FROM ' . TOPICS_TABLE . ' t, ' . POSTS_TABLE . ' p
|
||||||
WHERE p.post_id = ' . $post_id . '
|
WHERE p.post_id = ' . $post_id . '
|
||||||
AND t.topic_id = p.topic_id';
|
AND t.topic_id = p.topic_id';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
$topic_forum = $db->sql_fetchrow();
|
$topic_forum = $db->sql_fetchrow($result);
|
||||||
$topic_id = (int) $topic_forum['topic_id'];
|
|
||||||
$forum_id = (int) $topic_forum['forum_id'];
|
|
||||||
$db->sql_freeresult($result);
|
$db->sql_freeresult($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$post_id || !$topic_id || !$forum_id)
|
if (!$post_id || !$topic_forum)
|
||||||
{
|
{
|
||||||
$user->setup('posting');
|
$user->setup('posting');
|
||||||
trigger_error('NO_POST');
|
trigger_error('NO_POST');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$topic_id = (int) $topic_forum['topic_id'];
|
||||||
|
$forum_id = (int) $topic_forum['forum_id'];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -300,4 +300,26 @@ class phpbb_functional_posting_test extends phpbb_functional_test_case
|
||||||
$crawler->filter('#preview .content')->html()
|
$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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue