Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2007, 13h39   #1
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
Par défaut Données dynamiques d'un autre serveur

Hello à tous,
Ceci fait suite à un post envoyé la semaine dernière.
Voici le contexte j'ai 2 sites dont un avec BDD MySQL.

Dans la BDD j'ai des données statistiques sur les avis de mes visiteurs.
je peux évidemment les exploiter et les afficher sur le site qui est hébergé avec cette base.

Mais voilà, j'aimerai bien pouvoir les afficher aussi sur mon second site qui lui est situé sur un autre serveur, évidemment je veux que ça se fasse automatiquement: les données affichées seront mis à jour disons tous les 2 jours mais pas en temps réel.

ma première idée était de faire un simple script php pour aller chercher les résultats dans la base, or vu que ce dernier est sur un autre serveur il s'est avéré que celà est impossible....

Donc là je cherche un autre moyen pour automatiser ceci.
Vos idées sont les bienvenues
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 17h52   #2
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
Ok,
Une idée:
créer un fichier "a_inclure.html" contenant le code HTML du résultat à afficher.
Ce fichier sera créé sur le même serveur que la BDD et y sera placé dans un dossier que l'on rendra accessible de l'extérieur.

Il me sembe que l'on peut inclure une image situé dans un autre site non? en faisant
Code :
<img src="http://....">
de la même manière est-ce qu'on pourrait afficher le contenu "a_inclure.html" ???
Si oui une partie du problème est résolu

L'autre partie c'est comment mettre "a_inclure.html" à jour au bout de deux jours ????
coment faire un truc genre cron tab pour exécuter le script php de mise à jour tous les deux jours????
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2007, 21h49   #3
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
il vaux mieux transférer uniquement les données entre les deux serveurs comme ça le transfert sera plus rapide puisqu'il y a moins d'information, ensuite tu pourras facilement les stocker dans une base de donnée qui aura la même structure que le base d'origine. Et pour finir ça te permettra de présenter te données de façon indépendante du serveur 1.

Pour le transfert de PHP à PHP je te conseille de passer par la fonction http://php.net/serialize au départ et http://php.net/unserialize à l'arrivé
en gros ton code sera comme ça :
Serveur 1 :
Code :
1
2
3
4
5
6
7
 
// lecture de la base de données
 
// stockage des enregistrement dans un tableau $tableau
 
// affichage
echo serialize($tableau);
Serveur 2 (script que tu lances tous les deux jours)
Code :
1
2
3
4
5
 
$recuperation = file_get_contents('http://serveur1/fichier.php');
$tableau = unserialize($recuperation);
 
// là dans $tableau tu as tes enregistrements donc tu peux les stocker dans la base de données de serveur2
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2007, 10h04   #4
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
Merci pour la fonction serialize ça devrait marcher pour le transfert des données!

Seul hic maintenant: la mise à jour!

Du côté du serveur n°2 je peux en effet lancer le script tous les deux jours et ainsi récupérer les données.
Mais voilà, il y a une autre contrainte:au bout des deux jours je dois aller chercher de nouvelles données MAIS les données cherchées doivent elles mêmes êtres mise à jour au bout de ces deux jours...
Pour faire plus simple disons que le tableau à serialiser doit lui même être mis à jour au bout de ces deux jours.

Le mieux serait donc que le tableau soit mis à jour au bout des deux jours mais comment automatiser celà sur le serveur 1, ou le déclencher quand le script2 s'active?

un truc genre lancer le script1(lecture de la BDD et construction du tableau à sérialiser) à partir du serveur 2?
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2007, 21h51   #5
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par bbo1991
Le mieux serait donc que le tableau soit mis à jour au bout des deux jours mais comment automatiser celà sur le serveur 1, ou le déclencher quand le script2 s'active?
c'est ce que fait le code que je t'ai indiqué
avec la fonction "file_get_contents" tu lances le script que se trouve sur le serveur 1

regarde là pour plus d'informations sur les étapes d'appel à une page web :
http://ericberger.developpez.com/web...ronnement-web/
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2007, 23h47   #6
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
ReSalut,
Tu as tout à fait raison pour "file_get_contents" .

Mon script fonctionne bien en local malheureusement une fois placé sur le serveur ça marche pas!!!

J'ai une erreur du type:
Code :
1
2
 
Notice: unserialize(): Error at offset 0 of 969 bytes in c:\program files\easyphp1-7\www\a.php on line 4
Mon fichier a.php étant un simple test dont le contenu est:
Code :
1
2
3
4
5
6
7
8
9
 
<?php
$recuperation = file_get_contents('http://monsite.com/b.php');
echo $recuperation;
$tableau = unserialize($recuperation);
 
print_r($tableau);
 
?>
Avec un fichier b.php tout aussi simple placé sur mon serveur:
Code :
1
2
3
4
5
 
<?php
$tableau[]="essai";
echo serialize($tableau);
?>
Si je les mets en local sur mon serveur Easy ça marche nickel, .....

RMQ: l'echo $recuperation du fichier a.php m'affiche bien la sérialisation pourtant, j'obtiens un truc comme ceci:
Code :
1
2
 
a:1:{i:0;s:7:"essai";}
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 01h06   #7
Nouveau Membre du Club
 
Avatar de bbo1991
 
Inscription : novembre 2006
Messages : 100
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2006
Messages : 100
Points : 25
Points : 25
J'ai trouvé la source du pbm: le script b.php étant hébergé sur Ifrance le retour de file_get_contents est suivi de code Javascript que j'ai pas vu avec mon écho puisque ça s'affiche pas sur un browser!!!!

Donc globalement ce topic est résolu, reste pour moi à trouver le moyen de supprimer le code en trop(si quelqu'un a une idée pour le faire c'est le bienvenu).

Merci beaucoup pour ton aide mathieu
bbo1991 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/01/2007, 20h55   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par bbo1991
reste pour moi à trouver le moyen de supprimer le code en trop(si quelqu'un a une idée pour le faire c'est le bienvenu).
la solution : prendre un hébergement payant
éventuellement, OVH propose une offre gratuite mais je ne sais pas ce qu'elle vaut : http://www.ovh.com/fr/produits/demo1g.xml
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h34.


 
 
 
 
Partenaires

Hébergement Web