proxy et firewall avec SyScript
en cas de problème d'affichage des fichiers de type ".spg" vous devez installer le plugin
tester un exemple simple ici : à partir d'une page web documentation
|
|
L'avantage d'utiliser un serveur http est de faire des requêtes à travers les firewalls Si vous faites des requêtes par script directement sur l'adresse "http://web_path/script.spg, il y a un risque que cette requête soit bloquée par le firewall qui interdira l'exécution d'un type de fichier inconnus. Dans le même cas, si le script réalise une requête sur le port 3306, par exemple le firewall bloquera la requête sur ce port non autorisé Quand vous utilisez un serveur, vous utilisez des ports de communication connus, comme 80, et vous faites des requêtes à travers ces ports par internet. SyScript utilise les syntaxes standard du web pour les requêtes serveur : http://chemin_web/script.spg?param=value Pour exécuter des requêtes à distance sur les bases de données ou les serveurs, regardez SyScript http server |
|
|
|
Pour executer un script à partir du serveur, il y a plusieurs possibilités : - à partir d'un navigateur standard - à partir d'un script SyScript Le script à exécuter par le serveur envoie au client le code à exécuter ou la page à afficher. Le code envoyé au client est exécuter en mémoire, pas d'accès disque, ou d'écriture. - à partir d'un navigateur, vous pouvez tester l'exemple founi dans le fichier "http_server.zip", avec l'adresse suivante : http://server_pcname/script1.spg? or http://server_pcname/script2.spg? - à partir d'un script (le serveur local est sur mon ordinateur) CALL http://server_pcname/script1.spg? ou RUN %APP% http://server_pcname/script1.spg? ou à partir d'un site web "www" (Le serveur est sur internet) pour exécuter le même exemple avec des paramètres modifiés : http://server_pcname/script1.spg?param1=var1¶m2=var2 Cette écriture est une écrire web standard Tester ici un exemple en ligne : http://www.sysdesk.com/launch_heart.spg? cliquer ici pour découvrir le code source du test : heart.spt |
|
|
|
Tous les résultats des requètes MYSQLQUERY sont stockés dans un tableau appelé MYSQLQUERY cliquez ici pour voir le code source du coeur |
|
|
|
Certains caractères ont besoin d'être protégés afin que la commande fonctionne correctement Cela peut-être réalisé avec la commande MYSQLESCAPE, qui transforme correctement les chaînes de caractères par exemple, ici, le caractère spécial à protéger est QUOTE (') MYSQLESCAPE l'esprit et le vin SET MAVARIABLE=%MYSQLESCAPE% MYSQLQUERY SELECT * FROM MaTable WHERE FIELD='%MAVARIABLE%' Il est aussi possible de modifier des caractères spéciaux facilement avec le mot spécial ".MY$" Regardez ici un exemple : MYSQLQUERY SELECT * FROM MaTable WHERE FIELD='%MAVARIABLE.MY$%' |
|
|
|
Il est possible de stocker des données en mode binaire dans la base de données, par exemple, nous pouvons stocker des plugins SyScript comme les fichiers ".spg". Certains caractêres spéciaux ont besoins d'être protégés pour que la requête fonctionne correctement La commande BINGET permet de lire un fichier binaire La commande VARPROTECT est utilisée pour protéger les caractéres contre n'importe quelles conversions non désirées La commande MYSQL UPDATE permet de mettre à jour des données existantes exemple : BINGET PATH\file.spg VARPROTECT # MYSQLQUERY INSERT INTO `BASENAME`.`TABLENAME`(`id`,`pathname`,`filename`,`file`,`size`) VALUES ('%ID%','%PATHNAME.MY$%','%FILENAME.MY$%','#BINGET.MY$#','%NBINGET%') |
|
Les requêtes de base de données peuvent être réalisées à travers un server web (voir serveur http). Pour demander à SyScript d'exécuter une requête à travers un serveur http, vous avez juste besoin d'initialiser la commande suivante : MYSQLBYHTTP ON,SERVERNAME:PORT_NUMBER ex : MYSQLBYHTTP ON,MYSERVER:80 Toutes les commandes MYSQLQUERY ne seront plus exécutées directement par le script mais demandées au serveur d'être exécutées à travers internet Le serveur aura la charge d'envoyer la requête à la base de données internet à travers le réseau Les résultats de la requête seront automatiquement envoyés au client dans le tableau MYSQLQUERY L'avantage principal de cette méthode est de traverser les PROXY et les FIREWALLS voir SyScript http server |
