[php] se connecter a site...et se met a jour

bonsoir,

j aimerais savoir si a votre avis mon projet est realisable.

PHP peut ,sur demande (ou sur evenement), se connecter a un site internet.
Ci site en question serait le mien et pourrait avoir des mises a jour (correction, ou nouvelles fonctionnalités) des codes.

La grande question est qu en PHP, est on capable de faire comprendre a un code php que :

  • oui il y a une mise a jour de ton code (avec demande de l autorisation a l utilisateur)
  • telecharge les fichiers dont tu as besoin
  • remplace les anciens en local automatiquement en mode silence
  • prevenir l utilisateur que la mise a jour est faite

donc ce qui est sur, que se connecter a internet c est possible. Verifier si il y a une msie a jour ou pas…il s agit simplement de se connecter a una base de donnee distante et de comparer une date de mise a jour donc ca ira…
Mais telecharger le code et l installer en local…la j ai un doute

qu en pensez vous?

merci

Imaginons que serveur1 continenne les mise à jour et que serveur2 soit celui qui s’y connecte pour se mettre à jour.
Pour télécharger les données, à partir du moment où serveur2 peut se connecter à serveur1, je ne pense pas qu’il y ait de problème. Il faut juste que tu mettes sur serveur1 le code à télécharger dans des fichier texte (si tu les mets dans des fichiers php, serveur1 les interpretera et serveur2 ne pourra donc pas les lire).
Pour les mettre à jour, c’est de la simple écriture de fichiers si je ne m’abuse :slight_smile:
Il faudra juste prévoir une fonction pour fermer le site pendant la mise à jour (genre écrire un .htaccess puis l’effacer à la fin), pour éviter d’éventuelles erreurs d’écriture si quelqu’un accède à la page pendant qu’elle est mise à jour.

je te remercie pour ta reponse

j ai un peu revu ma position sur mon projet.
Je compte via une base de donnée sur le serveur, indiquer la presence d une mise a jour ou pas avec le nom du fichier ZIP qui contient les codes.

maintenant c est la ou je bloque un peu.
je fait verifier au code php, la presence de la mise a jour (ca ca marche bien)
mais il me dit que oui il y a une msie a jour
la je demande a l utilisateur si il veut la faire.

en cas d acceptation, il telecharge le fichier ZIP et le met temporairement sur le disque dur.
La, via une classe spécifique PHP (PclZip pour ceux que ca interesse) je dezippe le fichier la ou je veux…

le probleme est lié au telechargement du fichier zip. En effet est il possible de le faire en mode "silence" c est a dire sans rien demander a l utilisateur?

meme si il demande la permission de le telecharger, j arrive pas non plus a lui faire afficher le message du telechargement
il est vrai que ca m arrangerais nettement que l’utilisateur n ait pas a accepter au refuse car ainsi je met le fichier ou je veux…

malgre tout ca peut aussi ce que je voudrais faire, considerer comme une faille…

je rencontre en plus un autre pb:

voici mon code


	$chemin="http://192.168.1.8/";
	$NOM_COMPLET=$chemin.$fichier;
	header("Content-disposition: attachment; filename=$fichier" ); 
	header("Content-type: application/octet-stream" ); 
	readfile ($NOM_COMPLET);

	if(file_exists('c:/'.$fichier))
  {
  // on inclut la class
  include('pclzip.lib.php');
  // on crée une instance
  $archive = new PclZip('c:/'.$fichier);
  // on dézippe notre archive
  if ($archive->extract(PCLZIP_OPT_PATH, 'c:/') == 0)
  	{
  	die("Error : ".$archive->errorInfo(true));
  	} 
  //unlink('c:/'.$fichier);
  echo 'La mise a jour est terminée.';
  }

rien de bien complique.
le problème que je rencontre, c est pas le telechargement, il demande a l utilisateur (bon deja c est vrai que c pas genial…si vous avez une idee je suis pas contre), mais surtout, ca detecte TOUJOURS la presence du fichier qu a la 2eme execution du code!!!

J ai l impression qu a la premiere execution, il passe tranquillement le code verification de la presence du fichier, telecharge le fichier et c est fini

comment je peux dans un premier temps:

  • telecharger le fichier

dans un 2eme temps:

  • dezipper le fichier

et le tout en separant bien
j ai essaye le sleep, mais meme si je le mettait après readfile ($NOM_COMPLET);, l attente était pour l’utilisateur, avant la fenetre du telechargement…

qu en pensez vous?

merci