News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Convertire da ipb 3.4

Started by Rungut, February 03, 2013, 06:31:15 PM

Previous topic - Next topic

Rungut

Salve a tutti,
stanco di pagare tantissimo per un forum, sto tentando di convertire il mio forum IPB 3.4 a SMF(prima in locale), ma ho riscontrato degli errori già dall'inizio della conversione.
Questi sono tutti i passaggi che ho fatto:

1-Ho ricostruito il forum in locale (con database e file FTP)
2-Ho installato SMF 2.0.4 in un'altro database
3-Ho scaricato l'ultimo convertitore che ho trovato in questa pagina: download.simplemachines.org/?converters;software=invision (Invision to SMF 2-0)
4-Ho caricato i 2 file sql e php nella cartella del forum SMF 2.0.4
5-Ho lanciato la conversione tramite l'indirizzo localhost/forumsmf/convert.php
6-Ho settato in "Path to SMF:"la cartella in cui si trova il forum SMF e in "Path to Invision Power Board:"la cartella in cui si trova tutto il forum da convertire.
7-Ho cliccato su "Continue"

a questo punto mi compare un errore:

Converting...
Converting members...
Unsuccessful!
This query:

    SELECT
    id AS id_member, SUBSTRING(name, 1, 80) AS member_name,
    joined AS date_registered, posts,
    IF(mgroup = 4, 1, IF(mgroup > 5, mgroup + 3, 0)) AS id_group,
    last_visit AS last_login, SUBSTRING(name, 1, 255) AS real_name,
    IFNULL(msg_total, 0) AS instant_messages,
    SUBSTRING(password, 1, 64) AS passwd,
    SUBSTRING(email, 1, 255) AS email_address,
    SUBSTRING(website, 1, 255) AS website_title,
    SUBSTRING(website, 1, 255) AS website_url,
    SUBSTRING(location, 1, 255) AS location,
    SUBSTRING(icq_number, 1, 255) AS icq, signature,
    IF (bday_year = 0 AND bday_month != 0 AND bday_day != 0, CONCAT('0004-', bday_month, '-', bday_day), CONCAT_WS('-', IF(bday_year <= 4, 1, bday_year), IF(bday_month = 0, 1, bday_month), IF(bday_day = 0, 1, bday_day))) AS birthdate,
    SUBSTRING(aim_name, 1, 16) AS aim, SUBSTRING(yahoo, 1, 32) AS yim,
    SUBSTRING(msnname, 1, 255) AS msn, hide_email AS hide_email,
    SUBSTRING(IF(avatar = 'noavatar' OR INSTR(avatar, 'upload') > 0, '', avatar), 1, 255) AS avatar,
    IFNULL(email_pm, 0) AS pm_email_notify, '' AS lngfile, '' AS buddy_list,
    '' AS pm_ignore_list, '' AS message_labels, '' AS personal_text,
    '' AS time_format, '' AS usertitle, '' AS member_ip, '' AS secret_question,
    '' AS secret_answer, '' AS validation_code, '' AS additional_groups,
    '' AS smiley_set, '' AS password_salt, '' AS member_ip
    FROM `warroc`.ibf_members
    WHERE id != 0
    LIMIT 0, 500;

Caused the error:

    Unknown column 'id' in 'field list'


Cosa ho sbagliato? :-[

EDIT: Ho scaricato l'allegato che ho trovato in questo post: www.simplemachines.org/community/index.php?topic=494775.msg3473749#msg3473749
L'ho sostituito al file sql che avevo scaricato prima e sembra che adesso stia andando bene (è arrivato ai topic)

EDIT2: Dopo mezzora si è bloccato qua: http://puu.sh/1X7TA [nofollow]

Converting...
Converting topics...
Duplicate entry '137217' for key 'PRIMARY'


EDIT3: Se provo a far ripartire la conversione mi compare questo errore, dopo 1 minuto circa:
Converting...

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 972

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 975

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: file(C:\Program Files (x86)\EasyPHP-12.1\www\smf/): failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 999
Successful.
Recalculating forum statistics...
Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2494

Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2495

Notice: Undefined index: db_fetch_assoc in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

Fatal error: Function name must be a string in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

hollywood9111

prova a farlo su un hosting gratuito e non in locale...
comunque sono errori si identificazione

emanuele

Ciao Rungut e benvenuto sul forum. :)

Quote from: Rungut on February 03, 2013, 06:31:15 PM
EDIT2: Dopo mezzora si è bloccato qua: http://puu.sh/1X7TA

Converting...
Converting topics...
Duplicate entry '137217' for key 'PRIMARY'
AAAHHHHH!!!!
Odio questo errore!!! lol
Scusa! ;D
Purtroppo capire perché si genera questo errore non è facile...
Quel che, in alcune situazioni, ho trovato utile (come palliativo) è di ridurre la velocità di conversione...sì, lo so che già non è una scheggia...
Nel file .sql, dove vedi:
---* {$to_prefix}topics 5

prova con:
---* {$to_prefix}topics 2

magari non cambia niente, magari funziona...il converter a volte dimostra una propria volontà capricciosa.

Quote from: Rungut on February 03, 2013, 06:31:15 PM
EDIT3: Se provo a far ripartire la conversione mi compare questo errore, dopo 1 minuto circa:
Converting...

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 972

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 975

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: file(C:\Program Files (x86)\EasyPHP-12.1\www\smf/): failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 999
Successful.
Recalculating forum statistics...
Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2494

Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2495

Notice: Undefined index: db_fetch_assoc in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

Fatal error: Function name must be a string in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

Dove l'hai preso il file convert.php?
Pensavo di averlo "corretto", ma apparentemente l'ho fatto solo sulla mia copia...
Se il forum viene convertito correttamente non è un problema, se invece mancano cose, aggiungi questo prima della linea 975:
if (!isset($_SESSION['convert_script']))
findConvertScripts();


La linea 975 contiene il seguente codice:
if (substr($_SESSION['convert_script'], -4) == '.php')
return run_php_converter();


Quote from: hollywood9111 on February 03, 2013, 08:57:06 PM
prova a farlo su un hosting gratuito e non in locale...
Direi esattamente il contrario...fallo in locale dove hai il completo controllo e non su un hosting gratuito dove sei fortemente limitato in ogni situazione.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

#3
Quote from: emanuele on February 04, 2013, 03:40:57 AM
Ciao Rungut e benvenuto sul forum. :)

Quote from: Rungut on February 03, 2013, 06:31:15 PM
EDIT2: Dopo mezzora si è bloccato qua: http://puu.sh/1X7TA [nofollow]

Converting...
Converting topics...
Duplicate entry '137217' for key 'PRIMARY'
AAAHHHHH!!!!
Odio questo errore!!! lol
Scusa! ;D
Purtroppo capire perché si genera questo errore non è facile...
Quel che, in alcune situazioni, ho trovato utile (come palliativo) è di ridurre la velocità di conversione...sì, lo so che già non è una scheggia...
Nel file .sql, dove vedi:
---* {$to_prefix}topics 5

prova con:
---* {$to_prefix}topics 2

magari non cambia niente, magari funziona...il converter a volte dimostra una propria volontà capricciosa.

Quote from: Rungut on February 03, 2013, 06:31:15 PM
EDIT3: Se provo a far ripartire la conversione mi compare questo errore, dopo 1 minuto circa:
Converting...

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 972

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 975

Notice: Undefined index: convert_script in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: file(C:\Program Files (x86)\EasyPHP-12.1\www\smf/): failed to open stream: No such file or directory in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 987

Warning: Invalid argument supplied for foreach() in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 999
Successful.
Recalculating forum statistics...
Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2494

Notice: Undefined variable: result in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 2495

Notice: Undefined index: db_fetch_assoc in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

Fatal error: Function name must be a string in C:\Program Files (x86)\EasyPHP-12.1\www\smf\convert.php on line 1386

Dove l'hai preso il file convert.php?
Pensavo di averlo "corretto", ma apparentemente l'ho fatto solo sulla mia copia...
Se il forum viene convertito correttamente non è un problema, se invece mancano cose, aggiungi questo prima della linea 975:
if (!isset($_SESSION['convert_script']))
findConvertScripts();


La linea 975 contiene il seguente codice:
if (substr($_SESSION['convert_script'], -4) == '.php')
return run_php_converter();


Quote from: hollywood9111 on February 03, 2013, 08:57:06 PM
prova a farlo su un hosting gratuito e non in locale...
Direi esattamente il contrario...fallo in locale dove hai il completo controllo e non su un hosting gratuito dove sei fortemente limitato in ogni situazione.

Ciao emanuele e grazie del benvenuto.
Ho risolto il problema del "Duplicate entry '137217' for key 'PRIMARY'" cancellando il topic con ID  137217 dal database.
Il convertitore finisce di convertire i topic e passa ai post, qui mi compare un'altro errore (quasi subito), ma ho dimenticato di salvarlo  :-X
Ora riprovo a fare la conversione e riporto qua l'errore, comunque era un errore inerente ad una linea del file converter.php.

EDIT: Mi è comparso un nuovo errore alla fine della conversione dei topic:
Converting...
Converting topics...
Successful.
Converting posts (this may take some time)...
Fatal error: Wrong value type sent to the database. Integer expected. (id_board)(convert.php-2636) in C:\Program Files (x86)\EasyPHP-12.1\www\smf\Sources\Subs-Db-mysql.php on line 687

Il codice che ho trovato nella linea che indica è:
trigger_error($error_message . ($line !== null ? '<em>(' . basename($file) . '-' . $line . ')</em>' : ''), $error_type);

emanuele

mmm...id_board questo è strano...mmm....no, con IPB non c'è niente di strano.

Potresti aprire il database (quello di IPB) da phpmyadmin ed andare a controllare la tabella topics e vedere se nel campo forum_id c'è qualche valore negativo? (puoi fare una ricerca per valori minori di 0)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 04, 2013, 05:53:45 AM
mmm...id_board questo è strano...mmm....no, con IPB non c'è niente di strano.

Potresti aprire il database (quello di IPB) da phpmyadmin ed andare a controllare la tabella topics e vedere se nel campo forum_id c'è qualche valore negativo? (puoi fare una ricerca per valori minori di 0)
No, niente minore di 0, vedo solo qualche null ogni tanto.
E' strana questa cosa, perchè ieri ha passato tranquillamente questo punto.

Comunque, ora provo a eliminare smf e il relativo database e rifare tutto da capo.

Rungut

Niente da fare, anche installando di nuovo smf da zero (incluso il database), mi si ferma in (alla fine della conversione dei topic):
Link errore: puu.sh/1Xlf9 [nofollow]
Converting...
Converting topics...
Successful.
Converting posts (this may take some time)...
Fatal error: Wrong value type sent to the database. Integer expected. (id_board)(convert.php-2636) in C:\Program Files (x86)\EasyPHP-12.1\www\smf\Sources\Subs-Db-mysql.php on line 687


i topic sono 14722 (se non sbaglio), a me si blocca al 14715.
Andando nel forum smf compaiono i dati a lato le sezioni: puu.sh/1Xlas [nofollow] (è un link all'immagine) , ma ovviamente dentro non c'è niente.

emanuele

Quote from: Rungut on February 04, 2013, 07:29:03 AM
No, niente minore di 0, vedo solo qualche null ogni tanto.
Beh, questo credo sia un problema...
Prova a lanciare questa query e ripetere la conversione:
UPDATE topics
SET forum_id = 1
WHERE forum_id IS NULL

Ovviamente se il forum con id non esiste cabia il numero con altro...o magari con una board accessibile solo ai moderatori o agli admin dato che non so quali siano questi topic.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 04, 2013, 10:57:27 AM
Quote from: Rungut on February 04, 2013, 07:29:03 AM
No, niente minore di 0, vedo solo qualche null ogni tanto.
Beh, questo credo sia un problema...
Prova a lanciare questa query e ripetere la conversione:
UPDATE topics
SET forum_id = 1
WHERE forum_id IS NULL

Ovviamente se il forum con id non esiste cabia il numero con altro...o magari con una board accessibile solo ai moderatori o agli admin dato che non so quali siano questi topic.
Scusa la mia ignoranza, ma non ne so molto di queste cose, puoi dirmi come si lancia una query? grazie

emanuele

da phpmyadmin, entri nel database (sulla sinistra selezioni il tuo), quindi in alto c'è il pulsante "SQL", incolli nello spazio e clicchi sul pulsante di conferma. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 04, 2013, 11:57:15 AM
da phpmyadmin, entri nel database (sulla sinistra selezioni il tuo), quindi in alto c'è il pulsante "SQL", incolli nello spazio e clicchi sul pulsante di conferma. ;)
Grazie per la spiegazione, si impara sempre qualcosa  :)

Comunque non mi fa lanciare la query, appena clicco su conferma mi compare:

Table 'forosmf.topics' doesn't exist

emanuele

Lo devi fare nel db di IPB...e potrebbe essere che topics non si chiami topics, ma magari ha un prefisso.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 04, 2013, 03:24:47 PM
Lo devi fare nel db di IPB...e potrebbe essere che topics non si chiami topics, ma magari ha un prefisso.

Si che ha un prefisso, il solito "ibf_" di ipboard: puu.sh/1XvdI [nofollow]  :)

"ibf_topics"

Infatti anche facendolo dal database di ipb mi compare lo stesso errore.

PS: Ma non posso rispondere senza scrivere ogni volta il captcha? è snervante  ;D

emanuele

Allora usa:
UPDATE ibf_topics
SET forum_id = 1
WHERE forum_id IS NULL


Quote from: Rungut on February 04, 2013, 03:34:02 PM
PS: Ma non posso rispondere senza scrivere ogni volta il captcha? è snervante  ;D
Ancora 3 messaggi e scompare...lo so, è una palla. (ah, vedo che metti le url senza http://, è solo al primo messaggio che non puoi inserire url, dopo è permesso)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 04, 2013, 04:10:45 PM
Allora usa:
UPDATE ibf_topics
SET forum_id = 1
WHERE forum_id IS NULL

Ora lo esegue, ma compare "0 righe modificate. ( La query ha impiegato 0.0037 sec "

Quote from: Rungut on February 04, 2013, 03:34:02 PM
PS: Ma non posso rispondere senza scrivere ogni volta il captcha? è snervante  ;D
Quote
Ancora 3 messaggi e scompare...lo so, è una palla. (ah, vedo che metti le url senza http://, è solo al primo messaggio che non puoi inserire url, dopo è permesso)
Non mi fa mette i link, mi compaiono le x nell'indirizzo xD
Prova: http://puu.sh/1XwI3 [nofollow]

emanuele

Quote from: Rungut on February 04, 2013, 04:18:40 PM
Ora lo esegue, ma compare "0 righe modificate. ( La query ha impiegato 0.0037 sec "
*headscratch*
Sicuro che i valori fossero null?

Quote from: Rungut on February 04, 2013, 03:34:02 PM
Non mi fa mette i link, mi compaiono le x nell'indirizzo xD
Prova: http://puu.sh/1XwI3
Non preoccuparti, questa è solo visualizzazione, quando avrai 10 post o più appariranno normali anche quelli che hai postato ora.


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 05, 2013, 04:39:13 AM

*headscratch*
Sicuro che i valori fossero null?
Ok, credo di non aver capito cosa devo fare xD

Devo cercare dei forum_id null?
Scusami tanto, ma non riesco a seguirti xD

emanuele

Scusa, se faccio troppe cose insieme divento estremamente sintetico... lol

Prima mi hai detto:
Quote from: Rungut on February 04, 2013, 07:29:03 AM
No, niente minore di 0, vedo solo qualche null ogni tanto.
Cosa c'era esattamente in quei campi?
Non è che erano semplicemente vuoti?
Perché in SQL c'è differenza tra "NULL" e vuoto. ;)


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Rungut

Quote from: emanuele on February 05, 2013, 08:02:23 AM
Scusa, se faccio troppe cose insieme divento estremamente sintetico... lol

Prima mi hai detto:
Quote from: Rungut on February 04, 2013, 07:29:03 AM
No, niente minore di 0, vedo solo qualche null ogni tanto.
Cosa c'era esattamente in quei campi?
Non è che erano semplicemente vuoti?
Perché in SQL c'è differenza tra "NULL" e vuoto. ;)
Ho fatto di nuovo la ricerca, ma non ci sono più quei null che ho trovato prima  ???

Non riesco a capire perchè prima mi dava altri errori e ora mi da solo questo:

Fatal error: Wrong value type sent to the database. Integer expected. (id_board)(convert.php-2636) in C:\Program Files (x86)\EasyPHP-12.1\www\smf\Sources\Subs-Db-mysql.php on line 687
Si deve modificare quella line?

emanuele

Prova questa:
select forum_id from ibf_topics where forum_id REGEXP '^[^0-9]+$'


Take a peek at what I'm doing! ;D




Hai bisogno di supporto in Italiano?

Aiutateci ad aiutarvi: spiegate bene il vostro problema: no, "non funziona" non è una spiegazione!!
1) Cosa fai,
2) cosa ti aspetti,
3) cosa ottieni.

Advertisement: