Hoi

Ik zit met een phpBB forum bij een gratis host, maar nu wil ik verhuizen, en de fora gegevens overnemen, in mijn nieuwe zelfgemaakte forum. Je zou zeggen, een backup nemen, en je hebt alle gegevens? Helaas, dit gaat niet op... Er is geen backup beschikbaar op die server, en ook geen MySQL toegang, met andere woorden, onmogelijk daar aan te kunnen...

Ik had al gedacht aan het inlezen van de bron met php, en hier de berichtjes uit filteren, maar dit lijkt me niet zo simpel...

Is alles hopeloos verloren en moet ik handmatig gaan overzetten, of zijn er nog opties?

Bedankt :)
Het zou voor hun toch niet zo heel moeilijk moeten zijn een query te maken die alle berichten, alle onderwerpen en alle gebruikers even selecteerd.

Zit er niet een lek in phpBB waar je gebruik van kan maken?
(even kijken op phpBB website, bij changelog, en kijken of ze op je server een versie ervoor gebruiken, en zo vriendelijk zijn om je eigen backup te maken en hun op het lek te wijzen.)
Deze heb ik van Eris gekopieerd. Werkt bij mij prima:

<?php
#create a sql backup and send it to your e-mail address
//define settings
//database host
DEFINE('dbhost','xxxx');
//database name
DEFINE('dbnaam','xxxx');
//database user
DEFINE('dbuser','xxxx');
//database passwordt
DEFINE('dbpass','xxxx');
//domeinnaam
DEFINE('domein','jouwsite.nl');
//doel
DEFINE('email','jouwemailadres');

//connect with database
$link = mysql_connect(dbhost,dbuser,dbpass) or die('No datbase conection could be establised');
mysql_select_db(dbnaam,$link) or die('No datbase selected');

//query to recive table names
$query = mysql_query('SHOW TABLE STATUS') or die(mysql_error());
$sql_backup = '';

//whileloop to loop trough every table
while($row = mysql_fetch_assoc($query))
{
//show sql query to rebuild the query
$sql = 'SHOW CREATE TABLE '.$row['Name'].'';
//exucte error or give a error
$query2 = mysql_query($sql) or die(mysql_error());

//create sql
$sql_backup.="\r\n#Create table ".$row['Name']."\r\n\r\n";
$out = mysql_fetch_assoc($query2);

$sql_backup.=$out['Create Table'].";\r\n\r\n";
$sql_backup.="#Dump data\r\n\r\n";

//SQL code to select everything for table
$sql = 'SELECT * FROM '.$row['Name'];
$out = mysql_query($sql);
$sql_code = '';

//loop trough the colloms
while($code = mysql_fetch_array($out,MYSQL_ASSOC))
{
$sql_code .= "INSERT INTO ".$row['Name']." SET ";

foreach($code as $insert => $value)
{
$sql_code.=$insert ."='".addslashes($value)."',";
}
$sql_code = substr($sql_code, 0, -1);
$sql_code.= ";\r\n";
}
$sql_backup.= $sql_code;
}

//generade a unique id
$unique = md5(uniqid(time()));

//message
$message = "Backup procedure van database: ".dbnaam." is met succes verlopen. U vind in de bijlage een backup van de inhoud gemaakt op. ".date('d-m-Y H:i:s')."\r\n Autobot";

//maak headers aan
//form header
$headers = "From: Autobot <noreply@".domein.">\r\n";
//terug sturen naar een niet bestaand mail adress ([email protected])
$headers .= "Reply-To: Autobot <noreply@".domein.">\r\n";
//vertel dat het een mine versie is
$headers .= "MIME-Version: 1.0\r\n";
//email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is
$headers .= "Content-Type: multipart/mixed; boundary=\"".$unique."\"\r\n";
//we zenden een attachment mee
$headers .= "Content-Disposition: attachment\r\n";

//generenen een body. Dit is een multi part gezeik
$body.= "This is a multi-part message in MIME format.\r\n";
$body.= "\r\n";
//boundary
$body.= "--".$unique."\r\n";
//content type + charater set (iso in dit geval)
$body.= "Content-Type: text/plain; charset=iso-8859-1\r\n";
//codering (7 bit)
$body.= "Content-Transfer-Encoding: 7bit\r\n";
$body.= "\r\n";
//het bericht
$body.= $message ."\r\n";
//boundaty
$body.= "--".$unique."\r\n";
//content type + naam bestand (database.sql)
$body .= "Content-Type: application/octet-stream; name=database.sql\r\n";
//codering
$body .= "Content-Transfer-Encoding: base64\r\n";
//als bijlage toegevoegd
$body.= "Content-disposition: attachment\r\n";
$body .= "\n";
//de inhoud van het bestand
$body .= chunk_split(base64_encode($sql_backup)) . "\r\n";
//zet alles op email!
//hier kan wat tijdsverschil in zitten!
if (mail(email,'Mysql backup '.date('d-m-Y H:i:s'),$body,$headers)) {
echo '<h2>Backup gelukt</h2>';
echo '<p>Er is een backup van de database als bijlage verzonden naar ' . email . '</p>';
}
?>
Rafael schreef op 16.01.2006 19:54
Nee MySQL toegang, op geen enkele manier, geen phpmyadmin, niet via zelf gemaakte scriptjes, want je kan op geen enkele manier op de server, laat staan database :)


Soms is lezen toch zo moeilijk
Ja ach, Jan wordt ookal een dagje ouder :P
Nogal flauw, vinden jullie niet? Lezen jullie alle topics letter voor letter na?
Ik kan helaas geen files dumpen op de server Jan ;)
Jelmer: de versie is ook mooi verdoezeld, en ik zou sowieso al niet weten hoe je aan zoiets komt dan :)
Rafael schreef op 16.01.2006 21:29
Ik kan helaas geen files dumpen op de server Jan ;)


Ik heb net ff zitten kloten met een eigen phpBB forum, of je de url aan kunt passen om alle berichten in beeld te krijgen, maar dat ging natuurlijk niet lukken.
Ik denk ook dat je phpBB niet zomaar gaat 'kraken' om alles te kunnen zien... Forum is veelgebruikt, dus véél bugs zijn er al uit he?
Nou dan denk ik zo dat tenzij er iemand met een geniale regex op de proppen komt, je geen backup kunt maken, helaas.
Jan Koehoorn schreef op 16.01.2006 21:27
Nogal flauw, vinden jullie niet? Lezen jullie alle topics letter voor letter na?



Wat denk je. Daarvoor ben ik toch voor aangenomen...

(dus niet)

Reageren