Importing from vBulletin 3


Error with Stack Trace
I am trying to import from vBulletin and it's an older version where the php doesn't work anymore. Either 3.0 or 3.5. When I put the URL to get the import from (public_html/forums/includes/config.php) I get an error. Is this something I can fix? Error pasted below:PHP NOTICE [8] Undefined variable: sql_host in sources/hooks/modules/admin_import/vb3.php on line 128 (version: 10.0.24, PHP version: 5.4.45, URL: /ocportal/adminzone/index.php?page=admin-import&type=hook&session=d24e4288d65d5&importer=vb3)
Here is the stack trace:
Below is a stack trace revealing the state Composr was in when the error occurred. If this represents a bug in the unmodified software, you may want to check Composr website for a fix, and if there isn't one, report this as a bug. Please note that merely posting a stack trace is not sufficient for us to solve your problem; the stack trace is just an aid that presents us with additional information. We still need to know the error message, what you tried to do, how you tried to do it, version numbers, and any other appropriate information.
We apologise for this problem and if it's a bug we hope you will work with us so that we can fix it for you promptly.
File | '/home/swepics/public_html/ocportal/sources/failure.php' |
---|---|
Line | 976 |
Function | 'get_html_trace' |
Args |
File | '/home/swepics/public_html/ocportal/sources/global2.php' |
---|---|
Line | 1,043 |
Function | '_fatal_exit' |
Args |
'PHP NOTICE [8] Undefined variable: sql_host in sources/hooks/modules/admin_import/vb3.php on line 128' |
File | '/home/swepics/public_html/ocportal/sources/failure.php' |
---|---|
Line | 287 |
Function | 'fatal_exit' |
Args |
'PHP NOTICE [8] Undefined variable: sql_host in sources/hooks/modules/admin_import/vb3.php on line 128' |
File | '/home/swepics/public_html/ocportal/sources/global2.php' |
---|---|
Line | 912 |
Function | '_composr_error_handler' |
Args |
'notice' 8 'Undefined variable: sql_host' 'sources/hooks/modules/admin_import/vb3.php' 128 5 |
File | '/home/swepics/public_html/ocportal/sources/hooks/modules/admin_import/vb3.php' |
---|---|
Line | 128 |
Function | 'composr_error_handler' |
Args |
8 'Undefined variable: sql_host' '/home/swepics/public_html/ocportal/sources/hooks/modules/admin_import/vb3.php' 128 array |
File | '/home/swepics/public_html/ocportal/adminzone/pages/modules/admin_import.php' |
---|---|
Line | 406 |
Function | 'probe_db_access' |
Class | 'Hook_vb3' |
Object | O:8:"Hook_vb3":0:{} |
Type | '->' |
Args |
'/home/swepics/public_html/forums/' |
File | '/home/swepics/public_html/ocportal/adminzone/pages/modules/admin_import.php' |
---|---|
Line | 211 |
Function | 'choose_actions' |
Class | 'Module_admin_import' |
Object | O:19:"Module_admin_import":1:{s:5:"title";O:8:"Tempcode":5:{s:18:"code_to_preexecute";a:1:{s:33:"tcpfunc_5c9ca03dcf05a8.59715650_1";s:2626:"$tpl_funcs['tcpfunc_5c9ca03dcf05a8.59715650_1']=$KEEP_TPL_FUNCS['tcpfunc_5c9ca03dcf05a8.59715650_1']=recall_named_function('5c9ca03dcf0673.81910682','$parameters,$cl',"extract(\$parameters,EXTR_PREFIX_ALL,'bound'); echo (isset(\$bound_ID)?(\"\n<a id=\\"title__\".(empty(\$bound_ID->pure_lang)?@htmlspecialchars(otp(isset(\$bound_ID)?\$bound_ID:null,\"SCREEN_TITLE:ID\"),ENT_QUOTES | ENT_SUBSTITUTE,get_charset()):otp(isset(\$bound_ID)?\$bound_ID:null,\"SCREEN_TITLE:ID\")).\"\\"></a>\n\"):''),\n \"\n\n<h1 class=\\"screen_title\\"\",\n ((ecv_NOT(\$cl,array(),array(ecv_GET(\$cl,array(),array(\"name_set_elsewhere\"))))==\"1\")?(\" itemprop=\\"name\\"\"):''),\n \">\n \",\n otp(isset(\$bound_TITLE)?\$bound_TITLE:null,\"SCREEN_TITLE:TITLE\"),\n \"\n\n \",\n (isset(\$bound_AWARDS)?(\"\n \".((otp(isset(\$bound_AWARDS)?\$bound_AWARDS:null,\"SCREEN_TITLE:AWARDS\")!='')?(\"\n \".ecv(\$cl,array(),4,\"SET\",array(\"AWARDS_TEXT\",\"\n <h2>Award winner</h2>\n <p class=\\"lonely_label\\">\".ecv(\$cl,array(),2,\"AWARDS_WON\",array(otp(isset(\$bound_AWARDS)?\$bound_AWARDS:null,\"SCREEN_TITLE:AWARDS\"))).\"</p>\n <ul>\n \".closure_loop(array(\"AWARDS\",'vars'=>\$parameters),array(\$parameters,\$cl),\nrecall_named_function('5c9ca03dced605.41245086','\$parameters,\$cl',\"extract(\\$parameters,EXTR_PREFIX_ALL,'bound'); return \\"\\n <li>\\n <strong>\\".(empty(\\$bound_AWARD_TYPE->pure_lang)?@htmlspecialchars(otp(isset(\\$bound_AWARD_TYPE)?\\$bound_AWARD_TYPE:null,\\"SCREEN_TITLE:AWARD_TYPE\\"),ENT_QUOTES | ENT_SUBSTITUTE,get_charset()):otp(isset(\\$bound_AWARD_TYPE)?\\$bound_AWARD_TYPE:null,\\"SCREEN_TITLE:AWARD_TYPE\\")).\\"</strong>\\n <span>\\".ecv(\\$cl,array(),2,\\"AWARD_ON\\",array(ecv_DATE(\\$cl,array(1),array(\\"1\\",\\"1\\",\\"1\\",otp(isset(\\$bound_AWARD_TIMESTAMP)?\\$bound_AWARD_TIMESTAMP:null,\\"SCREEN_TITLE:AWARD_TIMESTAMP\\"))))).\\"</span>\\n </li>\\n \\";\")).\"\n </ul>\n \")).\"\n <a href=\\"\".ecv_PAGE_LINK(\$cl,array(1),array(\"_SEARCH:awards\")).\"\\"><img onmouseover=\\"if (typeof window.activate_tooltip!='undefined') activate_tooltip(this,event,'\".ecv_GET(\$cl,array(2,8,1),array(\"AWARDS_TEXT\")).\"','auto',null,null,false,true);\\" title=\\"\\" alt=\\"Award winner\\" src=\\"\".ecv_IMG(\$cl,array(1),array(\"awarded\",\"0\",\"admin\")).\"\\" /></a>\n \"):'').\"\n \"):''),\n \"\n</h1>\n\n\",\n (isset(\$bound_SUB)?(\"\n <div class=\\"title_tagline\\">\n \".otp(isset(\$bound_SUB)?\$bound_SUB:null,\"SCREEN_TITLE:SUB\").\"\n </div>\n\"):''),\n \"\n\";");";}s:9:"seq_parts";a:1:{i:0;a:1:{i:0;a:5:{i:0;s:33:"tcpfunc_5c9ca03dcf05a8.59715650_1";i:1;a:3:{s:5:"_GUID";s:32:"847ffbe4823eca6d2d5eac42828ee552";s:6:"AWARDS";a:0:{}s:5:"TITLE";O:8:"Tempcode":5:{s:18:"code_to_preexecute";a:1:{s:36:"do_runtime_5cc35c1e093a31.67848754_3";s:99:"$tpl_funcs['do_runtime_5cc35c1e093a31.67848754_3']="echo ecv(\$cl,array(),2,\"IMPORT\",array());"; ";}s:9:"seq_parts";a:1:{i:0;a:1:{i:0;a:5:{i:0;s:36:"do_runtime_5cc35c1e093a31.67848754_3";i:1;a:0:{}i:2;i:2;i:3;s:6:"IMPORT";i:4;s:0:"";}}}s:19:"preprocessable_bits";a:0:{}s:9:"pure_lang";b:1;s:8:"codename";s:10:":container";}}i:2;i:1;i:3;s:0:"";i:4;s:0:"";}}}s:19:"preprocessable_bits";a:0:{}s:9:"pure_lang";N;s:8:"codename";s:12:"SCREEN_TITLE";}} |
Type | '->' |
Args |
File | '/home/swepics/public_html/ocportal/sources/zones.php' |
---|---|
Line | 808 |
Function | 'run' |
Class | 'Module_admin_import' |
Object | O:19:"Module_admin_import":1:{s:5:"title";O:8:"Tempcode":5:{s:18:"code_to_preexecute";a:1:{s:33:"tcpfunc_5c9ca03dcf05a8.59715650_1";s:2626:"$tpl_funcs['tcpfunc_5c9ca03dcf05a8.59715650_1']=$KEEP_TPL_FUNCS['tcpfunc_5c9ca03dcf05a8.59715650_1']=recall_named_function('5c9ca03dcf0673.81910682','$parameters,$cl',"extract(\$parameters,EXTR_PREFIX_ALL,'bound'); echo (isset(\$bound_ID)?(\"\n<a id=\\"title__\".(empty(\$bound_ID->pure_lang)?@htmlspecialchars(otp(isset(\$bound_ID)?\$bound_ID:null,\"SCREEN_TITLE:ID\"),ENT_QUOTES | ENT_SUBSTITUTE,get_charset()):otp(isset(\$bound_ID)?\$bound_ID:null,\"SCREEN_TITLE:ID\")).\"\\"></a>\n\"):''),\n \"\n\n<h1 class=\\"screen_title\\"\",\n ((ecv_NOT(\$cl,array(),array(ecv_GET(\$cl,array(),array(\"name_set_elsewhere\"))))==\"1\")?(\" itemprop=\\"name\\"\"):''),\n \">\n \",\n otp(isset(\$bound_TITLE)?\$bound_TITLE:null,\"SCREEN_TITLE:TITLE\"),\n \"\n\n \",\n (isset(\$bound_AWARDS)?(\"\n \".((otp(isset(\$bound_AWARDS)?\$bound_AWARDS:null,\"SCREEN_TITLE:AWARDS\")!='')?(\"\n \".ecv(\$cl,array(),4,\"SET\",array(\"AWARDS_TEXT\",\"\n <h2>Award winner</h2>\n <p class=\\"lonely_label\\">\".ecv(\$cl,array(),2,\"AWARDS_WON\",array(otp(isset(\$bound_AWARDS)?\$bound_AWARDS:null,\"SCREEN_TITLE:AWARDS\"))).\"</p>\n <ul>\n \".closure_loop(array(\"AWARDS\",'vars'=>\$parameters),array(\$parameters,\$cl),\nrecall_named_function('5c9ca03dced605.41245086','\$parameters,\$cl',\"extract(\\$parameters,EXTR_PREFIX_ALL,'bound'); return \\"\\n <li>\\n <strong>\\".(empty(\\$bound_AWARD_TYPE->pure_lang)?@htmlspecialchars(otp(isset(\\$bound_AWARD_TYPE)?\\$bound_AWARD_TYPE:null,\\"SCREEN_TITLE:AWARD_TYPE\\"),ENT_QUOTES | ENT_SUBSTITUTE,get_charset()):otp(isset(\\$bound_AWARD_TYPE)?\\$bound_AWARD_TYPE:null,\\"SCREEN_TITLE:AWARD_TYPE\\")).\\"</strong>\\n <span>\\".ecv(\\$cl,array(),2,\\"AWARD_ON\\",array(ecv_DATE(\\$cl,array(1),array(\\"1\\",\\"1\\",\\"1\\",otp(isset(\\$bound_AWARD_TIMESTAMP)?\\$bound_AWARD_TIMESTAMP:null,\\"SCREEN_TITLE:AWARD_TIMESTAMP\\"))))).\\"</span>\\n </li>\\n \\";\")).\"\n </ul>\n \")).\"\n <a href=\\"\".ecv_PAGE_LINK(\$cl,array(1),array(\"_SEARCH:awards\")).\"\\"><img onmouseover=\\"if (typeof window.activate_tooltip!='undefined') activate_tooltip(this,event,'\".ecv_GET(\$cl,array(2,8,1),array(\"AWARDS_TEXT\")).\"','auto',null,null,false,true);\\" title=\\"\\" alt=\\"Award winner\\" src=\\"\".ecv_IMG(\$cl,array(1),array(\"awarded\",\"0\",\"admin\")).\"\\" /></a>\n \"):'').\"\n \"):''),\n \"\n</h1>\n\n\",\n (isset(\$bound_SUB)?(\"\n <div class=\\"title_tagline\\">\n \".otp(isset(\$bound_SUB)?\$bound_SUB:null,\"SCREEN_TITLE:SUB\").\"\n </div>\n\"):''),\n \"\n\";");";}s:9:"seq_parts";a:1:{i:0;a:1:{i:0;a:5:{i:0;s:33:"tcpfunc_5c9ca03dcf05a8.59715650_1";i:1;a:3:{s:5:"_GUID";s:32:"847ffbe4823eca6d2d5eac42828ee552";s:6:"AWARDS";a:0:{}s:5:"TITLE";O:8:"Tempcode":5:{s:18:"code_to_preexecute";a:1:{s:36:"do_runtime_5cc35c1e093a31.67848754_3";s:99:"$tpl_funcs['do_runtime_5cc35c1e093a31.67848754_3']="echo ecv(\$cl,array(),2,\"IMPORT\",array());"; ";}s:9:"seq_parts";a:1:{i:0;a:1:{i:0;a:5:{i:0;s:36:"do_runtime_5cc35c1e093a31.67848754_3";i:1;a:0:{}i:2;i:2;i:3;s:6:"IMPORT";i:4;s:0:"";}}}s:19:"preprocessable_bits";a:0:{}s:9:"pure_lang";b:1;s:8:"codename";s:10:":container";}}i:2;i:1;i:3;s:0:"";i:4;s:0:"";}}}s:19:"preprocessable_bits";a:0:{}s:9:"pure_lang";N;s:8:"codename";s:12:"SCREEN_TITLE";}} |
Type | '->' |
Args |
File | '/home/swepics/public_html/ocportal/sources/site.php' |
---|---|
Line | 1,219 |
Function | 'load_module_page' |
Args |
'adminzone/pages/modules/admin_import.php' 'admin_import' Tempcode -> … |
File | '/home/swepics/public_html/ocportal/sources/site.php' |
---|---|
Line | 925 |
Function | 'request_page' |
Args |
'admin_import' true NULL NULL false false Tempcode -> … |
File | '/home/swepics/public_html/ocportal/adminzone/index.php' |
---|---|
Line | 59 |
Function | 'do_site' |
Args |
Parameters
csrf_token |
74115ffc0cc20
|
---|---|
label_for__old_base_dir |
Base directory
|
old_base_dir |
/home/swepics/public_html/forums/
|
require__old_base_dir |
1
|
label_for__refresh_time |
Refresh time
|
refresh_time |
15
|
require__refresh_time |
1
|
http_referer |


Sorry you didn't get a reply in a reasonable time.
I fixed this issue in git yesterday, it's an obvious bug in our code:
https://github.com/ocproducts/composr/commit/389e6ce25f473e643a3be9f98008b335942c3b77
That said, the importers aren't officially supported, and tend to break for various reasons. If you'd like me to hand-test your import in advance and make any fixes needed, send me an email with an SQL dump (chris@ocproducts.com).
Best,
Chris
Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.


For anyone reading, I have this test data now

All changes will be in the next patch release.
Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.


Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.




1) I advise temporarily raising the Session expiry-time option (Admin Zone > Setup > Configuration > Security options > General). Put it to something like 24. This is because currently it's problematic if the session expires during an import. I'm going to improve that, but I don't think I have time to fit it into this patch release.
2) The attachments in the SQL dump you gave me seem to be corrupted. I don't think it's a problem on the importer end, but I could be wrong and can come back to it if they are working fine for your VB forum still and you're not aware of any issue. We actually used VB for this forum a long long time ago and had a similar issue once, with them corrupting after an upgrading (due to them previously being stored in the database with a character set then migrated to a blob column, but the VB upgrader messing the conversion up).
Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.




You can just import as normal, no special instructions.
However as mentioned I did want to make this work better for your large forums without having to go back in and resume the session if it takes too long. I have now done that.
If you replace your adminzone/pages/modules/admin_import.php file with this file then that will give you my latest improvements:
https://raw.githubusercontent.com/ocproducts/composr/master/adminzone/pages/modules/admin_import.php
Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.


mpcode -> The given import path is not correct (the <kbd>includes/config.php</kbd> file is not there).
home/swepics/public_html/forums/includes/config.php – it's there.
I can email the new stack trace and/or the config.php but enjoy your vacation, I can wait.



Forbidden
You don't have permission to access /ocportal/adminzone/index.php on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
I am logged in as admin, the highest rank on the site.


- The import path given is wrong, should have a leading '/'. I've made a commit for it to try and fix incorrect paths https://github.com/ocp…9dfe48f31613e7731aa93f3dd
- Something that looks like a correct path will make ModSecurity choke, I've added a workaround for ModSecurity https://github.com/ocp…c2fa441e524454377ee098b80
Become a fan of Composr on Facebook or add me as a friend. Add me on on Mastodon. Follow me on Minds (where I am most active). Support me on Patreon
- If not, please let us know how we can do better (please try and propose any bigger ideas in such a way that they are fundable and scalable).
- If so, please let others know about Composr whenever you see the opportunity or support me on Patreon.
- If my reply is too Vulcan or expressed too much in business-strategy terms, and not particularly personal, I apologise. As a company & project maintainer, time is very limited to me, so usually when I write a reply I try and make it generic advice to all readers. I'm also naturally a joined-up thinker, so I always express my thoughts in combined business and technical terms. I recognise not everyone likes that, don't let my Vulcan-thinking stop you enjoying Composr on fun personal projects.
- If my response can inspire a community tutorial, that's a great way of giving back to the project as a user.