Aller au contenu

Changement de base SQL


Sujets conseillés

Posté

Bonjour,

J'ai un forum IPB et j'aimerais lui dire d'aller piocher la base sql d'un autre site.

j'en vois qui font déjà les gros yeux alors avant de me faire flinguer pour tentative de hackage, je m'explique mieux :D

j'ai un site site1.com et un autre site2.com

Mon forum est sur site2.com et il utilise la bdd de site2.com aussi (normal jusque là)

Je voudrais que le forum aille se connecter à ma bdd sur site1.com sans pour autant déplacer tout le forum et devoir refaire l'installation (sachant que j'ai transféré toutes les tables de la bdd de site2 sur site1)

Is that possible ? Je ne pense pas pour cause de sécurité mais j'en apprends tous les jours alors je m'attends à tout.

Merci à vous

Posté

Si tu as des dédiés, c'est assez facile, y compris en sécurisant correctement tes accès.

Il suffit de changer une ligne dans le fichier de config de mysql (en fait la décommenter), et ensuite d'ajouter des règles dans iptables pour ne laisser passer que les requêtes émanant de ta deuxième machine à l'exclusion de toutes les autres.

Si tu es en hébergement mutualisé, en général tu ne peux pas accéder de l'extérieur aux bases mysql pour des raisons de sécurité, et tu n'auras pas la main sur la config de mysql (Dieu merci !)

Posté (modifié)

Pour être honnête, je n'ai rien compris :unsure:

Je suis chez free, hébergement gratuit, je ne pense donc pas avoir tant de droit que ce dont vous me parlez ... je me trompe ?

Modifié par Gibou
Posté

Ne retiens alors que la dernière ligne ;)

Ca n'est assurément pas possible pour un hébergement gratuit, parce qu'ils ne veulent pas prendre de risques inutiles.

Ceci dit, il y a peut être moyen de faire autrement. Qu'as tu comme infos à faire passer du premier site au second ?

Tu peut très bien imaginer créer des fichier xml, qui te serviraient de 'transfert' entre les 2 sites ! Ca tombe bien, le xml est fait pour ca

;)

Posté

Ah je n'ai jamais fait de ça ... bon, j'ose pas non plus me laisser bercer et qu'on me fasse tout, je vais chercher ça, merci à vous :)

PS : nan, en fait, je voudrais bien un indice pour commencer mes recherches lol... :D

Posté

En fait, d'un coté, tu as une page qui présente les données de la base. Exemple :


<?php
function GetXMLTree ($xmldata)
{
// we want to know if an error occurs
ini_set ('track_errors', '1');

$xmlreaderror = false;

$parser = xml_parser_create ('ISO-8859-1');
xml_parser_set_option ($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parser_set_option ($parser, XML_OPTION_CASE_FOLDING, 0);
if (!xml_parse_into_struct ($parser, $xmldata, $vals, $index)) {
$xmlreaderror = true;
echo "-1";
}
xml_parser_free ($parser);

if (!$xmlreaderror) {
$result = array ();
$i = 0;
if (isset ($vals [$i]['attributes']))
foreach (array_keys ($vals [$i]['attributes']) as $attkey)
$attributes [$attkey] = $vals [$i]['attributes'][$attkey];

$result [$vals [$i]['tag']] = array_merge ($attributes, GetChildren ($vals, $i, 'open'));
}

ini_set ('track_errors', '0');
return $result;
}

function GetChildren ($vals, &$i, $type)
{
if ($type == 'complete') {
if (isset ($vals [$i]['value']))
return ($vals [$i]['value']);
else
return '';
}

$children = array (); // Contains node data

/* Loop through children */
while ($vals [++$i]['type'] != 'close') {
$type = $vals [$i]['type'];
// first check if we already have one and need to create an array
if (isset ($children [$vals [$i]['tag']])) {
if (is_array ($children [$vals [$i]['tag']])) {
$temp = array_keys ($children [$vals [$i]['tag']]);
// there is one of these things already and it is itself an array
if (is_string ($temp [0])) {
$a = $children [$vals [$i]['tag']];
unset ($children [$vals [$i]['tag']]);
$children [$vals [$i]['tag']][0] = $a;
}
} else {
$a = $children [$vals [$i]['tag']];
unset ($children [$vals [$i]['tag']]);
$children [$vals [$i]['tag']][0] = $a;
}

$children [$vals [$i]['tag']][] = GetChildren ($vals, $i, $type);
} else
$children [$vals [$i]['tag']] = GetChildren ($vals, $i, $type);
// I don't think I need attributes but this is how I would do them:
if (isset ($vals [$i]['attributes'])) {
$attributes = array ();
foreach (array_keys ($vals [$i]['attributes']) as $attkey)
$attributes [$attkey] = $vals [$i]['attributes'][$attkey];
// now check: do we already have an array or a value?
if (isset ($children [$vals [$i]['tag']])) {
// case where there is an attribute but no value, a complete with an attribute in other words
if ($children [$vals [$i]['tag']] == '') {
unset ($children [$vals [$i]['tag']]);
$children [$vals [$i]['tag']] = $attributes;
}
// case where there is an array of identical items with attributes
elseif (is_array ($children [$vals [$i]['tag']])) {
$index = count ($children [$vals [$i]['tag']]) - 1;
// probably also have to check here whether the individual item is also an array or not or what... all a bit messy
if ($children [$vals [$i]['tag']][$index] == '') {
unset ($children [$vals [$i]['tag']][$index]);
$children [$vals [$i]['tag']][$index] = $attributes;
}
$children [$vals [$i]['tag']][$index] = array_merge ($children [$vals [$i]['tag']][$index], $attributes);
} else {
$value = $children [$vals [$i]['tag']];
unset ($children [$vals [$i]['tag']]);
$children [$vals [$i]['tag']]['value'] = $value;
$children [$vals [$i]['tag']] = array_merge ($children [$vals [$i]['tag']], $attributes);
}
} else
$children [$vals [$i]['tag']] = $attributes;
}
}

return $children;
}

$url = "http://localhost/test.xml";
$contents = file_get_contents($url);
$data = GetXMLTree ($contents);
print_r($data);


?>

Tu verras que ca se manie très facilement.

ps : changes l'url, de la dernière ligne ;)

Posté

ok, il m'affiche ça :

Array ( [membre] => Array ( [idLogs] => 1 [actif] => true [groupe] => Array ( [fkGroupe] => Array ( [0] => 3 [1] => 4 ) ) ) )

Et là, la question qui tue et qui va décourager les plus valeureux :

ET ? :oops:

Tu voudrais remplacer ma bdd par un fichier xml ?

Posté

ET ?

En fait, je reprends ton premier post, il était question d'un forum IPB. Il y a tout de même pas mal de tables, de chaises, plus tout le mobilier, ca risque de faire beaucoup de fichiers xml (enfin.. d'explications, quoi.. )

Ca serait la méthode à employer pour récupérer les infos d'une base, sur un autre serveur. Pour toi, je ne suis pas sûr que ce soit la meilleure méthode. Ca demanderait tout de même pas mal de boulot :(

D'autant que tes 2 programmes sont, je pense, identiques, non ?

Tes 2 sites sont chez free ? (pas de bol :( )

Posté

Ouaip, mes deux sites sont chez free

Donc, je laisse cette solution de côté et j'ai plus qu'à réinstaller le forum sur mon autre site

Très bien, merci pour tout enaccord9.gif

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...