La gestion des protocoles HTTP, FTP, SOAP, etc.

Dimension: px
Commencer à balayer dès la page:

Download "La gestion des protocoles HTTP, FTP, SOAP, etc."

Transcription

1 Chapitre 16 La gestion des protocoles HTTP, FTP, 16.1 Fonctions réseau (de base) Réseau Les sockets FTP curl (client URL Library) SOAP

2

3 Réseau Fonctions réseau (de base) Réseau Les fonctions présentées dans ce chapitre ne permettent pas de réels développements, mais constituent une "trousse à outils" parfois nécessaire dans la manipulation d informations réseau (comme ce peut être le cas, par exemple, avec l utilisation des sockets). Elles ne nécessitent aucune installation particulière. Adresses IP et DNS L opération la plus souvent sollicitée est certainement celle qui consiste à déterminer l adresse IP d une machine lorsque l on ne connaît que son nom. Pour cela, vous disposez de la fonction gethostbyname(). gethostbyname() Retourne l adresse IP de la machine précisée par son nom. $nommachine string gethostbyname(string $nommachine) Nom de la machine. Adresse IP de la machine, ou $nommachine si aucune adresse IP n a pu être trouvée. Ainsi, le code suivant : <?php echo gethostbyname("localhost");?> nera très probablement : Alors que : <?php echo gethostbyname("www.php.net");?> nera une adresse IP publique comme, par exemple,

4 Chapitre 16 La gestion des Il est également possible de réaliser l opération inverse, à savoir récupérer un nom de machine à partir de son adresse IP grâce à gethostbyaddr(). gethostbyaddr() Retourne un nom de machine associé à l adresse IP précisée (tel qu on le trouve dans le fichier /etc/hosts des sytèmes UNIX/Linux). $adresseip string gethostbyaddr(string $adresseip) Adresse IP de la machine. Nom associé à la machine, ou $adresseip si aucun nom n a pu être trouvé. Le code suivant : <?php echo gethostbyaddr(" ");?> pourra ner : localdomain.localhost On notera au passage que l opération n est pas nécessairement réversible. Si gethostbyname("localhost") ne " " cela n implique pas que gethostbyaddr(" ") ne "localhost". En effet, une machine peut avoir plusieurs noms (via des alias), et c est donc le nom principal qui est né par gethostbyaddr(). De même, une unique machine peut posséder plusieurs adresses IP. Pour en déterminer la liste, vous pouvez faire appel à gethostbynamel(). gethostbynamel() Retourne la liste des adresses IP de la machine précisée par son nom. $nommachine array gethostbynamel($nommachine) Nom de la machine. Tableau indexé des adresses IP de la machine, ou FALSE si aucune adresse IP n a pu être trouvée. PHP dispose de fonctions permettant de convertir des adresses IP précisées sous la forme "classique" xxx.xxx.xxx.xxx en adresses sous la forme d entiers, et réciproquement. 1266

5 Réseau ip2long() Convertit une adresse IP du format "xxx.xxx.xxx.xxx" en un entier. : int ip2long(string $adresseip) $adresseip Adresse IP au format "xxx.xxx.xxx.xxx". Adresse IP sous forme d un entier. Entier signé ou non Un simple echo du résultat fourni par ip2long peut conduire à l affichage d un entier négatif. Or celui-ci est théoriquement non signé. Il est donc préférable de faire appel à printf("%u", ip2long($adresseip)). long2ip() Convertit une adresse IP d entier au format "xxx.xxx.xxx.xxx". int ip2long(string $adresseip) $adresseip Adresse IP sous forme d un entier. Adresse IP au format "xxx.xxx.xxx.xxx". Dans certaines circonstances, comme par exemple pour déterminer si une adresse a des chances d être valide, il peut être utile de déterminer si le nom de domaine indiqué existe, ou, plus précisément, vérifier si ce nom est connu du DNS. DNS DNS sont les initiales anglaises de "Domain Name Server", autrement dit "Serveur de nom de domaine". En deux mots, ce serveur contient les tables de correspondances qui permettent de retrouver une machine (ou son adresse IP) à partir de son nom. Vous trouverez plus d informations sur le site Internet : Pour tester la présence d un nom de machine auprès du DNS vous ferez appel à checkdnsrr(). checkdnsrr() (non disponible sous Windows) Teste la présence d un nom de machine ou d une adresse IP auprès du DNS. Notez que dans la version 5 de PHP, cette fonction est baptisée DNS_check_record() (tout en assurant la compatibilité). 1267

6 Chapitre 16 La gestion des boolean checkdnsrr(string $nommachine [, string $type]) $nommachine Nom de la machine ou adresse IP. $type Précise le type d entrée recherchée (par défaut MX) : A (Address = Adresse) : une simple adresse. CNAME (Cannonical Name = Nom canonique) : un alias. MX (Mail exchanger = Distributeur de courrier) : machine permettant la réception de mails. NS (Name Server = Serveur de nom) : un serveur de nom. PTR (Pointer = Pointeur) : un renvoi sur une autre machine. SOA (Start Of Authority) : une zone. ANY : l ensemble des options précédentes. TRUE si la machine est connue du DNS (pour le type précisé), FALSE sinon. Voici donc une petite fonction permettant non pas de vérifier la validité d une adresse , mais de débusquer certaines adresses manifestement non valides. <?php function test ($ ) { $domaine = ); return checkdnsrr($domaine, MX ); } $ = if (test ($ )) { echo "Je ne peux pas assurer que cette adresse est valide ". "mais elle n est pas totalement farfelue"; } else { echo "Pfuuu... C est n importe quoi cet , ". "jamais je ne pourrai envoyer d à cette adresse"; }?> Pour ce qui concerne les entrées MX du fichier de configuration du DNS, il est possible d en savoir un peu plus grâce à la fonction getmxrr(). getmxrr() (Non disponible sous Windows) Retourne la liste des machines enregistrées auprès du DNS pour la gestion des mails. Notez que dans la version 5 de PHP, cette fonction est baptisée DNS_get_mx() (tout en assurant la compatibilité). $nommachine $machines boolean getmxrr(string $nommachine, array &$machines [, array &$poids]) Nom de la machine. Référence sur une variable dans laquelle sera copié un tableau indexé contenant les noms des machines devant "router" les mails. 1268

7 Réseau $poids Référence sur une variable dans laquelle sera copié un tableau indexé contenant les poids associés aux machines. Les mails seront prioritairement "routés" par la machine de plus faible poids. TRUE si la machine est connue du DNS, FALSE sinon. Protocoles et services PHP propose également des fonctions permettant de récupérer des informations plus intimement liées au serveur. Il est, par exemple, possible de connaître le port associé à un service ou, inversement, de retrouver le nom d un service à partir de son numéro de port. getservbyname() Retourne le port associé au service donné. int getservbyname(string $service, string $protocole) $service Nom du service (ex. : "ftp", "http",...) $protocole Nom du protocole ("tcp" ou "udp"). Numéro de port, ou FALSE en cas d échec. getservbyport() Retourne le nom du service associé au port donné. int getservbyport(string $port, string $protocole) $port Numéro du port. $protocole Nom du protocole ("tcp" ou "udp"). Nom du service, ou FALSE en cas d échec. Ainsi, pour connaître le port associé au service FTP, ou le nom du service associé au port 80, l on pourra utiliser le script suivant : <?php echo getservbyname("ftp", "tcp")."<br />"; echo getservbyport(80, "tcp");?> ce qui nera (probablement) : 21 http 1269

8 Chapitre 16 La gestion des Il est également possible de connaître le numéro associé à un protocole ou, inversement, de retrouver le nom d un protocole à partir de son numéro. getprotobyname() Retourne le numéro associé à un nom de protocole (tel qu on le trouve dans le fichier /etc/protocols des systèmes UNIX/Linux). $nomprotocole int getprotobyname(string $nomprotocole) Nom du protocole. Numéro du protocole, ou 1 s il n existe pas. getprotobynumber() Retourne le nom associé à un numéro de protocole (tel qu on le trouve dans le fichier /etc/protocols des systèmes UNIX/Linux). $numeroprotocole int getprotobynumber(string $numeroprotocole) Numéro du protocole. Nom du protocole, ou FALSE s il n existe pas. Voici un exemple d utilisation. Le script suivant : <?php echo getprotobyname("tcp")."<br />"; echo getprotobynumber(62)."<br />";?> pourra ner : 6 cftp Les sockets Pour communiquer directement avec un service d une machine donnée, vous serez peut-être amené à utiliser les sockets. Vous pouvez ainsi communiquer directement avec un serveur FTP, HTTP, NNTP (newsgroup), etc, et maîtriser plus finement les opérations que si vous utilisiez les commandes de plus haut niveau (plus couramment utilisées). Le principe d utilisation est simple et se déroule en quatre grandes étapes : 1270

9 Les sockets j Ouverture de la connexion ; j Configuration de la connexion ; j Lecture/écriture sur la socket ; j Fermeture de la connexion. Un exemple d application est donné à la fin de ce sous-chapitre. Ouverture de la connexion L ouverture d une connexion se fait via la fonction fsockopen(). fsockopen() Ouvre une connexion sur une socket. $serveur $port $codeerreur $msgerreur $delaiexpiration resource fsockopen(string $serveur, int $port [, int &$codeerreur [, string &$msgerreur [, double $delaiexpiration]]]) Nom du serveur sur lequel doit se porter la connexion (éventuellement précédé de "udp://" pour une connexion UDP). Numéro du port sur lequel établir la connexion. Référence sur une variable dans laquelle sera copié le code d erreur levé. Référence sur une variable dans laquelle sera copié le message d erreur levé. Délai (en secondes) au-delà duquel la tentative de connexion doit être abandonnée (par défaut 60 secondes). Identifiant de connexion à la socket, ou FALSE en cas d erreur. La fonction fsockopen() possède un équivalent permettant l ouverture d une connexion persistante (nous n avons pas vérifié le caractère persistant et réutilisable de la connexion). Il s agit de la fonction pfsockopen(), qui possède exactement la même syntaxe que fsockopen(). Configuration de la connexion Il est possible de jouer sur deux paramètres de connexion : j Le mode de lecture bloquant ou non ; j Le délai d expiration (timeout) de la socket. La lecture est dite en mode bloquant si la fonction de lecture doit attendre qu un message lui soit adressé pour "rendre la main" au programme. Dans le cas contraire, elle est dite non bloquante, et la fonction de lecture ne simplement le contenu de la mémoire tampon 1271

10 Chapitre 16 La gestion des (espace stockant les messages nouvellement reçus) qui pourra éventuellement être vide (si le message n est pas encore arrivé). Par défaut, en l absence d appel à la fonction socket_set_blocking(), le mode de lecture est bloquant. socket_set_blocking() Détermine si le mode de lecture de la socket doit être ou non bloquant. $idsocket $modelecture boolean socket_set_blocking(resource $idsocket, boolean $modelecture) Identifiant de la socket tel que né par fsockopen(). TRUE si le mode de lecture doit être bloquant, FALSE sinon. FALSE en cas d échec, TRUE sinon. La durée de vie de la connexion à la socket peut être limitée par la fonction socket_set_timeout(). socket_set_timeout() Détermine la durée de vie maximale de la socket. $idsocket $secondes $microsecondes boolean socket_set_timeout(resource $idsocket, int $secondes, int $microsecondes) Identifiant de la socket tel que né par fsockopen(). Partie "secondes" de la durée de vie de la socket exprimée en "secondes:microsecondes". Partie "microsecondes" de la durée de vie de la socket exprimée en "secondes:microsecondes". FALSE en cas d échec, TRUE sinon. Lecture/écriture sur la socket La lecture et l écriture sur la socket s effectuent à l aide des fonctions qui ont déjà été vues dans le chapitre relatif aux fichiers. Vous pourrez ainsi utiliser fgets($idsocket, $nboctets); pour lire jusqu à $nboctets octets sur la socket, fputs($idsocket, $chaine); pour envoyer au serveur une chaîne de caractères via la socket, ou encore feof($idsocket); pour tester si la fin de fichier (fin d émission) a été atteinte. 1272

11 Les sockets Fermeture de la connexion Le fermeture de la connexion s opère exactement de la même façon que celle d un fichier, c est-à-dire par la commande fclose($idsocket). Informations sur la connexion Pour connaître l état d une socket, vous pouvez faire appel à la fonction socket_get_status(). socket_get_status() Retourne quelques informations sur l état de la socket. array socket_get_status(resource $idsocket) $idsocket Identifiant de la socket tel que né par fsockopen(). Tableau associatif possédant les clés : "time_out" associée à une valeur de type booléen précisant si la durée de vie de la socket a expiré ou non. "blocked" associée à une valeur de type booléen précisant si la lecture sur la socket se fait en mode bloquant ou non. "eof" associée à une valeur de type booléen précisant si un indicateur de fin de fichier a été détecté ou non. "unread_bytes" associée à une valeur de type entier précisant le nombre d octets actuellement dans la mémoire tampon de lecture de la socket. Application Pour mettre en place une communication via une socket, l essentiel est de bien connaître le langage de communication avec le serveur. Si vous avez conçu votre propre serveur, vous savez certainement comment il fonctionne autrement, il faut se référer aux spécifications. Dans le cas d un serveur HTTP, le principe est assez simple et a été évoqué dans le chapitre En-têtes. Vous pouvez vous reporter à l annexe "Les en-têtes" pour plus de détails. Pour récupérer un document via la méthode GET, il suffit de lui envoyer les instructions "GET <nom du document> HTTP/<norme HTTP>", et, dans le cas de la norme 1.1, il faut au minimum communiquer l en-tête Host. Pour récupérer la page d accueil d un site, il faudra donc, par exemple, envoyer les instructions suivantes : GET / HTTP/1.1 Host: localhost 1273

12 Chapitre 16 La gestion des ce qui nous donne le script suivant : Listing 16.1 : socket_01.php <?php // Exemple de récupération d un document via HTTP // en utilisant directement les sockets. $serveur = "www.gnu.org"; $document = "/"; echo "<b>lecture de $serveur$document</b><br />"; $idsocket = fsockopen($serveur, 80, $codeerreur, $msgerreur); if (!$idsocket) { echo "La connexion via la socket a échouée.<br />"; echo "Code d erreur: $codeerreur<br />"; echo "Message d erreur: $msgerreur<br />"; die(); } // Configuration de la connexion // en mode bloquant // et avec un timeout de 5 minutes socket_set_blocking($idsocket, TRUE); socket_set_timeout($idsocket, 5, 0); // Envoi de données au serveur fputs($idsocket, "GET $document HTTP/1.1\r\n"); fputs($idsocket, "Host: localhost\r\n"); fputs($idsocket, "\r\n"); // Marque la fin de l en-tête?> // Lecture de la réponse while (!feof($idsocket)) { $donnees = fgets($idsocket, 512); echo "<xmp>$donnees</xmp>"; } // Affichage du code source qui fournira, par exemple, le résultat suivant (début de la réponse uniquement) : Lecture de HTTP/ OK Date: Tue, 28 May :39:34 GMT Server: Apache/ (Unix) Debian GNU/Linux mod_python/2.7.8 Python/1.5.2 Last-Modified: Fri, 24 May :51:38 GMT ETag: " e6e-3cee7daa" Accept-Ranges: bytes Content-Length: Content-Type: text/html 1274

13 FTP <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>GNU s Not Unix! - the GNU Project and the Free Software Foundation (FSF)</title> <META HTTP-EQUIV="Keywords" CONTENT="GNU, FSF, Free Software Foundation, Linux, Emacs, GCC, Unix, Free Software, Operating System, GNU Kernel, HURD, GNU HURD"> <META HTTP-EQUIV="Description" CONTENT="Since 1983, developing the free Unix-like operating system GNU, Comme vous pouvez le constater, nous récupérons ainsi non seulement le code source HTML de la page, mais également l en-tête né par le serveur (le début du code source se trouvant juste après la première ligne laissée vide). L utilisation des sockets permet ici de récupérer l en-tête né par le serveur (et ainsi, par exemple, de vérifier le "Content-type"), mais aussi de préciser notre propre en-tête de requête (en utilisant par exemple le "User-agent" d Internet Explorer ou de Mozilla, et en testant différentes valeurs pour "Accept-Language", etc.) FTP Les fonctions de la bibliothèque FTP permettent d accéder en tant que client à un serveur FTP. Installation Sous Windows Que ce soit avec l archive du PHP Group ou avec EasyPHP, les fonctions FTP sont intégrées à PHP. Sous Linux Vous devrez recompiler PHP avec l option enable ftp (avec les versions 3 de PHP, il s agissait de l option with ftp). Vous pouvez vous reporter au chapitre "Prise en main" pour plus de détails sur la façon de compiler PHP. Vérification Pour vérifier que le support FTP est activé, appelez un script contenant <?php phpinfo();?>. Celui-ci doit alors laisser apparaître : 1275

14 Chapitre 16 La gestion des Figure 16.1 : phpinfo() FTP Les fonctions de base Connexion/déconnexion La première étape consiste, comme toujours, à se connecter au serveur. ftp_connect() Permet de se connecter à un serveur FTP. resource ftp_connect(string $serveur [, int $port [, int $delaiexpiration]]) $serveur Adresse du site FTP. $port Port du serveur FTP si celui-ci est différent du port usuel 21. $delaiexpiration Temps en secondes pour toute commande avant abandon ; par défaut cette valeur vaut 90 secondes. Un identifiant de connexion ou FALSE en cas d erreur. Une fois connecté, il faut s identifier (sans quoi rien n est possible). ftp_login() Identification auprès du serveur. $idconnexion $identifiant $motdepasse boolean ftp_login(resource $idconnexion, string $identifiant, string $motdepasse) Identifiant de connexion obtenu par ftp_connect(). Identifiant (login) de l utilisateur. Mot de passe utilisateur. TRUE si la connexion a pu se faire, FALSE sinon. La déconnexion s effectuera, quant à elle, grâce à la fonction ftp_close(). 1276

15 FTP ftp_close() Permet de clore la connexion FTP. $idconnexion boolean ftp_close(resource $idconnexion) Identifiant de connexion obtenu par ftp_connect(). TRUE en cas de succès. ftp_close() possède un alias appelé ftp_quit(). Déplacement dans l arborescence Une fois que l on est identifié, il est possible d effectuer toutes les opérations courantes en ligne, comme, par exemple, changer de répertoire : ftp_chdir() Permet de changer de répertoire. $idconnexion $repertoire boolean ftp_chdir(resource $idconnexion, string $repertoire) Identifiant de connexion obtenu par ftp_connect(). Répertoire de destination. TRUE en cas de succès, FALSE sinon. De son côté, ftp_cdup() permet de monter d un niveau dans la hiérarchie des répertoires. ftp_cdup() Change de répertoire pour monter d un niveau. boolean ftp_cdup(resource $idconnexion) $idconnexion Identifiant de connexion obtenu par ftp_connect(). TRUE en cas de succès, FALSE sinon. Liste du contenu d un répertoire Il est possible également de voir le contenu d un répertoire : 1277

16 Chapitre 16 La gestion des ftp_rawlist() Permet d obtenir une liste détaillée des fichiers d un répertoire (et éventuellement de ses sous-répertoires). Le résultat est identique à ls l. array ftp_rawlist(resource $idconnexion, string $repertoire [, boolean $recursif]) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $repertoire Répertoire à lister. $recursif TRUE si le contenu des sous-répertoires doit également être né, FALSE (valeur par défaut) sinon. (Option disponible depuis PHP 4.3.0) Tableau indexé des différents fichiers du répertoire avec leur détail (droits, taille, date). ftp_nlist() Permet d obtenir une liste des fichiers d un répertoire. Le résultat est identique à ls. $idconnexion $repertoire array ftp_nlist(resource $idconnexion, string $repertoire) Identifiant de connexion obtenu par ftp_connect(). Répertoire à lister. Tableau des différents fichiers du répertoire. Création, suppression, renommage ftp_mkdir() Création d un nouveau répertoire. boolean ftp_mkdir(resource $idconnexion, string $repertoire) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $repertoire Nom du répertoire à créer avec, éventuellement, son chemin. TRUE si le répertoire a pu être créé, FALSE sinon. 1278

17 FTP ftp_rmdir() Permet d effacer un répertoire vide. $idconnexion $chemin boolean ftp_rmdir(resource $idconnexion, string $chemin) Identifiant de connexion obtenu par ftp_connect(). Répertoire à effacer avec, éventuellement, son chemin. TRUE si le répertoire a été effacé, FALSE sinon. ftp_delete() Permet d effacer un fichier. $idconnexion $chemin boolean ftp_delete(resource $idconnexion, string $chemin) Identifiant de connexion obtenu par ftp_connect(). Chemin du fichier à effacer avec, éventuellement, son chemin. TRUE si le fichier a été effacé, FALSE sinon. ftp_rename() Permet de renommer un fichier ou un répertoire. $idconnexion $anciennom $anciennom Transfert de fichiers boolean ftp_rename(resource $idconnexion, string $anciennom, $nouveaunom) Identifiant de connexion obtenu par ftp_connect(). Ancien nom du fichier ou répertoire. Nouveau nom du fichier ou répertoire. TRUE si le fichier ou répertoire a pu être renommé, FALSE sinon. Les fonctions de transfert de fichiers sont également disponibles. Il est ainsi possible de copier un fichier du serveur FTP vers le serveur web (ftp_get()) ou le contraire (ftp_put()). ftp_get() Permet de récupérer un fichier d un serveur FTP. 1279

18 Chapitre 16 La gestion des $idconnexion $cheminfichierlocal boolean ftp_get(resource $idconnexion, string $cheminfichierlocal, string $cheminfichierdistant, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Chemin avec le nom du fichier où enregistrer le fichier. $cheminfichierdistant Chemin avec le nom du fichier à récupérer. $mode FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). $offset Position dans le fichier distant du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être copié, FALSE sinon. ftp_put() Télécharge un fichier du serveur web vers le serveur FTP. $idconnexion $fichierdistant $fichierlocal $mode $offset boolean ftp_put(resource $idconnexion, string $fichierdistant, string $fichierlocal, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Destination sur le serveur web. Chemin sur le serveur web local. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier local du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être copié, FALSE sinon. Les fonctions ftp_get() et ftp_put() possèdent des variantes permettant d utiliser un pointeur vers un fichier. Cela permet de garder le fichier accessible en lecture ou écriture une fois copié. ftp_fget() Permet de télécharger un fichier d un serveur FTP dans un fichier (ou plus généralement un stream) ouvert. $idconnexion $idfichier boolean ftp_fget(resource $idconnexion, resource $idfichier, string $fichierdistant, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Identifiant (obtenu par fopen()) du fichier à remplir. 1280

19 FTP $fichierdistant $mode $offset Nom du fichier distant à récupérer. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier distant du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être récupéré, FALSE sinon. ftp_fput() Permet de déposer le contenu d un fichier ouvert (ou plus généralement un stream) sur un serveur FTP. $idconnexion $fichierdistant $idfichier $mode $offset boolean ftp_fput(resource $idconnexion, string $fichierdistant, resource $idfichier, int $mode [, int $offset]) Identifiant de connexion obtenu par ftp_connect(). Nom qu aura le fichier sur le serveur FTP. Identifiant (obtenu par fopen()) du fichier à copier. FTP_ASCII (pour les fichiers textes) ou FTP_BINARY (pour les fichiers binaires). Position dans le fichier local du premier octet à transférer. (Paramètre ajouté depuis PHP 4.3.0) TRUE si le fichier a pu être mis sur le serveur FTP, FALSE sinon. Exemple d application Les fonctions vues jusque-là sont les fonctions les plus couramment utilisées, et nous permettent de réaliser un script de client FTP. Dans le script présenté, l utilisateur pourra naviguer sur le compte FTP, ajouter des fichiers, en supprimer, en renommer, ajouter et supprimer des répertoires, uploader ou télécharger des fichiers. 1281

20 Chapitre 16 La gestion des Figure 16.2 : Client FTP en PHP Voici le script en question : Listing 16.2 : ftp.php <html> <head> <title>client FTP</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <center><font color="blue"><h1>client FTP 12.9</h1></font></center> <font color="red"> <?php // On augmente le temps de vie du script à 100 secondes set_time_limit(100); // Parametres de connexion $serveur = "ftp.monsite.com"; $utilisateur = "utilisateur"; $motdepasse = "motdepasse"; // Connexion au serveur FTP $connexion = ftp_connect($serveur) or die("serveur FTP inexistant"); // Identifiaction sur le serveur FTP ftp_login($connexion, $utilisateur, $motdepasse) or die("utilisateur inconnu ou mauvais mot de passe"); $repertoire = $_GET["repertoire"]!=""? $_GET["repertoire"] : "/"; 1282

21 FTP // Verifie si "effacer" est passé en parametre if ($_GET["effacer"]!="") { effacer($_get["effacer"], $repertoire); } // Verifie si "effacerrep" est passé en parametre if ($_GET["effacerrep"]!="") { effacerrep($_get["effacerrep"], $repertoire); } // Verifie si "telecharger" est passé en parametre if ($_GET["telecharger"]!="") { telecharger($_get["telecharger"], $repertoire); } // Verifie si "nouveaurep" est passé en parametre if ($_POST["nouveaurep"]!="") { nouveaurep($_post["nouveaurep"], $repertoire); } // Verifie si "ajouterfichier" est passé en parametre if ($_POST["ajouterfichier"]!="") { ajouterfichier($_post["ajouterfichier"], $repertoire); } // Verifie si "nouveaunom" est passe en parametre if ($_POST["nouveaunom"]!="") { nouveaunom($_post["nouveaunom"], $_POST["fichier"], $repertoire); }?> </font> <form method="post"> Nouveau Repertoire:<input type="text" name="nouveaurep" /><br /> <form> <form method="post"> Ajouter fichier:<input type="text" name="ajouterfichier" /> <font size="1">le chemin doit etre absolou ou relatif a l endroit ou est place ce script.</font><br /> <form> <?php // Changement de repertoire ftp_chdir($connexion, $repertoire); // Affichage du contenu du repertoire listerrepertoire($repertoire); ftp_close($connexion);?> </body> </html> <?php function listerrepertoire($repertoire) { global $connexion; echo "<h2><font color=\"green\">".$repertoire."</font></h2>\n"; // Affichage du lien vers le repertoire superieur if ($repertoire!="/") { echo "<a href=\"ftp1.php?repertoire=". 1283

22 Chapitre 16 La gestion des substr(substr($repertoire, 0, -1), 0, 1+strrpos(substr($repertoire, 0, -1), "/"))."\"> <h2><font color=\"green\">". substr(substr($repertoire, 0, -1), 0, 1+strrpos(substr($repertoire, 0, -1), "/")). "</font></h2></a>\n"; } // Recuperation de la liste des fichiers $liste = ftp_rawlist($connexion, $repertoire); echo "<table>"; foreach($liste as $fichier) { echo "<tr>"; if (substr($fichier,0,1)=="d") { echo "<td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire". substr($fichier,56)."/\">". "<b>".substr($fichier,56)."/</b></a><br />\n"; echo "</td><td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&effacerrep=". substr($fichier,56)."\">effacer ce repertoire</a><br />\n"; } else { echo "<td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&telecharger=". substr($fichier,56)."\"><b>".substr($fichier,56)."</b>\n"; echo "</td><td>"; echo "<a href=\"ftp1.php?repertoire=$repertoire&effacer=". substr($fichier,56)."\">effacer</a><br />\n"; echo "</td>"; echo "</tr><tr><td> </td><td>"; echo "<form method=\"post\">". "<input type=\"hidden\" name=\"fichier\" value=\"$repertoire\"".substr($fichier,56)."\"/> <input type=\"text\" name=\"nouveaunom\" /> <input type=\"submit\" value=\"renommer\"/></form>"; echo "</td>"; } echo "</tr>"; } echo "</table>"; } // Efface un fichier function effacer($fichier, $repertoire) { global $connexion; if $repertoire.$fichier)) echo "Le fichier $fichier a ete supprime"; else echo "Impossible d effacer le fichier $fichier"; } // Efface un repertoire vide function effacerrep($fichier, $repertoire) { global $connexion; 1284

23 FTP } if $repertoire.$fichier)) echo "Le repertoire $fichier a ete supprime"; else echo "Impossible d effacer le repertoire $fichier assurez vous "."qu il est vide"; // Telecharge un fichier depuis le site FTP function telecharger($fichier, $repertoire) { global $connexion; if $fichier, $repertoire.$fichier, FTP_BINARY)) echo "Le fichier $fichier devrait etre telecharge dans le repertoire". " ou se trouve ce script"; else echo "Impossible d ouvrir le fichier $fichier"; } // Cree un repertoire function nouveaurep($fichier, $repertoire) { global $connexion; if $repertoire.$fichier)) echo "Le nouveau repertoire $fichier a ete cree"; else echo "Impossible de creer le repertoire $fichier"; } // Renomme un fichier function nouveaunom($nouveaunom, $fichier, $repertoire) { global $connexion; if $fichier, $repertoire.$nouveaunom)) echo "Le fichier $fichier a ete renomme"; else echo "Impossible de renommer $fichier"; } // Ajoute un fichier function ajouterfichier($fichier, $repertoire) { global $connexion; $nomfichier = (strrchr($fichier, "/"))? $repertoire.substr(strrchr($fichier, "/"), 1) : $repertoire.$fichier; if $nomfichier, $fichier, $FTP_BINARY)) echo "Le fichier $fichier a ete ajoute"; else echo "Impossible d ajouter $fichier"; }?> 1285

24 Chapitre 16 La gestion des Transfert de fichiers en mode asynchrone Les fonctions ftp_put(), ftp_get(), ftp_fput() et ftp_fget() sont des fonctions synchrones. C est à dire que lorsque le script PHP traite ces fonctions il ne fait plus rien d autre en attendant le transfert complet des données. Depuis, PHP 4.3.0, ces fonctions ont leur équivalent en mode asynchrone. Il s agit des fonctions ftp_nb_put(), ftp_nb_get(), ftp_nb_fput(), ftp_nb_fget(). Leur syntaxe est tout à fait identique si ce n est qu elles ne nent pas un booléen mais un entier dont les valeurs possibles sont les mêmes que celles nées par la fonction décrite ci-après. Une fois lancées, ces fonctions transfèrent bien les fichiers mais le script, lui, continue pour traiter les instructions suivantes. Pour savoir si la précédente opération est terminée vous devrez faire appel à la fonction ftp_nb_continue(). ftp_nb_continue Teste si la dernière opération FTP asynchrone lancée est terminée ou non. : int ftp_nb_continue(resource $idconnexion) $idconnexion Identifiant de connexion obtenu par ftp_connect(). FTP_MOREDATA si le transfert est en cours, FTP_FINISHED s il est terminé ou FTP_FAILED s il a échoué. Autres fonctions ftp_exec() Permet d exécuter une commande sur le serveur FTP si celui-ci l autorise. boolean ftp_exec(resource $idconnexion, string $commande) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $commande Commande à exécuter sur le serveur. TRUE en cas de succès, FALSE sinon. ftp_site() Envoie une commande à un serveur FTP de type SITE xxxx. boolean ftp_site(resource $IdConnexion, string $commande) $idconnexion Identifiant de connexion obtenu par ftp_connect(). $commande Commande à exécuter. TRUE en cas de succès, FALSE sinon. 1286

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40

Services Web WSDL. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web WSDL p.1/40 Services Web WSDL Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web WSDL p.1/40 Plan du cours WSDL 1. Présentation 2. Structure générale 3. Les types 4. Les messages

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

Application distribuée via HTTP Mise en œuvre minimale...

Application distribuée via HTTP Mise en œuvre minimale... Module RX : distrib/http Application distribuée via HTTP Mise en œuvre minimale... Problème de la distribution Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

PHP/MySQL. École Nationale Supérieure des Mines de Nancy 2nde Année

PHP/MySQL. École Nationale Supérieure des Mines de Nancy 2nde Année Bases de Données et Ingénierie des Systèmes d Information 1 PHP/MySQL École Nationale Supérieure des Mines de Nancy 2nde Année Table des matières I PHP 2 1 Les bases 2 1.1 Introduction........................................

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 2 Applications Web Dynamiques Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 42 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 42 Chapitre 8 Développement d applications Web Amélie Lambert 2014-2015 2 / 42 Plan du cours Typologie des applications Web Architecture

Plus en détail

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. Tuyêt Trâm DANG NGOC Service Web 1 / 12

Service Web. Cours de Réseaux. Tuyêt Trâm DANG NGOC 2012-2013. Université de Cergy-Pontoise. <dntt@u-cergy.fr> Tuyêt Trâm DANG NGOC Service Web 1 / 12 Service Web Cours de Réseaux Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012-2013 Tuyêt Trâm DANG NGOC Service Web 1 / 12 Plan 1 Le Web 2 HTTP 3 FTP 4 URL Tuyêt Trâm DANG NGOC

Plus en détail

Programmation du Web : Présentation du protocole HTTP

Programmation du Web : Présentation du protocole HTTP Programmation du Web : Présentation du protocole HTTP Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-14 Présentation générale Le

Plus en détail

BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX

BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX BLANCHON Enzo et GRIMAUD Bastien INSTALLATION LOGICIEL SOUS LINUX Sommaire Installation depuis un dépôt (P 3-4) 1 Qu est-ce que c est un dépôt? (P 3) 2 Procédure d installation (P 3-4) 1 Rendre accessible

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1

DOCUMENTATION MISE A JOUR ANTIBIOGARDE. V4.0 en v4.1 DOCUMENTATION MISE A JOUR ANTIBIOGARDE V4.0 en v4.1 Version d Antibiogarde 4.1 Version du document 1.0 Date dernière mise à jour du document 15/06/2010 Retrouvez cette doc à jour sur : http://www.antibiogarde.org/activation/

Plus en détail

Serveur DNS. Julien Danjou jdanjou@linuxenrezo.org

Serveur DNS. Julien Danjou jdanjou@linuxenrezo.org Serveur DNS Julien Danjou jdanjou@linuxenrezo.org Pour convertir les noms d ordinateurs en adresses IP, la méthode la plus simple consiste à tenir à jour un fichier hosts contenant les adresses IP suivies

Plus en détail

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86

Plan du travail. 2014/2015 Cours TIC - 1ère année MI 86 Plan du travail Chapitre 1: Internet et le Web Chapitre 2: Principes d Internet Chapitre 3 : Principaux services d Internet Chapitre 4 : Introduction au langage HTML 2014/2015 Cours TIC - 1ère année MI

Plus en détail

Que désigne l'url donnée au navigateur?

Que désigne l'url donnée au navigateur? Que désigne l'url donnée au navigateur? http://www-poleia.lip6.fr/~jfp/istm/tp6/index.html Le protocole : pourquoi? Parce que la manière d'indiquer une adresse dépend du service postal utilisé... Le serveur

Plus en détail

WebFTP Un client Web sécurisé pour FTP

WebFTP Un client Web sécurisé pour FTP WebFTP Un client Web sécurisé pour FTP Jirung Albert SHIH, Shih@math.Jussieu.fr Université Paris 7 JRES 2001 Introduction Nous allons dans ce document présenter une solution mise en œuvre sur le réseau

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom

Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Master 2 MIAGE NTDP Nom : Le Prof! UE «Web Services et SOA», Prénom Epreuve écrite individuelle 8 Décembre 2008, durée 45 mns Aucun document autorisé => Finalement, autorisés et semble-t-il utiles!!...

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

HTTP et le Web. 2010 Pearson France Perl moderne Sébastien Aperghis-Tramoni, Damien Krotkine, Jérôme Quelin

HTTP et le Web. 2010 Pearson France Perl moderne Sébastien Aperghis-Tramoni, Damien Krotkine, Jérôme Quelin 21 HTTP, le protocole de transfert à la base du Web est devenu omniprésent. Parce qu il est le seul protocole dont il est quasi certain qu il passera à travers les proxies et les firewalls, celui-ci est

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

Bases de données et Sites Web. Li345

Bases de données et Sites Web. Li345 Bases de données et Sites Web. Li345 Remerciements à: Stéphane Gançarski et Philippe Rigaux. Ces transparents sont fortement inspirés du très bon livre : Pratique de MySQL et PHP, troisième édition Philippe

Plus en détail

Projet réseau : un «petit» client ftp

Projet réseau : un «petit» client ftp Projet 2005-2006 Client FTP Manuel Technique Projet réseau : un «petit» client ftp Maquaire Myriam Jilibert Laurent L3 GMI Resp : Mr Guesnet Sommaire 1) Aperçu du protocole FTP. 3 2) Historique... 4 3)

Plus en détail

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC. Qui contacter pour commencer la mise en place d une configuration de test? Les solutions de paiement CyberMUT (Crédit Mutuel) et P@iement CIC Qui contacter pour commencer la mise en place d une configuration de test? CyberMUT Paiement - Paiement CIC Commerce Electronique mailto:centrecom@e-i.com

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL)

Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Sécurité en ingénierie du Logiciel Le cadre des Web Services Partie 9 : Introduction à Web Services Definition Language (WSDL) Alexandre Dulaunoy adulau@foo.be Sécurité en ingénierie du Logiciel p.1/16

Plus en détail

Aide Utilisateur. Cellpass.fr

Aide Utilisateur. Cellpass.fr Aide Utilisateur Mise en place simple :... 2 Création d une ressource... 2 Installation du module... 5 Test fonction file OK... 7 temps de connexion < 1 seconde(s)... 7 Exemple d'installation PassUp pour

Plus en détail

Architecture client/serveur

Architecture client/serveur Architecture client/serveur Table des matières 1. Principe du client/serveur...2 2. Communication client/serveur...3 2.1. Avantages...3 2.2. Inconvénients...3 3. HTTP (HyperText Transfer Protocol)...3

Plus en détail

A6 - HTTP ESIROI 2014-2015

A6 - HTTP ESIROI 2014-2015 A6 - HTTP ESIROI 2014-2015 HTTP HyperText Transfer Protocol Protocole synchrone 3 version : HTTP/0.9 (obsolète) HTTP/1.0 (rare) HTTP/1.1 HTTP - fonctionnement Requête Réponse Icones : http://www.visualpharm.com/

Plus en détail

Comprendre et programmer le protocole HTTP

Comprendre et programmer le protocole HTTP Comprendre et programmer le protocole HTTP Ces quatre lettres vous sont forcément familières, c est peut être la suite de lettres la plus utilisée au monde. Chaque jour en tapant http:// dans votre navigateur

Plus en détail

TP DE PROGRAMMATION RESEAU : LES SOCKETS

TP DE PROGRAMMATION RESEAU : LES SOCKETS - ENSEIRB - TP DE PROGRAMMATION RESEAU : LES SOCKETS Patrice KADIONIK - 1/11- TABLE DES MATIERES www.enseirb.fr/~kadionik 1. BUT DES TRAVAUX PRATIQUES...3 2. SEANCE 1 : UTILISATION DES COMMANDES UNIX/LINUX

Plus en détail

Procédure d installation. du serveur Big Brother 1.9c. sous Linux

Procédure d installation. du serveur Big Brother 1.9c. sous Linux CHAMBREUIL Maxime Procédure d installation du serveur Big Brother 1.9c sous Linux Juillet / Août 2002 I. Installation Voici les pré-conditions de l installation du serveur BB sous Linux : Vous devez connaître

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript

AJAX AJAX. Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript AJAX Ajax 1 AJAX Asynchronous JavaScript And XML. Technologie pour créer des pages web interactives Basées sur XML, HTML et JavaScript Utilise: HTML pour le marquage XML pour représenter les résultats

Plus en détail

Web et présentation d information spatiale

Web et présentation d information spatiale Université de La Rochelle LUP-SIG 2004-2005 Programmation SIG et Internet Cartographique Web et présentation d information spatiale Moteurs de recherche et formulaires HTML Jean-Michel FOLLIN jmfollin@univ-lr.fr

Plus en détail

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2

SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 SUGARCRM Sugar Open Source Guide d Installation de French SugarCRM Open Source Version 4.2 Version 1.0.5 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068 HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource

Plus en détail

Introduction ASP.NET

Introduction ASP.NET 1 Sommaire Introduction... 1 1 Framework... 2 1.1 Général (.NET)... 2 1.2 ASP.NET... 2 2 Prérequis... 2 3 Présentation des bases d un projet ASP.NET... 3 3.1 Création d un projet... 3 3.2 Site Web : Les

Plus en détail

1.1 Remote Procedure Call (RPC)

1.1 Remote Procedure Call (RPC) 1.1 Remote Procedure Call (RPC) Le modèle Client-Serveur est un modèle simple à utiliser pour la structuration des systèmes répartis. Mais ce modèle s appuie sur des communications de type entrée/sortie

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

Plus en détail

Réseaux. 1 Généralités. E. Jeandel

Réseaux. 1 Généralités. E. Jeandel 1 Généralités Réseaux Couche Application E. Jeandel Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

Réseaux. Couche Application. E. Jeandel

Réseaux. Couche Application. E. Jeandel Réseaux Couche Application E. Jeandel 1 Généralités Couche application Dernière couche du modèle OSI et TCP/IP Échange de messages entre processus Protocole Un protocole de niveau application doit spécifier

Plus en détail

TD3 : PHP «avancé» V2.4.0

TD3 : PHP «avancé» V2.4.0 TD3 : PHP «avancé» V2.4.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document

Plus en détail

Réseaux. Couche Application. E. Jeandel. Emmanuel.Jeandel at lif.univ-mrs.fr. E. Jeandel, Lif Réseaux, Couche Application 1/12

Réseaux. Couche Application. E. Jeandel. Emmanuel.Jeandel at lif.univ-mrs.fr. E. Jeandel, Lif Réseaux, Couche Application 1/12 Réseaux Couche Application E. Jeandel Emmanuel.Jeandel at lif.univ-mrs.fr E. Jeandel, Lif Réseaux, Couche Application 1/12 Contenu 1 Généralités E. Jeandel, Lif Réseaux, Couche Application 2/12 Couche

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

Langages du Web. Que savez vous???

Langages du Web. Que savez vous??? Langages du Web Que savez vous??? Le WEB World Wide Web ouwww ouweb Toile d'araignée mondiale ou la toile Le Web utilise le réseau Internet pour relier des serveurs qui, grâce aux protocoles HTTP, HTTPS,

Plus en détail

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

Plus en détail

Installer Joomla. Étape 1 : choix de la langue d installation

Installer Joomla. Étape 1 : choix de la langue d installation CHAPITRE 4 Installer Joomla L installation de Joomla se déroule en sept étapes : 1. choix de la langue d installation ; 2. vérification des prérequis ; 3. présentation de la licence publique générale GNU

Plus en détail

Guide administrateur AMSP

Guide administrateur AMSP Guide administrateur AMSP Alinto Version Auteur Date Remarque V1.0 Nicolas Polin 19/10/2015 - Lyon Paris Köln Madrid Table des matières 1. Introduction... 3 2. Se connecter à Factory... 3 3. Gestion des

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Sujet Projets 2 nd Semestre

Sujet Projets 2 nd Semestre Sujet Projets 2 nd Semestre Seuls les appels systèmes vus en cours sont autorisés. L usage d autres fonctions doit impérativement être validé par l enseignant. La date d ouverture pour l assignation de

Plus en détail

PHP. virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/pwb. Internet et HTML

PHP. virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/pwb. Internet et HTML PHP virginie.sans@irisa.fr http://perso.univ-rennes1.fr/virginie.sans/ BUR Internet et HTML PHP, qu'est-ce que c'est? Un langage pour la programmation du serveur Permet d'inclure des parties programmées

Plus en détail

Définition des Webservices Systempay. Version 1.2c

Définition des Webservices Systempay. Version 1.2c Définition des Webservices Systempay Version 1.2c Historique du document Version Auteur Date Commentaires 1.2c Lyra-Network 06/12/2013 1.2b Lyra-Network 10/07/2013 1.2a Lyra-Network 03/05/2012 Modification

Plus en détail

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau.

Introduction XML-RPC SOAP Approche REST. Programmation WEB. Services Web en php. Programmation licence. IUT de Fontainebleau. Services Web en php IUT de Fontainebleau 15 mars 2014 1 Introduction 2 3 4 1 Introduction 2 3 4 Introduction De plus en plus de sites mettent à disposition des données, et leurs gestions, des fonctionnalités

Plus en détail

Installation / Sauvegarde Restauration / Mise à jour

Installation / Sauvegarde Restauration / Mise à jour Installation / Sauvegarde Restauration / Mise à jour SPIP version 1.8.x Serveur (Linux) Jean Sébastien BARBOTEU dev.jsb@laposte.net Introduction Nous allons aborder tous les aspects techniques liés à la

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Système UNIX et Langages de scripts

Système UNIX et Langages de scripts Système UNIX et Langages de scripts Projet Les deux sujets sont à faire, en binôme! 1 Bash : Gestion d une bibliothèque numérique L objectif est de gérer une bibliothèque numérique (un ensemble de livres

Plus en détail

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5

Le service FTP. M.BOUABID, 04-2015 Page 1 sur 5 Le service FTP 1) Présentation du protocole FTP Le File Transfer Protocol (protocole de transfert de fichiers), ou FTP, est un protocole de communication destiné à l échange informatique de fichiers sur

Plus en détail

ultisites S.A. module «services»

ultisites S.A. module «services» M ultisites S.A. module «services» TP N 3 : Installation du serveur WEB Nom : Prénom : Classe : Date : Appréciation : Note : Objectif : Être capable d'installer le serveur WEB, et de créer une page HTML

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP Web et SGBD : un exemple avec IUT de Fontainebleau 8 mars 2014 1 2 Modèle relationnel 3 4 listes des fonctions mysqli 1 2 Modèle relationnel 3 4 listes des fonctions mysqli Problématique Sites dynamiques

Plus en détail

Sous Windows 2000 Server

Sous Windows 2000 Server Sous Windows 2000 Server Installer un serveur DNS : Avant de pouvoir configurer un nom de domaine sur un serveur DNS; il convient tout d abord d installer ce dernier. L installation d un serveur DNS Windows

Plus en détail

Headers, cookies et sessions

Headers, cookies et sessions Headers, cookies et sessions Chargement de fichiers (upload) Entêtes HTTP et redirections Gestion des cookies et des sessions de connexions Authentification Validation des données Programmation avancée

Plus en détail

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr Sécurite Web Xavier Tannier xavier.tannier@limsi.fr Yann Jacob yann.jacob@lip6.fr Généralités 80 % des sites contiennent au moins une faille de sécurité 24 familles de failles différentes : on ne présente

Plus en détail

Programmation Avancée pour le Web

Programmation Avancée pour le Web L3 Informatique Option : ISIL Programmation Avancée pour le Web RAMDANI Med U Bouira 1 Contenu du module Introduction aux applications Web Rappels sur les sites Web Conception d une application Web Notion

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

Plus en détail

Applications Réparties. Département Sciences Informatiques SI 4 ème année

Applications Réparties. Département Sciences Informatiques SI 4 ème année Applications Réparties Département Sciences Informatiques SI 4 ème année 1 Applications Réparties? Ensemble de processus (objets, agents, acteurs) qui: Communiquent entre eux via un réseau Evoluent de

Plus en détail

Utilisation de ports différents Utilisation de plusieurs adresses IP Utilisation de «host header»

Utilisation de ports différents Utilisation de plusieurs adresses IP Utilisation de «host header» Les sites multiples Utilisation de ports différents Utilisation de plusieurs adresses IP Utilisation de «host header» L exploration de dossier (directory browsing) Dossiers réguliers (folders) vs dossiers

Plus en détail

Le client/serveur dans le cas du Web

Le client/serveur dans le cas du Web Le client/serveur dans le cas du Web Olivier Flauzac & Cyril Rabat olivier.flauzac@univ-reims.fr cyril.rabat@univ-reims.fr Licence 3 Info - Info0503 - Introduction à la programmation client/serveur 2015-2016

Plus en détail

Client FTP NJ Guillaume Poirier Juillet 2014

Client FTP NJ Guillaume Poirier Juillet 2014 Client FTP NJ Guillaume Poirier Juillet 2014 Sommaire Installation de FileZilla Server Démarrage du service Démarrage de l interface Création d un utilisateur Blocs Fonctions NJ Programme NJ Installation

Plus en détail

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1

DESS TEXTE. Outils informatiques 5. HTML et le protocole HTTP p.1 Outils informatiques 5. HTML et le protocole HTTP DESS TEXTE Outils informatiques 5. HTML et le protocole HTTP p.1 Introduction But du cours : récupérer automatiquement des données accessibles sur le web

Plus en détail

Architecture applicative de l application Web

Architecture applicative de l application Web Architecture applicative de l application Web Principes d organisation de l application PHP Gsb-AppliFrais Les principes d'organisation de l'application s'inspirent des travaux réalisés autour du contexte

Plus en détail

Gestion d identités PSL Installation LdapSaisie

Gestion d identités PSL Installation LdapSaisie Gestion d identités PSL Installation LdapSaisie Entr ouvert SCOP http ://www.entrouvert.com 10 mars 2015 Table des matières 1 Installation du système de base 1 2 Installation du composant LdapSaisie 1

Plus en détail

Étude de l application DNS (Domain Name System)

Étude de l application DNS (Domain Name System) Étude de l application DNS (Domain Name System) RICM 4 - Option Réseaux Pascal Sicard Introduction Le but de ce TP est de comprendre l utilisation et le fonctionnement de l application réseau DNS (Domain

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL

NVU, Notepad++ (ou le bloc-note), MySQL, PhpMyAdmin. HTML, PHP, cas d utilisation, maquettage, programmation connaissances en HTML, PHP et SQL Prise en main de NVU et Notepad++ (conception d application web avec PHP et MySql) Propriétés Intitulé long Formation concernée Matière Présentation Description Conception de pages web dynamiques à l aide

Plus en détail

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26

Services Web. Fabrice Rossi. http://apiacoa.org/contact.html. Université Paris-IX Dauphine. Services Web p.1/26 Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

Services Web. Plan du cours

Services Web. Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine Services Web p.1/26 Plan du cours 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/

Plus en détail

IUT Montpellier - Architecture (DU)

IUT Montpellier - Architecture (DU) IUT Montpellier - Architecture (DU) V. Poupet Cours n o 5 : Hypertext Transfer Protocol (HTTP) 1 Le protocole HTTP Lorsqu un utilisateur (client) veut obtenir une page web, il s adresse à un serveur web.

Plus en détail

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI

Plan du cours. Services Web. Un service web? Plan de l introduction. 1. Introduction 2. SOAP 3. WSDL 4. UDDI Plan du cours Services Web Fabrice Rossi http://apiacoa.org/contact.html. Université Paris-IX Dauphine 1. Introduction 2. SOAP 3. WSDL 4. UDDI Site du cours : http://apiacoa.org/teaching/webservices/ Services

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

Plus en détail

Module: Programmation sites Web Dynamique

Module: Programmation sites Web Dynamique Module: Programmation sites Web Dynamique Formateur: A BENDAOUD LEÇON : MÉTHODES DE NAVIGATION Les différentes méthodes de navigation : Voici les différentes méthodes que nous allons expliciter dans cette

Plus en détail

Le langage php. Serveur http est automatiquement lancé.

Le langage php. Serveur http est automatiquement lancé. Le langage php 1. Introduction aux langages serveurs : Il y a deux modes d exécution d une page HTML : Local : en cliquant sur le fichier, le navigateur Serveur http est automatiquement lancé. Navigateur

Plus en détail

Programmation Android TP7 - WebServices

Programmation Android TP7 - WebServices 1. WebService Dans le TP6, les avis étaient stockés dans une base SQL. Cette semaine les n-uplets sont stockés sur une base de données externe gérée par un serveur HTTP sur lequel tournent des scripts

Plus en détail

Application Web et J2EE

Application Web et J2EE Application Web et J2EE Servlet, JSP, Persistence, Méthodologie Pierre Gambarotto Département Informatique et Math appli ENSEEIHT Plan Introduction 1 Introduction Objectfis

Plus en détail

Plateforme PAYZEN. Définition de Web-services

Plateforme PAYZEN. Définition de Web-services Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network

Plus en détail

Architectures et Web

Architectures et Web Architectures et Web Niveaux d'abstraction d'une application En règle générale, une application est découpée en 3 niveaux d'abstraction : La couche présentation ou IHM (Interface Homme/Machine) gère les

Plus en détail

Le serveur X2Go. Procédure

Le serveur X2Go. Procédure Le serveur X2Go Les sessions X2Go sont destinées à permettre à l utilisateur d avoir son propre environnement dérivé d une plateforme commune sans cesse maintenue et renouvelée. Présentation : Lorsque

Plus en détail

Bind, le serveur de noms sous Linux

Bind, le serveur de noms sous Linux Bind, le serveur de noms sous Linux 1. Principes de fonctionnement d'un serveur de noms La résolution des noms d'hôtes sur les réseaux tcp/ip est fondée sur le principe d'une répartition de la base des

Plus en détail

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

COMPTE RENDU D ACTIVITE ACTIVITE N 4. Identification (objectif) de l'activité. Contexte dans lequel le projet s'inscrit

COMPTE RENDU D ACTIVITE ACTIVITE N 4. Identification (objectif) de l'activité. Contexte dans lequel le projet s'inscrit BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux Développeur d applications COMPTE RENDU D ACTIVITE ACTIVITE N 4 Nom et Prénom : BUISSON Pierre-Adrien EPSI Lyon 107 rue de Marseille 69 007

Plus en détail

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Manuel d intégration API SOAP SMS ALLMYSMS.COM Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...

Plus en détail

Programmation Web en PHP. Structures de base

Programmation Web en PHP. Structures de base Programmation Web en PHP Structures de base 1 Introduction Définition Personal Home Page ou (Hypertext PreProcessor) Un langage de scripts évolué pour la conception de sites entiers : s intègre à HTML

Plus en détail