- Server phone androïd, - Console de programmation du matériel phone androïd (webcam, GPS, etc.)

Documents pareils
DOM - Document Object Model

CREATION WEB DYNAMIQUE

TP JAVASCRIPT OMI4 TP5 SRC

PHP et les Bases de données - Généralités

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

PHP 5. La base de données MySql. A. Belaïd 1

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Mysql avec EasyPhp. 1 er mars 2006

Pratique et administration des systèmes

Stockage du fichier dans une table mysql:

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

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

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Introduction. Passage de sites statiques à des sites dynamiques

Les BASES de DONNEES dans WampServer

Séance d ED n 5 : HTML et JavaScript

SYSTÈMES D INFORMATIONS

Programmation Web. Madalina Croitoru IUT Montpellier

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Gestion du cache dans les applications ASP.NET

Extended communication server 4.1 : VoIP SIP service- Administration

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Démonstration de la mise en cache via HTML 5 sur iphone

PDO : PHP Data Object 1/13

STID 2ème année : TP Web/PHP

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Olivier Mondet

1. Base de données SQLite

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Module BD et sites WEB

Attaques applicatives

Cours Bases de données 2ème année IUT

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

CREATION d UN SITE WEB (INTRODUCTION)

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des applications web. Daniel Boteanu

Classe ClInfoCGI. Fonctions membres principales. Gestion des erreurs

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Modélisation et Gestion des bases de données avec mysql workbench

OpenPaaS Le réseau social d'entreprise

PHP 4 PARTIE : BASE DE DONNEES

I. MySQL : Serveur et SGBD

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

Attaques de type. Brandon Petty

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Mysql. Les requêtes préparées Prepared statements

HTML. Notions générales

Bases de données et fournisseurs de contenu

Le stockage local de données en HTML5

PLUGINS Guide du Développeur STEPHANE FERRARI. P l u X m l 5.4

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

TD HTML AVEC CORRECTION

Web statique : client-serveur. PHP/MySQL: Sites dynamiques Formulaires et bases de données. Discussion HTTP. Caractéristiques du HTTP

Installation d'un serveur FTP géré par une base de données MySQL

Proxies,, Caches & CDNs

Mise en place d un serveur Proxy sous Ubuntu / Debian

Formulaire pour envoyer un mail

PHP. PHP et bases de données

Programmation Internet Cours 4

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Optimiser pour les appareils mobiles

Bases de Données et Internet

RÉALISATION D UN SITE DE RENCONTRE

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

SQL Historique

Présentation Windows Azure Hadoop Big Data - BI

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

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Document Object Model (DOM)

VXPERT SYSTEMES. CITRIX NETSCALER 10.1 et SMS PASSCODE 6.2. Guide d installation et de configuration pour Xenapp 6.5 avec SMS PASSCODE 6.

Présentation du langage et premières fonctions

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Gestion de stock pour un magasin

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Module : programmation site Web dynamique Naviguer entre les pages via site map

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

1 Position du problème

Panel des technologies Web

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Guide d interfaçage SSO Connexion des ressources aux plates-formes de type Corrélyce. Sommaire. Titre du document

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

les techniques d'extraction, les formulaires et intégration dans un site WEB

Encryptions, compression et partitionnement des données

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

équipement radio Procédure

Transcription:

Paw server Spécificité : - Server phone androïd, - Console de programmation du matériel phone androïd (webcam, GPS, etc.) Développement disponible (programmation) : - Beanshell (<bsh></bsh>) (type de fichier avec extension xhtml), - javascript (AJAX), - PHP (après installation plugin php), - Base de données SQL (sqlite) Procédures (Etapes à suivre): - Télécharger et installer le logiciel Paw server dans le téléphone Androïd Voir (logiciel/buildownpawserver.apk) - Télécharger et installer plugin PHP dans le téléphone Androïd Voir (logiciel/php_plugins) pour le plugin Voir (logiciel/php_demo_plugins) pour la démonstration PHP - Partager la connexion par wifi mobile - Mettre en œuvre l application web sur le server Paw Dossier racine du server pour le stockage des fichiers de mise en œuvre (xhtml, js, php, css): Stokage/Paw/html L application web est disponible à l adresse donnée par Paw server : 127.0.0.1 :8080, ou autre adresse ip pour le navigateur à distance : 192.186.1.43 :8080. Codes sources et Astuces: Exemple code beanshell : Afficher les informations caractéristiques du phone androïd. <bsh> String[] opts = "BOARD", "BRAND", "DISPLAY", "MODEL", "PRODUCT", "TIME", "TYPE", "USER", "VERSION.INCREMENTAL", "VERSION.RELEASE", "VERSION.SDK"; for(o : opts) print("<b>" + o + ":</b>" + eval("android.os.build." + o) + "<br>"); </bsh> Divers codes sources sont disponibles dans le dossier racine du server paw : Stokage/Paw/html/app Hery Haja Prod. Août 2016 PAW SERVER 1

Exemple code beanshell : Connecter la Base de données sqlite. <bsh> import android.content.context; service = server.props.get("servicecontext"); // Create database db = service.openorcreatedatabase("testdb", Context.MODE_WORLD_WRITEABLE, null); print("db location: " + service.getdatabasepath("testdb")); // Create table db.execsql("create TABLE IF NOT EXISTS information (id integer AUTO_INCREMENT PRIMARY KEY, nom varchar(100), info varchar(100))"); print("table information existe ou crée"); db.execsql("insert INTO information (nom, info) VALUES ('tafika', 'autre1')"); print("les valeurs sont insérées dans la table information "); // Lire les valeurs dans la table information selon les critères du sql. v="tafika"; c = db.rawquery("select information.nom, information.info FROM information GROUP BY information.nom, information.info HAVING (((information.nom)='" + v + "')) ORDER BY information.nom", null); firstnamecolumn = c.getcolumnindex("nom"); infocolumn = c.getcolumnindex("info"); c.movetofirst(); if (c!= null) if (c.isfirst()) int i = 0; do i++; firstname = c.getstring(firstnamecolumn); info = c.getstring(infocolumn); print(firstname + " - " + info); while(c.movetonext()); c.close(); print("pour vérification si tout se passe correctement"); </bsh> Code de suppression base de données sqlite : service.deletedatabase(«testdb ); Ce type de code est inspiré par le code Paw Server dans Stokage/Paw/html/app/codesnippets/Database.xhtml Hery Haja Prod. Août 2016 PAW SERVER 2

Voir (Codes sources/base de données /conn_sqlite.xhtml) Exemple code beanshell : Renvoyer une valeur d une zone de texte d un formulaire vers une autre page xhtml. Formulaire.xhtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>document sans nom</title> <form id="monform" name="form1" method="get" action="action_get.xhtml"> <p> <label>nom : <input type="text" name="nom" /> </label> </p> <p> <label> <input type="submit" name="bouton" value="envoyer" /> </label> </p> </form> action_get.xhtml <bsh> nom=parameters.get("nom"); print(nom); </bsh> </html Voir (Codes sources/ Renvoi/ BSH_simple/action_get.xhtml) Voir (Codes sources/ Renvoi/ BSH_simple/formulaire.xhtml) Hery Haja Prod. Août 2016 PAW SERVER 3

Exemple code beanshell : Récupérer une valeur instantanément d une zone de texte d un formulaire dans une page par AJAX (ajax.xhtml). Formulaire.xhtml <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>document sans nom</title> <script language="javascript"> function createrequestobject() var ro; var browser = navigator.appname; if(browser == "Microsoft Internet Explorer") ro = new ActiveXObject("Microsoft.XMLHTTP"); else ro = new XMLHttpRequest(); return ro; var http = createrequestobject(); function recuperer_nom() http.open('get', 'ajax.xhtml?nom='+document.form1.nom.value); http.onreadystatechange = handleresponse; http.send(null); function handleresponse() if(http.readystate == 4) var response = http.responsetext; var update = new Array(); if(response.indexof(' '!= -1)) update = response.split(' '); document.getelementbyid("contenu").innerhtml = update[0]; //alert(update[0]); </script> <form id="monform" name="form1" > <p> <label>nom : <input type="text" name="nom" onkeyup="recuperer_nom()"/> </label> </p> </form> <div id="contenu"></div> Hery Haja Prod. Août 2016 PAW SERVER 4

ajax.xhtml <bsh> nom=parameters.get("nom"); print(nom); </bsh> Voir (Codes sources/renvoi/bsh_ajax/ formulaire.xhtml) Voir (Codes sources/renvoi/bsh_ajax/ ajax.xhtml) Exemple code PHP pour paw server (attention vous devez taper le chemin complet du fichier PHP car paw server cache ce type de fichier dans son navigateur). php.php <bsh> <? Echo("bienvenu php") ; </bsh> Exemple code PHP : Récupérer une valeur instantanément d une zone de texte d un formulaire dans une page PHP par AJAX (ajax.php). Formulaire.php <!--doctype html --> <html lang="fr"> <body id="corps" > <script type='text/javascript'> function getxhr() var xhr = null; if(window.xmlhttprequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.activexobject) // Internet Explorer try xhr = new ActiveXObject("Msxml2.XMLHTTP"); catch (e) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else // XMLHttpRequest non supporté par le navigateur alert("votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; Hery Haja Prod. Août 2016 PAW SERVER 5

return xhr serveur est ok xhr.responsetext; function actualiser_menu() //alert("ok"); var xhr = getxhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() // On ne fait quelque chose que si on a tout reçu et que le if(xhr.readystate == 4 && xhr.status == 200) document.getelementbyid("contenu").innerhtml= //document.getelementbyid("titre").innerhtml= ""; xhr.open("post","ajax.php?menu="+document.form1.menu.value,true); xhr.send(null); </script> <form id="monform" name="form1"> <p> <label>nom : <input name="menu" type="text" onkeyup="actualiser_menu()"> </label> </p> </form> <div id="contenu"> </div> Ajax.php php $menu=$_get['menu']; echo($menu); Voir (Codes sources/renvoi/ php_ajax/ formulaire.xhtml) Voir (Codes sources/renvoi/ php_ajax/ ajax.xhtml) Hery Haja Prod. Août 2016 PAW SERVER 6

Exemple code PHP : Cookie et login page web. connecter.php (Formulaire de login) <!--doctype html --> // REINITIALISER COOKIE setcookie("user"); unset($_cookie['user']); <html lang="fr"> <body id="corps" > <a href=page_privee.php>essayer d'acceder page privee.</a> <br> <script type='text/javascript'> function getxhr() var xhr = null; if(window.xmlhttprequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.activexobject) // Internet Explorer try xhr = new ActiveXObject("Msxml2.XMLHTTP"); catch (e) xhr = new ActiveXObject("Microsoft.XMLHTTP"); else // XMLHttpRequest non supporté par le navigateur alert("votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; return xhr function envoyer_cookie() //alert("ok"); var xhr = getxhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readystate == 4 && xhr.status == 200) document.getelementbyid("contenu").innerhtml= xhr.responsetext; //document.getelementbyid("titre").innerhtml= ""; xhr.open("post","envcookie.php?user="+document.form1.user.value,true); xhr.send(null); Hery Haja Prod. Août 2016 PAW SERVER 7

</script> <div align="center"><form id="monform" name="form1" style="background-color:#cccccc"> <p> <label>mot de passe : <input name="user" type="password"> <input name="connecter" type="button" value="connecter" onclick="envoyer_cookie()"> </form> </div> <div id="contenu" align="center"> </div> envcookie.php (Ajax pour réception valeur mot de passe ) $user=$_get['user']; //echo($user); if ($user=="tafika") /// ON PEUT COLLECTER LES VALEURS DANS UNE BASE DE DONNEES $unan=365*24*60*60; setcookie("user", $user, time()+$unan); // 86400 = 1 day // AFFECTATION DE VALEUR COOKIE echo('<a href=page_privee.php style="color:#006600">actuelement la Page privee est disponible</a>'); // RESULTATS else echo('<b style="color:#ff0000">mot de passe invalide</b>'); // RESULTATS </HTML> page_privee.php (Page protégée mais accessible si la valeur cookie est exacte.) if (isset($_cookie['user']) and!empty($_cookie['user']) ) ok(); else no(); function ok() Hery Haja Prod. Août 2016 PAW SERVER 8

echo "Bienvenu ".$_COOKIE['user']; function no() header("location: connecter.php"); <br> <hr/> <div style="background-color:#cccccc" align="center"><a href=supcookie.php style="background:#ffff00">deconnexion</a></div> <hr/> Mettre ici le contenu de la page privee. supcookie.php (Remise à zéro la valeur cookie ou déconnexion de la page privée) if(isset($_cookie['user'])) setcookie("user"); unset($_cookie['user']); header("location:connecter.php"); Voir (Codes sources/cookie/ php_ajax/connecter.php) Voir (Codes sources/cookie/ php_ajax/envcookie.php) Voir (Codes sources/cookie/ php_ajax/page_privee.php) Voir (Codes sources/cookie/ php_ajax/supcookie.php) NB : RESPECTER BIEN LA BALISE <? (phone androïd pris en charge Paw server) AU LIEU DE <?php?php> (PC pris en charge wampserver) POUR CONTROLER L ERREUR DU PROGRAMME Même principe pour le cas de SESSION. Voir (Codes sources/session/login.php) Voir (Codes sources/cookie/pageprivee.php) Voir (Codes sources/cookie/suppsession.php) Hery Haja Prod. Août 2016 PAW SERVER 9

Exemple code PDO_PHP pour manipuler une base de données SQLITE dans PAW SERVER? // tester la disponibilité de sqlite. foreach (PDO::getAvailableDrivers() as $pro_driver) echo 'disponible: '.$pro_driver. ' '; try // Créer une base de donnée SQLite $db_handle = new PDO('sqlite:member.sqlite'); // Quelques options $db_handle->setattribute(pdo::attr_errmode, PDO::ERRMODE_EXCEPTION); catch (Exception $e) die('erreur : '.$e->getmessage()); // creer table $results = $db_handle->exec("create TABLE if not exists matable (ID INTEGER PRIMARY KEY, champ1 INTEGER, champ2 TEXT);"); /// inserer donnees //Requete SQL d'insertion $sql = 'INSERT INTO matable (champ1,champ2) values(:var1,:var2)'; $stmt = $db_handle ->prepare($sql); //Paramètre PDO $P = array('var1' => 'hery', 'var2' => 'haja'); //Executer la requete $stmt->execute($p); $stmt->closecursor(); //afficher donnees try $connexion=new PDO('sqlite:member.sqlite'); catch(pdoexception $e) printf("échec de la connexion : %s\n", $e->getmessage()); exit(); $sql="select * FROM matable"; if(!$connexion->query($sql)) echo "Pb d'accès au CARNET"; else foreach ($connexion->query($sql) as $row) echo $row['id']." ". $row['champ1']." sy ". $row['champ2']."<br/>\n"; Hery Haja Prod. Août 2016 PAW SERVER 10

Voir (Codes sources/base de données/ conn_sqlite_pdo_php.php) Autre logiciel disponible pour créer un server androïd PHP MYSQL : - TELECHARGER LOGICIEL ANDROPHP Voir Dossier «Logiciel/AndroPHP_1.2.0.apk» Après installation les fichiers racines www et phpinfo.php et phpmyadmin sont disponible Affichage optimal : Responsive. Entrez dans head : <meta name= «viewport» content= «width=device-width,initial-scale=1.0»> ---------------- Hery Haja Prod. Août 2016 PAW SERVER 11