Gibou Posté 22 Août 2005 Posté 22 Août 2005 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 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
Cariboo Posté 23 Août 2005 Posté 23 Août 2005 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 !)
Gibou Posté 23 Août 2005 Auteur Posté 23 Août 2005 (modifié) Pour être honnête, je n'ai rien compris 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é 23 Août 2005 par Gibou
Anonymus Posté 23 Août 2005 Posté 23 Août 2005 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
Gibou Posté 23 Août 2005 Auteur Posté 23 Août 2005 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...
Anonymus Posté 23 Août 2005 Posté 23 Août 2005 En fait, d'un coté, tu as une page qui présente les données de la base. Exemple : <?phpfunction 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
Gibou Posté 23 Août 2005 Auteur Posté 23 Août 2005 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 ? Tu voudrais remplacer ma bdd par un fichier xml ?
Anonymus Posté 23 Août 2005 Posté 23 Août 2005 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 )
Gibou Posté 24 Août 2005 Auteur Posté 24 Août 2005 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant