調べる機会があったので詳しい話を書いておきます。

XOOPS の登録処理では、サイトを跨いだ操作 (XSS) を防ぐため、投稿元が XOOPS_URL と一致するか検査しています。XOOPS_URL の設定を "http://...." のまま SSL (https) に切り替えた場合、この検査がエラーとなります。

したがって、SSL を使った処理を行う場合、XOOPS_URL の設定 (mainfile.php) も合わせて行う必要があります。プロトコルを混在させたい場合は次のように動的に設定しても良いでしょう。
define('XOOPS_URL', ($_SERVER["SERVER_PORT"]==443?"https":"http").'://example.com');