IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

temps d'execution d'un script sur un serveur web [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Points : 35
    Points
    35
    Par défaut temps d'execution d'un script sur un serveur web
    bonjour,

    voici ci-dessous un petit script que je viens de coder, me permetant d'interroger une base mysql toutes les 30sec et d'afficher le resultat sur la page web.
    seulement une fois que je lance le script via une interface web, le resultat m'est affiché une seule fois à l'écran suivi de ce message d'erreur:


    Fatal error: Maximum execution time of 30 seconds exceeded in C:\PHP\monscrip.php on line 13

    la ligne 13 c'est la ligne juste après l'appel de la fonction sleep(30) dans le script ci-dessous.

    quelqu'un pourrait-il m'expliquer pourquoi ai je ce message, qui arrete l'execution de mon script sur le serveur ?

    merci d'avance pour vos reponses

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    while(1==1)
      { 
         // partie connexion à la base de données      
        $requete = "select * from matable";
        $execution = mysql_query($requete);
        while($ligne=mysql_fetch_row($execution))
        {
           echo "$ligne[0]...";
        }
        mysql_close();
        sleep(30);
      }

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 36
    Points : 20
    Points
    20
    Par défaut
    Je ne connait pas la réponse à ta question mais :

    Google est ton ami

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    en interface web c'est pas fait pour, utilise un cron, ou fait de l'ajax

  4. #4
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    J'aurais tendance à dire que ton sleep de 30 seconde fait en sorte que ton script est exécuté depuis plus de 30 secondes.

    Un script PHP n'est pas concu pour être exécuté pendant plus de 30 secondes.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Août 2007
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    merci pour vos reponses assez claires, je comprend alors mieux le pourquoi de ce message d'erreur. cependant je ne m'y connais pas en Ajax, or il semblerai que c'est la solution ideale pour mon problème, il va donc falloir que j'y jette un oeil ne fusse que deja savoir comment ecrire un script qui puisse faire appel a mon script php de façon periodique.
    encore merci pour votre aide.
    si j'ai des soucis pour la suite je reviendrai

    A+

  6. #6
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Salut,

    au lieu d'essayer d'avoir un script PHP qui tourne à l'infini et qui "soumet" un résultat à toutes les 30 secondes, essaie plutôt:

    De faire un javascript, qui lui a un timeout aux 30 secondes. Ce timeout apelle une fonction javascript qui fait une requête AJAX à une page PHP.

    Donc la page PHP n'est exécutée que le temps de préparer la réponse (obtenir les données, effectuer un traitement).

    La raison pourquoi ca fontionne de cette facon, c'est que le serveur n'à pas à soutenir un immense nombre de connexion de facon inutile.

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2011
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 50
    Points : 66
    Points
    66
    Par défaut
    ajoute la ligne :

    dans ton code

    Mais ca constitue une grosse faille de sécurité et ca ne resoudra pas ton problème , je te conseille d'utiliser un cron. Tu peux faire en sorte que ton script continue meme si l'utilisateur ferme la fenêtre mais ton hébergeur va crie HALTE à la boucl et je trouve ca assez dangereux pour le serveur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOS] executer un script sur un serveur distant
    Par nikalkal dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 11/03/2007, 10h07
  2. Execution automatique de scripts sur insertion ?
    Par apoingsfermes dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 30/11/2006, 17h49
  3. Temps d'execution d'un script c++ sous linux
    Par sharantyr dans le forum Linux
    Réponses: 10
    Dernier message: 04/06/2006, 18h51
  4. [VBS]execution d'un script sur un pc différent
    Par Guismai dans le forum VBScript
    Réponses: 7
    Dernier message: 07/02/2006, 16h40
  5. Temps d'execution d'un select sur une vue
    Par rosewood dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/02/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo