Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
846 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Chargement page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Chargement page

n°1017257
Le Veilleu​r
Posté le 18-03-2005 à 12:36:30  profilanswer
 

Bonjour,
 
Je viens de réaliser un petit script d'upload en php. Lorsque la personne clic sur le bouton upload, mon système charge une page php, par exemple, up.php. Cette page contient une petite phrase pour l'utilisateur, du genre "Veuillez patienter...", et dans le bas de celle-cui se trouve le script d'upload.
 
Mon problème, c'est que ce msg utilisateur ne s'affichent qd quand le fichier est upload. Donc que le script php à fini.  
 
Je cherche donc un moyen de lancer ce script après l'affichage utilisateur.
 
merci


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
mood
Publicité
Posté le 18-03-2005 à 12:36:30  profilanswer
 

n°1017258
FlorentG
Posté le 18-03-2005 à 12:37:26  profilanswer
 

Aucun moyen [:spamafote] Limite faisable en JS :(

n°1017280
Le Veilleu​r
Posté le 18-03-2005 à 13:17:38  profilanswer
 

Aie :'(


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1017343
no_code
This Magic Moment ...
Posté le 18-03-2005 à 14:03:36  profilanswer
 

Mon expérience dans le domaine :
Sous linux, si tu places un echo en début de page qui contient un long traitement , il va s'afficher , mais pas sous windows.
 
Par contre avec apache2, ca marche aussi sous windows.


Message édité par no_code le 18-03-2005 à 14:04:05
n°1017468
Le Veilleu​r
Posté le 18-03-2005 à 14:33:08  profilanswer
 

Le serveur est sous linux, je mets qd dans l'echo ? des "  " ?


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1017610
no_code
This Magic Moment ...
Posté le 18-03-2005 à 15:30:15  profilanswer
 

Fait voir ton code

n°1017643
Le Veilleu​r
Posté le 18-03-2005 à 15:49:29  profilanswer
 

Code :
  1. <? session_start();
  2.    session_regenerate_id();
  3. ?>
  4. <table width="450" border="0" align="center">
  5.   <tr>
  6.     <td colspan="2">Transfert de votre fichier en cours ..... cela peut prendre plusieurs minutes </td>
  7.   </tr>
  8.   <tr>
  9.     <td>&nbsp;</td>
  10.     <td>&nbsp;</td>
  11.   </tr>
  12.   <tr>
  13.     <td colspan="2">Ne fermez surtout pas cette fen&ecirc;tre </td>
  14.   </tr>
  15.   <tr>
  16.     <td>&nbsp;</td>
  17.     <td>&nbsp;</td>
  18.   </tr>
  19. </table>
  20. <?
  21. include("transfert2.php" );
  22. ?>


Je voudrais que le include ne se fasse que quand la page se trouve être chargée.


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1017651
Xav_
The only one...
Posté le 18-03-2005 à 15:52:30  profilanswer
 

hors sujet complet pour ce qui va suivre, mais faire un tableau avec des cellules vides gérée à coup de &nbsp; pour afficher 2 lignes centrées à l'utilisateur, lui demandant de patienter...
 
Spa un peu bourrin comme mise en page ???


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1017684
ratibus
Posté le 18-03-2005 à 16:12:25  profilanswer
 

Le problème c'est qu'il va attendre que l'upload soit fini pour afficher la page.
 
C'est dans la page du formulaire d'upload que tu dois faire quelque chose.
Le seul moyen "propre" que j'avais trouvé à l'époque pour l'upload de gros fichiers : sur le onsubmit du formulaire, j'ouvrais un popup (je sais c'est pas le top ;)) avec une barre d'activité. Et sur le onload de la page d'après je ferme le popup crée.

n°1017688
FlorentG
Posté le 18-03-2005 à 16:13:52  profilanswer
 

Xav_ a écrit :

hors sujet complet pour ce qui va suivre, mais faire un tableau avec des cellules vides gérée à coup de &nbsp; pour afficher 2 lignes centrées à l'utilisateur, lui demandant de patienter...
 
Spa un peu bourrin comme mise en page ???


C'est hyper-bourrin et ultra-porc :jap:

mood
Publicité
Posté le 18-03-2005 à 16:13:52  profilanswer
 

n°1017694
Le Veilleu​r
Posté le 18-03-2005 à 16:15:02  profilanswer
 

C'est vrai que ca pourrait être une solution. Car en fait, c'est pour utiliser en intranet... donc j'ai des fichiers 500Mo... et faut que j'arrive a afficher un petit msg absolument.


Message édité par Le Veilleur le 18-03-2005 à 16:15:21

---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1017704
ratibus
Posté le 18-03-2005 à 16:17:21  profilanswer
 

Le Veilleur a écrit :

C'est vrai que ca pourrait être une solution. Car en fait, c'est pour utiliser en intranet... donc j'ai des fichiers 500Mo... et faut que j'arrive a afficher un petit msg absolument.


Donc je te conseille ma solution :D
 
Tu sauras te débrouiller pour faire la barre d'activité ?
 
Y a une feinte aussi pour la fermeture du popup dans la seconde page :D

n°1017719
Le Veilleu​r
Posté le 18-03-2005 à 16:21:32  profilanswer
 

Heu, encore aucune idée. Mais si tu as un code dont je peux m'inspirer, je suis preneur.
 
merci


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1017734
ratibus
Posté le 18-03-2005 à 16:28:55  profilanswer
 

Je t'ai envoyé ça en MP ;)

n°1017796
Le Veilleu​r
Posté le 18-03-2005 à 17:39:17  profilanswer
 

Un grand merci :)


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
n°1019567
FlorentG
Posté le 21-03-2005 à 10:41:36  profilanswer
 

Bah poste-ça ici, fait pas ta pince, fais profiter la communauté :D

n°1019584
esox_ch
Posté le 21-03-2005 à 11:06:23  profilanswer
 

J'pense qu'avec les ob_start & ob_flush on peut s'en sortir aussi :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1019632
ratibus
Posté le 21-03-2005 à 12:06:07  profilanswer
 

esox_ch a écrit :

J'pense qu'avec les ob_start & ob_flush on peut s'en sortir aussi :D


Non car avant de s'exécuter le script PHP attend de recevoir toutes les données uploadées ;)

n°1019636
ratibus
Posté le 21-03-2005 à 12:09:07  profilanswer
 

progressBar.js

Code :
  1. var isDom = document.getElementById ? true : false;
  2. var isIE  = document.all ? true : false;
  3. var isNS4 = document.layers ? true : false;
  4. var cellCount = 15;
  5. var currentCell = 0;
  6. var popupWidth = 300;
  7. var popupHeight = 150;
  8. function startProgress() {
  9.         setInterval("updateProgress()", 400);
  10. }
  11. function updateProgress() {
  12.     for (i=0; i < cellCount; i++) {
  13.         hideCell(i);   
  14.     }
  15.     showCell(currentCell%cellCount);
  16.     currentCell++;
  17. }
  18. function setVisibility(pElement, pVisibility) {
  19.     if( pVisibility ) {
  20.         color = '#3366CC';
  21.     } else {
  22.         color = '#CCCCCC';
  23.     }
  24.     if (isDom) {
  25.         document.getElementById(pElement).style.background = color;
  26.     } else if (isIE) {
  27.         document.all[pElement].style.background = color;
  28.     } else if (isNS4) {
  29.         document.layers[pElement].style.background = color;
  30.     }
  31. }
  32. function showCell(pCell) {
  33.     setVisibility('progressCell'+pCell, true);
  34. }
  35. function hideCell(pCell) {
  36.     setVisibility('progressCell'+pCell, false);
  37. }
  38. function launchProgressPopup() {
  39.         LeftPosition = (window.screen.width-popupWidth)/2;
  40.         TopPosition  = (window.screen.height-popupHeight)/2;
  41.         window.open('progressPopup.php', 'progressPopup', 'top='+TopPosition+',screenY='+TopPosition+',left='+LeftPosition+',screenX='+TopPosition+',height='+popupHeight+',width='+popupWidth+',location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');
  42. }
  43. function closeProgressPopup() {
  44.         popup_w=window.open('#', 'progressPopup','width=1,height=1');
  45.         popup_w.close('progressPopup');
  46. }


 
progressPopup.php

Code :
  1. <html>
  2. <head>
  3. <title>Barre d'activité</title>
  4. <style type="text/css">
  5. <!--
  6. body {
  7.         background-color: #FFFFFF;
  8.         font-family: Verdana, Arial;
  9. }
  10. .progressBarBorder {
  11.         background-color: #E0E0E0;
  12.         width: 257px;
  13.         height: 24px;
  14.         position: relative;
  15.         left: 0px;
  16.         top: 0px;
  17. }
  18. .installationProgress {
  19.         width: 250px;
  20.         margin: 10px;
  21.         text-align: justify;
  22.         font-size: 10px;
  23.         font-weight: bold;
  24. }
  25. .cell {
  26.         width: 15px;
  27.         height: 20px;
  28.         background-color: #CCCCCC;
  29. }
  30. // -->
  31. </style>
  32. <script type="text/javascript" src="/js/progressBar.js"></script>
  33. </head>
  34. <body onload="startProgress()">
  35. <div id="progress">
  36. <table border="0" cellspacing="0" cellpadding="0">
  37. <tr>
  38.         <td>
  39.                 <div class="progressBarBorder">
  40.                         <div id="progressCell0" class="cell" style="position:absolute;top:2px;left:2px;">&nbsp;</div>
  41.                         <div id="progressCell1" class="cell" style="position:absolute;top:2px;left:19px;">&nbsp;</div>
  42.                         <div id="progressCell2" class="cell" style="position:absolute;top:2px;left:36px;">&nbsp;</div>
  43.                         <div id="progressCell3" class="cell" style="position:absolute;top:2px;left:53px;">&nbsp;</div>
  44.                         <div id="progressCell4" class="cell" style="position:absolute;top:2px;left:70px;">&nbsp;</div>
  45.                         <div id="progressCell5" class="cell" style="position:absolute;top:2px;left:87px;">&nbsp;</div>
  46.                         <div id="progressCell6" class="cell" style="position:absolute;top:2px;left:104px;">&nbsp;</div>
  47.                         <div id="progressCell7" class="cell" style="position:absolute;top:2px;left:121px;">&nbsp;</div>
  48.                         <div id="progressCell8" class="cell" style="position:absolute;top:2px;left:138px;">&nbsp;</div>
  49.                         <div id="progressCell9" class="cell" style="position:absolute;top:2px;left:155px;">&nbsp;</div>
  50.                         <div id="progressCell10" class="cell" style="position:absolute;top:2px;left:172px;">&nbsp;</div>
  51.                         <div id="progressCell11" class="cell" style="position:absolute;top:2px;left:189px;">&nbsp;</div>
  52.                         <div id="progressCell12" class="cell" style="position:absolute;top:2px;left:206px;">&nbsp;</div>
  53.                         <div id="progressCell13" class="cell" style="position:absolute;top:2px;left:223px;">&nbsp;</div>
  54.                         <div id="progressCell14" class="cell" style="position:absolute;top:2px;left:240px;">&nbsp;</div>
  55.                 </div>
  56.         </td>
  57. </tr>
  58. </table>
  59. <p class="installationProgress" id="installationProgress">
  60.         Cette fenêtre reste ouverte pendant toute la durée du transfert de vos fichiers. Elle sera fermée automatiquement à la fin du transfert.
  61. </p>
  62. </div>
  63. </body>
  64. </html>


 
Dans le onsumbit du formulaire de la page d'upload on met ça onsubmit="launchProgressPopup(); return true;"
 
Et dans le onload de ta page de traitement on met ça : onload="closeProgressPopup();"
 
Je suis ouvert à toute remarque ;)

n°1019638
FlorentG
Posté le 21-03-2005 à 12:11:55  profilanswer
 

Mais alors la progressbar se remplit, puis se vide, puis se remplit à nouveau ? Quel différence par rapport à un bête gif animé ?

n°1019674
ratibus
Posté le 21-03-2005 à 12:53:31  profilanswer
 

Y en a pas :D
 
En fait ça permet de pouvoir personnaliser le graphisme de la barre sans devoir refaire le gif ;)

n°1019761
FlorentG
Posté le 21-03-2005 à 14:33:34  profilanswer
 

Mouais, avec un gif, y'a beaucoup plus d'avantages : s'affiche sans JS et permet de spécifier l'attribut alt pour ceux qu'affichent pas les images ;)


Message édité par FlorentG le 21-03-2005 à 14:33:40
n°1019843
ratibus
Posté le 21-03-2005 à 15:45:46  profilanswer
 

FlorentG a écrit :

Mouais, avec un gif, y'a beaucoup plus d'avantages : s'affiche sans JS et permet de spécifier l'attribut alt pour ceux qu'affichent pas les images ;)


D'un autre côté si tu n'as pas JS, le popup de la barre d'activité ne s'est pas ouvert ;)


Message édité par ratibus le 21-03-2005 à 15:46:58
n°1019856
FlorentG
Posté le 21-03-2005 à 15:57:43  profilanswer
 

Justement, il ne faut jamais de popup, ou alors fournir une alternative

n°1019869
ratibus
Posté le 21-03-2005 à 16:02:51  profilanswer
 

Dans ce cas présent, le popup est "optionnel".
Si JS n'est pas activé l'upload marche quand même ;)

n°1019872
FlorentG
Posté le 21-03-2005 à 16:04:00  profilanswer
 

Ok :jap:

n°1019961
Le Veilleu​r
Posté le 21-03-2005 à 17:31:26  profilanswer
 

Dans mon cas le popup ne pose aucun problème, car le but est d'être utilisé en intranet, sur un parc de machine identique sans pop up blocker et avec js activé.
 
Je l'ai d'ailleurs intégré ce matin à mon application. Et cela marche vraiment très bien.
 
merci :jap:


---------------
Mon Blog : LeVeilleur.net | Hébergement d'images : Hostipics.net
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Chargement page

 

Sujets relatifs
Problème d'interaction entre une page et une popup[ Pocket PC ] gestion des code barre et PHP ?
Cmt ouvrir une page .php direct lorsque l'on rentre ds un dossier !?Surligner des éléments dans une page appelée
resolution de la page web[Help] intreface en PHP sur mon FTP
Probléme de mise en page ( ça marche sous IE mais pas sous firefox)[JAVA] [Résolu] Afficher une page html avec CSS dans un JEditorPane
[PHP + bd mysql] Supprimer le champ de ma tableFormulaire : le choix ouvre une page
Plus de sujets relatifs à : [PHP] Chargement page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR