N'hésitez pas à me donner vos impressions,
je le modifie si nécessaire avant sa publication finale. ;)
Version imprimable
N'hésitez pas à me donner vos impressions,
je le modifie si nécessaire avant sa publication finale. ;)
je dirai simplement: :lahola:
Je viens de faire une maj des sources à 23h13 : Le formulaire d'inscription ne s'affichait pas au 1er lancement avec tous les champs. J'ai aussi dû faire attention au lancement sans connection internet pour qu'il n'y ait pas de problème... Bref, obligé de tenir compte de toutes les combinaisons avec les paramètres AutoStart et AutoValid aussi, ça n'a pas été facile. Maintenant, tout semble fonctionner : Le formulaire d'inscription ne s'affiche que si la connection internet est ok, à+
gros boulot, bravo
Le tuto est surtout la 1ère page, donc rien de très compliqué en soit. Les 2 autres pages sont pour illustrer l'utilisation de cette méthode. J'espère surtout que ça vous sera utile. En tous les cas, je compte utiliser cet espace membre pour programmer le tchat de mon jeu d'échec; Je devais donc le programmer quoiqu'il en soit et je voulais vous en faire profiter, à+Citation:
Envoyé par jlf
Salut,
Voici le tutoriel au gabari : http://sub0.developpez.com/tutoriel/delphp/
Non, le problème est toujours le même -> On est obligé d'attendre que la session précédente soit périmée avant de pouvoir se reconnecter dans le cas où l'on ne quitte pas le programme proprement.Citation:
Envoyé par rezuss
Je pensais à quelque chose : Il faudrait que le serveur puisse tracer l'ip du client pour savoir si il est connecté ou non... ou bien que le serveur demande quelque chose au client et si le client ne répond pas, en déduire qu'il n'est pas connecté... faut que je fasse des essais.
Une solution éventuellement serait de diminuer la durée de vie de la session à 30 secondes par exemple et de demander à Delphi de faire régulièrement une requête juste pour garder en vie la session...
à+
Pour info, suite à un message privé du membre ero-sennin qui a trouvé des «erreurs» dans le code. En fait, il s'agit d'un bug généré à cause d'une directive de compilation non activée par défaut dans Delphi ($J)... J'ai donc mis à jour le code source des unités en ajoutant :
{X+,J+}
Je l'avais déjà fait dans le fichier DPR des projets, mais apparemment, Delphi n'en tient pas compte. J'ai également ajouté {$WARNINGS OFF} dans le code source des unités car il y a des messages d'avertissement lors de la compilation, sans gravité mais qui peuvent dérouter les débutants.
à+
Merci Sub0,
N'ayant pas eu beaucoup de temps, je peux dire que pour le peu de tests que j'ai effectué, ca tourne bien chez moi!
Encore merci Sub0 pour cet article!
J'espère que cet article et ces démos vous serviront, j'espère aussi que j'ai été assez clair et précis dans mes explications, j'ai fait de mon mieux en gardant à l'esprit que ce tuto sera aussi lu par des débutants... ;)
Vos questions, remarques ou suggestions m'aideront à le paufiner, à+
ps : Ce n'est pas {$Warnings off} mais {$Hints off} qu'il fallait mettre, je corrigerai tout à l'heure.
Seriez-vous intéressés par une démo d'upload de fichier avec la classe THttpPost ?
• Delphi permet de dépasser la limité des 2Mo...
• L'interruption et la reprise d'un téléchargement sont possibles.
• Il est également possible d'uploader plusieurs fichiers en simultanné.
• Avec un compo d'archivage ZIP, compresser les fichiers pendant l'upload.
• Afficher la progression de chaque upload.
• L'espace membre de la 1ère démo pourra s'intégrer très facilement afin de protéger cette fonction.
• Je peux par la suite programmer le download aussi...
Salut Sub0 et merci pour ce boulot.Citation:
Envoyé par Sub0
Une démo d'upload m'intéresserait effectivement.
Personnelement je serais aussi interressé par une telle démo !
Encore merci pour ce tuto ! (très très bon !!! :D )
xenos
Voici l'unité Delphp intégrant les fonctions d'upload http.
En théorie, il n'y a aucune limite de taille, mais malgré que je n'utilise que des fonctions d'accès au disque (TFileStream + FSeek), j'obtiens une erreur de mémoire virtuelle avec des fichiers très volumineux. Je pense qu'il faudrait regarder du côté de ce sujet pour l'upload des gros fichiers, mais cela complique pas mal les choses qu'en même...
http://sub0.developpez.com/delphp/uploadunit2.zip
• Installer le script "upload.php" sur votre serveur
• Définir l'url du script dans Unit1.pas
super sub0, plus rapide que l'éclair...
merci à toi, je vais regarder l'upload
Je te conseille de retélécharger l'archive, je viens de faire une correction importante.
[EDIT] J'ai effectué l'upload d'une video AVI de 700Mo en 25 minutes. Le souci, c'est qu'il manque quelques octets ce qui ne se produit pas avec des fichiers plus petits. Je vais essayer de trouver une solution à ce problème...
Cette fois-ci, je le tiens ! :D uploadunit2.zip
L'upload des gros fichiers fonctionne. J'ai aussi ajouté la fonction permettant de reprendre un upload si une erreur survient, il suffit que la case "rewrite" soit décochée. Pour info, j'ai uploadé 700Mo en 10 minutes à peu près (en local avec Wamp5) en générant volontairement quelques erreurs pour reprendre le téléchargement... tout semble au point. Maintenant, si cette fonction d'upload vous intéresse toujours, je peux l'ajouter à DELPHP...
Salut Sub0,
Je vois qu'en ce moment tu bosses énormément :D ! Je trouve l'idée de l'upload très intéressante! Pour ce qui concerne l'intégration à DelPHP, pourquoi pas !
Beau travail Sub!
Bonne Soirée ;)
Les fonctions d'upload et download permettront à terme de faire des sauvegardes et restaurations de la base de données (fichiers SQL)... Par contre, je ne pense pas que l'upload simultanné soit bien utile finalement. Je programmerais plutôt l'upload en série d'une liste de fichiers. Pour info, il est envisageable d'ajouter SSL pour plus de sécurité.
Cher sub0 !
Je suis très heureux quand j'ai appris de vous tellement ! Merci beaucoup faire uploadunit2 = Delphes interactif, PHP. Mais le visage du problème I ici est des fuites de mémoire. Lorsque je télécharge plus, les utilisations de mem augmentent... J'ai essayé de libérer HttpPost1 ou HttpPost1.FStream mais ne peux pas toujours. Svp aide.
Merci encore.
Dans les Projets que l'on développe dans ma société, l'échange de données va de plus mal sécurisés au un peu mieux, comme des fichiers csv zippés sur un SFTP, les IP étant limités et fixes chiants non, du tunneling SSH entre l'application Delphi et la base MySQL et enfin, des WebService PHP sur HTTPS ...
juste, je n'ai pas étudié le code (je viens juste de voir l'article et je n'ai pas le temps), mais pour les résultat requêtes, tu les reçois comment ? XML pour TClientDataSet ? Format propriétaire ? et la Base Locale ?
C'est très interressant, car on a bcp de problèmatique d'échange de données, pour le moment, on voudrait ne faire que du Tunnel SSH mais avec le firewall parano, seul quelques IP fixes sont autorisées ... mais une solution rapide avec du PHP, cela peut être interressant surtout avec du XML pour TClientDataSet ... un provider DB en PHP, cela pourrait avoir bcp de succès ...