PHP sur AS400

Fermé
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 - 4 oct. 2001 à 21:46
 adil - 30 mai 2012 à 15:39
Quelqu'un a-t-il entendu parler de l'existence d'une version de PHP pour AS/400 ?

Si non, qq'un a-t-il des infos sur le portage de PHP sur une nouvelle plateforme ?

Toutes informations bienvenues...

Tittom
A voir également:

50 réponses

O certain aime l'usurpation d'identité.
On me fait dire quelquefois tout et n'importe quoi.

ZENDCORE semble proposé une version spéciale AS400 pour dévellopé du code PHP avec un serveur Apche . et une couche middleware permettant d'utiliser L'as400 comme base de donnée.
0
Voici le lien sur le site de zend pour la platefomre AS400. -php

https://www.zend.com/

il semble meme qu'il soit possible de faire tourne une base mysql sur l'AS400 dans la couche qui émule linux sans doute.
C'est pas gratos
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
18 avril 2008 à 11:22
Bonjour,
Easycom For PHP peut fonctionner chez un hebergeur que si il accepte l'installation d'extension spécifique sur le serveur et des connexions sortantes.

Dans la dernière version du ZendCore un serveur MySql est intégré, je crois.

Il est tout a fait possible d'installer soit même une version de MySql sur la partie AIX de l'AS/400(PASE).


A+ walter
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 11:05
Moi je suis entrain de faire un siteweb ou j'ai besoin d'infos de l'as400 également. J'ai opté pour une extraction de l'as400 par fichier texte.
En faite j'ai créé normalement mon site avec php et mysql et une fois par mois des infos de l'AS400 sont extraites sous forme de fichier et envoyées sur le serveur. Ensuite ce fichier est intégré dans ma base mySQL.
Etant donné que la mise à jour se fait une fois par mois, ça ne pose pas de problème mais si ça doit être en temps réelle, c'est different.

Maintenant je souhaiterais aussi développer en php afin d'établir des statistiques grace aux infos de l'AS400. Je sais que php est plutot destiné web mais j'aimerai bien faire un programme qui fonctionnerait en local directement avec l'AS400.
Est ce que c'est possible?
0
perso j'utilise ce genre de procédures

<html> 
	<head> 
		<title>Liste clients</title> 
	</head> 
	<body> 
	
	
	<?php
	$dsn = "DRIVER=iSeries Access ODBC Driver;SYSTEM=AS400;DBQ=nom_de_l_as400";
	$user = "xxx";
	$passwd = "xxx";
	$db = odbc_connect($dsn, $user, $passwd);
	
	$resultat = odbc_exec($db, "SELECT * from lib.fichier;);
	
	if ($resultat == 0) {                                                      
	   echo ("<BR><B>Erreur " . odbc_error() . " : " . odbc_errormsg() . "</B>");
	}
	
	// entetes
	  echo '<TABLE>';
	  echo "<TR>";
	       echo("<th>Code client</th>");
	       echo("<th>Nom client</th>");
	  echo "</TR>";          
	
	 // lignes détail                                                             
	  echo "<TR>";    
	while(odbc_fetch_row($resultat)) {
		for ($i = 1 ; $i <= odbc_num_fields($resultat) ; $i++) {
			
			echo '<td>' . odbc_result($resultat,$i) . '</td>';
		}
		   echo "</TR>";  
	}
	                               
	echo "</TABLE>";     
	 ?>
	 
	
	</body> 
</html> 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 11:39
ok il suffit de créer un truc odbc et faire son script php normalement.

Mais quand l'utilisateur vaudra consulter les stats, il aura juste à clicker sur la page. En faite je comprend pas ce qui sert de serveur. Il faut utiliser easyphp ou l'as400 peut servir de serveur et dans ce cas où est ce qu'il faut placer les pages?
0
je n'ai pas essayé de mettre le php sur l'as400, mais normalement il y a tout ce qu'il faut...
à voir avec ton ingénieur système pour activer tout ça.

moi, j'ai utilisé wamp sur mon poste pour accéder à l'as400, mais on peut pas faire ça avec des utilisateurs "normaux"
0
Bonjour,
PHP est un langue script, c'est a dire qu'il a besion d'un interpreteur de script.
L'intrepreteur execute le script PHP qui généralement retourne un flux texte contenant le HTML(affiché par le browser).
Donc il est plutot fait pour fonctionner en mode WEB (avec un serveur HTTP et un browser).

Si tu veux t'en servir en local, il faut appelé l'interpreteur(php.exe) avec le script PHP en paramètre et celui-ci va te rendre sur la sortie standard ou dans un fichier la page HTML correspondante.

Tu peux aussi utiliser easyphp, qui est juste une installation toute faite du trio apache/PHP/MySql.
Le serveur pouvant être sur la machine de l'utilisateur ou un serveur de ton réseau.

Cordialement,
Walter
http://www.easycom-aura.com
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009 > terwal
19 mai 2008 à 12:04
Oui tu peux tout a fait mettre ta page sur l'as400(avec ZendCore).
Dans ce cas la, l'as400 est serveur WEb et de donnée.

Tu peux aussi utiliser un serveur WEB sur une autre machine(ex linux).
le lien ODBC faisant le pont entre ton serveur WEB et l'AS400.
Donc ta machine Linux est le client pour les données et serveur pour le HTML.

Cordialement,
Walter
www.easycom-aura.com
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 12:17
OK merci j'ai bien compris vos explication.

Dernière question, la société qui gère l'AS400 dans mon entreprise vient de m'envoyer un devis pour:
la création d'un fichier à transférer vers un serveur externe avec 4-5 infos sur les client dedans, genre codeclient, nom + une marge cumulée entre 2dates que l'on choisi.

Le devis est de plus de 800 euros avec 1 à 2 jours de travail.

Vous trouvez ça excessif ou c'est normal comme tarif?
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
19 mai 2008 à 12:36
Bonjour,
Je connais pas les prix pratiqué par les prestataires de service.
Mais dans ton cas tu aurrais plus intérret a accéder au donnée AS/400 a partir de ton serveur externe.
Car tu pourra faire autant d'extraction que tu veux et rajouter un champ à celle-ci sans intervention exterrieur.

Que ca soit ODBC ou Easycom, il te suffit de crée ton script PHP de lecture-importation dans ta base MySQL.
A titre d'exemple Easycom For PHP tourne au alentour de 2000€ avec un accés illimité a tous tes fichiers.

Cordialement,
Walter
www.easycom-aura.com
0
une SSII sera toujours trop chère par rapport au travail fait. et en plus, quand elles commencent a entrer dans une société, leur but est de vous garder comme client, donc de se rendre indispensable. j'ai été en SSII durant pas mal de temps... je connais les pratiques.
éventuellement, tu peux passer par un indépendant, dont les tarifs seront un peu moins élevés, ils n'ont pas toutes les charges des SSII. ..... je suis indépendant maintenant ;-)


pour ta problématique, tu souhaites quoi exactement ?
avoir une page html sur laquelle il y a des données extraites de l'AS400 ? ça me semble assez simple à faire.
comme le dit Walter, tu peux avoir un serveur avec wamp d'installé ainsi qu'odbc vers l'AS400. un gros PC suffira.
c'est sur ce serveur que se connecterons les utilisateurs pour consulter les données.
cette configuration marchera pour un réseau local.
par contre, si tu veux que l'on puisse consulter ces données par internet, ça demande une réflexion sur l'architecture a mettre en place, dans ce cas il te faut un serveur dans la DMZ, accessible de l'extérieur les données restant toujours sur l'AS400.
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 14:36
La SSII gère tout au niveau de l'AS400 dans l'entreprise à distance et il n'y a pas d'informaticien dans l'entreprise, uniquement moi le petit stagiaire de trois mois, donc je ne pense pas qu'ils soient près à faire appel à une autre entreprise en ce qui concerne l' AS400. Ils travaillent avec cette SSII depuis longtemps maintenant.

Concrètement, mon but est de faire un petit programme permettant de réaliser différents statistiques et calculs en temps réel en fonction des données de l'AS400. Par exemple le calcul des nouveaux tarifs en fonction des nouveaux prix d'achat.

Pour cette exemple, les données étaient extraites sur excel et un type faisait ensuite les calculs. Ducou cela n'est pas utilisable d'une année sur l'autre.

Moi je souhaite donc faire un petit programme php/html parce que c'est le language que je connais le mieux. J'avais pensé à JAVA mais je galère beaucoup trop. Pour des questions de sécurité, il faut bien sur que le programme reste en local et hormis avec easyphp je ne sais pas comment faire. Et je me demande si easyphp même en local me permet un minimum de sécurité avec un ordinateur en reseau.
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
19 mai 2008 à 14:59
Si tu est sur un réseau locale, il 'y a pas vraiment de problème.
En tout cas, c'est pas EasyPHP(Apache/PHP) qui va en crée.

Après quelques soit le language utilisé, ca change pas grand chose.
Si ce n'est avec PHP, tu est obligé de passer par un serveur WEB, pour afficher tes pages HTML.
Et que PHP est plus facile a maitriser que Java.

Sinon dans tout les cas tu passe par un middleware(ODBC, Easycom) pour attaquer les données de ton AS/400.

Cordialement,
Walter
www.easycom-aura.com
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 15:58
Merci pour toutes ces explications.

Je vais donc utiliser apache et php avec un lien odbc pour me connecter à l'AS400, en utilisant les différentes solutions pour sécuriser un peu: htaccess etc.
0
Xil Messages postés 350 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 11 juin 2009 257
19 mai 2008 à 16:38
Pourquoi ne pas simplement utiliser l'extension ibm_db2, et les fonctions natives de php ?

L'intranet que nous développons manipule essentiellement une base de données DB2/AS400 de cette manière, sans aucun soucis.

https://www.php.net/db2_connect
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 17:25
Bin effectivement ça parait pas mal. Il faut télécharger cette extension sur le site d'IBM?
Et après il suffit de développer normalement en php et placer ses pages dans un endroit précis, dans le serveur AS400?
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
19 mai 2008 à 17:44
Les fonctions db2_ sont accessible sur toute les platformes.
sur l'AS/400 en natif, sur les autres en génrérale via ODBC.

Sur l'AS/400(installation de ZendCore), tu as access a 2 API natives db2_ et i5_.
Mais cela reclame que ZendCore ait été installé sur ton AS/400.
As tu acces facilement à une console 5250 avec les droits QSECOFR?

Sur une autre platforme il faut que IBM DB2 Connect ou équivalent soit installé.

Cordialement,
Walter
www.easycom-aura.com
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 17:28
Merci de ta suggestion en tous les cas.
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
19 mai 2008 à 18:10
As tu acces facilement à une console 5250 avec les droits QSECOFR? 


désolé mais je peux pas te répondre, je pige rien. Faut que je tape QSECOFR sur l'AS400?

Zendcore c'est payant? Si cette solution demande des investissements, va falloir que j'en choisisse une autre!

Je sais pas si DB2connect est installé, mais si il y ait pas d'origine, je suis sur que personne ne l'a installé.
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
19 mai 2008 à 18:27
QSECOFR c'est le login administrateur de ton AS/400.
ZendCore est gratuit, regarde chez zend pour plus d'informations.
Mais pour cela il faut que tu ais les droits d'administration de ton AS/400.

IBM DB2 Connect s'installe lorsque ton serveur WEB/PHP n'est pas sûr l'AS/400.
Et il s'installe sur ce serveur WEB, donc pas besion de connaissance/droit AS/400.
Mais par contre il est payant, je croix. Peut il y a t-il des substitu gratuis.

Après si tu veux que cela soit gratuit, le plus simple c'est de passer par ODBC.
Sur Windows il y a driver ODBC dans client access(je sais pas si c'est gratuit), sinon il en existe un sous Linux.

Cordialement,
Walter
www.easycom-aura.com
0
De croire que tout est gratuit me semble absurde.

Il n'empêche il est possible d'installer une version de wamp dansL'iFS ou sur un pc qui à accés L'as400. l'accés au données de l'aS00 VIA obdc ou DB2.

Aprés le problème est la sécurité des données de l'AS 400.
0
Comme bon nombre l'on dit avant moi pour accéder à l'as400 il suffit d'un poste connectable à cette AS400 et un profil utilisateur qui accés au données. Par ODBC on accède à L'AS400 via par exemple Client_Access qui est trés répendu.

Apres c'est simple Les requetes sql qui vont bien et soit on charge la base sql pour renforcé la sécurite soit on constution la page avecl les données récupere directement à partie de L'AS400.

Attention pour utiliser ZendCore ( effectivement gratuit ou 300€ je sais plus trop) il faut une version AS400 : V5R4 minimun voir meme la version V6.0 qui vient juste de sortir.
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
20 mai 2008 à 10:01
Salut,
Pour ZendCore il faut au minimum une V5R3.
300€ je crois que c'est surtout pour l'abonnement au support Zend, puisque vous avez déjà téléchargé le produit.

Après dans une architecture 3 tiers, la sécurité est établit avant tout par l'utilisation d'un utilisateur ne possédant que les droits necéssaire à l'application, au cas ou il y aurait une utilisation de celui pour faire d'autre requete que celle prévus.
Puis par le non access à l'AS/400 en directe.

On peut installer un wamp(ou autre) dans "l'IFS", mais surtout faire tourner Apache dans un environnement PASE.
Il suffit de compiler ou d'avoir un pré-compiler pour AIX et d'executer Apache dans l'environnment PASE.
C'est que fait le produit ZendCore.

Le plus simple étant quand même d'installer ZendCore, car la compilation/installation du couple Apache/PHP sur PASE est réservé à des personnes connaissant bien l'AS/400 et AIX.

Cordialement,
Walter
www.easycom-aura.com
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
20 mai 2008 à 10:10
Je sais que des fois il faut payer mais je viens de recevoir un devis de + de 800euros pour mon premier projet de stage. Même si c'est pas énorme pour l'entreprise, je me vois pas dire à mon patron qu'il faut payer encore 800 3jours après pour le 2ème projet...

Client access est installé sur tous les postes, c'est même moi qui l'ai installé sur les nouveaux ordis. Je pense que je vais rester sur l'idée:

- easyPHP en local avec connection odbc grace à client access. ça me parait être le plus simple.
Le programme doit uniquement fonctionner sur 2 ordinateurs, c'est pas très contraignant d'installer easyPHP sur les deux.



Si quelqu'un a des conseilles au niveau de la sécurité des informations avec cette méthode, je suis preneur.
Parce que dans l'entreprise, ils y connaissent rien, ils me laissent tout faire mais ils se rendent pas compte qu'il y a certains risques quand même.
0
walterT Messages postés 17 Date d'inscription vendredi 18 avril 2008 Statut Membre Dernière intervention 19 février 2009
20 mai 2008 à 10:36
Il serait peut être judicieu que tu connaisse dans les grandes lignes, les futures projets que tu va devoir mener.
Pour valider ta solution 3 tiers par interface WEB et savoir si elle sera adapter au autres projets.
Car si les utilisateurs finaux doivent jongler avec plusieurs interface, cela n'est pas forcement très productif et la perte en temps s'élévera a bien plus de 800€.

Coté sécurité, il y a pas grand chose, puisque la major partie et au niveau de ton réseau local.
Après, il ne reste que ce que je t'ai dis précédement, c'est à dire si tu met un utilisateur en dure dans tes scripts, que celui-ci ne puisse faire que de la consultation.
Le mieux étant de faire se logger tes utilisateurs, dans ce cas tu n'aurra pas de problème de sécurité lié à ton serveur WEB.

Cordialement,
Walter
www.easycom-aura.com
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
20 mai 2008 à 10:54
Moi je sais exactement ce que j'ai à faire. Après il y aura peut être des évolutions à apporter dans le futur mais ça ne sera pas moi qui m'en chargerai. Il y a déjà un petit programme en JAVA pour les stats clients et j'aurai voulu continuer sur ce programme pour effectivement limiter les interfaces, mais je pense pas avoir le niveau.

Cela dit, si il y a des évolutions, ils pourront toujours continuer à partir de mon programme ou celui en JAVA.

Merci pour ta réponse en ce qui concerne la sécurité, bien évidemment je ferai en sorte que les utilisateurs se log.
0
A une question tout de même existe, les informations à mettre a disposition le seront il en interne ou cela doit il être consultable via interne via l'extérieur?
Selon la réponse la sécurité n'est pas réellement la même et ce qui doit être mise en place non plus. Dans le cas d'un intranet , comme tu es dans le réseau local pas de problème majeur . Dans le cas d'un extranet il faut une liaison loué sécurisé car on peut supposé que la société ne tien pas à ca que tous utilisateur d'internet farfouille dans ces fichiers de compta, dans ses projet de réalisation technique ....etc(Et la 800€ bien .glups... ca va pas suffir)



Pour ma part les stat que je créer tourne via ODBC avec excel et on peut faire pas mal de chose avec .

Autre chose: il est possible de créer dans la base de donnée AS400 des fonctions SQL (ou avec d'autre langage) que tu peux appelé dans tes SQL. De cette façon c'est L'as400 qui mouline et pas le serveur.


La mise en place d'un site internet pour 800€ , hoho je trouve que c'est très très peu chère. une bouchée de pain face à ce qui existe sur le marché.
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
21 mai 2008 à 09:57
C'est juste pour consulter sur 1 ou 2 poste en interne.
Là j'ai créé la connection odbc avec client access. Par contre mon script php de connection ne fonctionne pas. Je me demande si ça vient pas du fait que j'ai créé une DNS utilisateur et non pas système. Qu'est ce que vous en pensez?

Sinon 800 euros dans mon site c'était juste pour une petite prestation de la SSII à savoir l'extraction d'un fichier texte de l'AS400 vers le serveur. Il reste encore à payer l'hebergement ect.
0
dsNS SYSTEME: dsN UTILISATEUR;
aFF Utilisateur je crois !!

Un bon test utilise excel , et creer une requête odbc: avec ta requête SQL tu veras ce que cela donne.


Une chose à savoir. Le profil que tu utilise pour connecter le serveur PHP à L'AS400 a t'il la liste des bib en ligne cela peut joue si tu ne qualife pas la ou les bib dans sql.

exemple de code sql sur as400 avec qualif de bib

Select nomcli, prenomcli from libclient/ficclient
where agecli >=18 ;

en odbc cela donnera plutot

Select nomcli, prenomcli from libclient.ficclient
where agecli >=18 ;

Le "." (symbole point) remplace le symbole "/" antislash traditionnement utilie par defaut sur l'as..
Attention toutefois cela détent aussi de la définition de ta connection odcb
Qui de tête contient quelque part typesql (*sql ou *sys) ce qui fait la différence

*sys supportera "\" et *sql "." à moins que ce soit l'inverse (peut être verifer vie strsql de L'as et ses paramètres)
0
mouè Messages postés 31 Date d'inscription mardi 15 avril 2008 Statut Membre Dernière intervention 5 juin 2008
26 mai 2008 à 10:48
J'ai réussi à me connecter mais pas à exécuter des requêtes. je n'ai aucun retour d'erreur mais une page blanche.

Pour typesql j'ai bien choisi SQL.
0