Thread: Miscellaneous Hacks - 404 / 301 after import redirect on import ids
View Single Post
  #34  
Old 09-12-2008, 11:59 PM
tommythejoat's Avatar
tommythejoat tommythejoat is offline
 
Join Date: Apr 2008
Location: Boston
Posts: 155
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I looked over the code and it looks fine to me. There is one nuance that is not really important. When you are using intval to parse a number from a string, you don't need to snip off the number, you just need to start at the right place and intval will stop converting when it finds a non-numeric character.

While we are discussing this, I decided I needed to move the importid's into their own table and built this table:
Code:
CREATE TABLE `importedid` (
`idtype` VARCHAR( 25 ) NOT NULL,
`oldid` INT UNSIGNED NOT NULL,
`newid` INT UNSIGNED NOT NULL,
PRIMARY KEY (`idtype`, `oldid`)
) TYPE = MYISAM;
I then populated the table from the importids of each of the imported tables assigning the values post, thread, forum, attachment and user to the idtype field. Here is an example of one of the queries I used to do this.
Code:
INSERT INTO `importedid` (`idtype`, `oldid`, `newid`)
SELECT "attach", `importattachmentid`, `attachmentid`
FROM `attachment` WHERE `importattachmentid`>0
The sql that I am trying to use to query this table is:

PHP Code:
        if (strpos($_SERVER['REQUEST_URI'], "/{$old_folder}{$old_thread_script}") === 0)
        {
            
$action 'thread';
            
$old_id intval(substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], ';gtid=')+6)); //to the end of the string
            
if (strpos($_SERVER['REQUEST_URI'], ';pagenumber='))
            {
                
$page intval(substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], ';pagenumber=')+12));
            }
            
$sql "SELECT newid FROM {$tableprefix}importedid WHERE oldid={$old_id} AND idtype = {$action}"
When I copy this up and enter a url for the old board in my browser, it fails to find the new id. The result is the code 10 id not found no matter what I enter. I am guessing there is something wrong with the $sql, but I cannot figure out what it might be. I would appreciate any advice. I can't see why this doesn't work and maybe I am just too close to it. The board is live now and I don't want to take it down to play with this.

The older version that takes the id's out of the various importid's in the tables works just fine. I put it back each time I try to fix the above with a new idea and the new idea does not work.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.02274 seconds
  • Memory Usage 1,781KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_code
  • (1)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete