In addition to Andrews answer just a little example how to store information for a user via custom plugin. There are many resources how to create a plugin, so [if] you wanna make a Craft 3 plugin you should read those.
You form could look like this
<form method="post" accept-charset="UTF-8">
{{ csrfInput() }}
<input type="hidden" name="action" value="plugin/controller/function">
<input type="hidden" name="entryId" value="1">
<button type="submit">Submit</button>
</form>
And your controller
public function actionSave():Response
{
$user = Craft::$app->getUser()->getIdentity();
if($user === null){
// error, no user is logged in
// handle it somehow
}
// check for a valid entry id
$newId = Craft::$app->getRequest()->getBodyParam('entryId');
if($newId === null){
// error, no entry id provided...
}
// get the existing entries and add the new one to the array
$existingIds = $user->getFieldValue('fieldHandle')->ids();
$existingIds[] = $newId;
// set the new value and store the element
$user->setFieldValue('fieldHandle', $existingIds);
if(!Craft::$app->getElements()->saveElement($user)){
// could not save user due to validation errors, do something about it
}
// everything was successful, render a template or redirect or whatever you need
return $this->renderTemplate('some/path', ['message' => 'hooooray']);
}