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

Langage PHP Discussion :

Problème de timed out


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut Problème de timed out
    Bonjour,

    En me servant de différents tutos j'ai réalisé la charpente d'un site sécurisé avec mod_ssl roulant sur Apache 1.3.33 et Mac OS 10.4.7.
    Mes routines d'authentification fonctionnent très bien en local mais lorsqu'un client distant tente de se connecter, au chargement de la page sécurisée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://mon_adresse_IP:443/page1.php
    il reçoit un message du genre :
    The connection has timed out
    The server at 207.134.243.143 is taking too long to respond.
    Quelqu'un a une idée d'une ou des causes possible(s) ?

    Merci

    Ps: Vous pouvez même l'expérimenter ici :
    http://jlemser.com/login1.php

  2. #2
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 910
    Par défaut tout dépend du code
    En fait, le timed out se produit quand une page prend trop de temps pour s'afficher: 40 secondes par défaut je crois (à vérifier dans httpd.conf).

    Cela peut être dû à une boucle while où il manque une incrémentation par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $x = 1;
    $y = 10;
     
    while($x <= $y){
         // Ton code à exécuter dans la boucle
         // Et tu oublies d'incrémenter $x
    }
    Comme $x n'est pas incrémenté, le script reste indéfiniment dans le while, et 40 secondes plus tard, le message de timed out s'affiche.

    Il y a plein d'autres exemples à citer, même autre que les boucles while. Donc vérifie bien ton code et si nécessaire exécute le ligne par ligne sur une feuille de papier.

  3. #3
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    Citation Envoyé par zyongh
    En fait, le timed out se produit quand une page prend trop de temps pour s'afficher: 40 secondes par défaut je crois (à vérifier dans httpd.conf).

    Cela peut être dû à une boucle while où il manque une incrémentation par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $x = 1;
    $y = 10;
     
    while($x <= $y){
         // Ton code à exécuter dans la boucle
         // Et tu oublies d'incrémenter $x
    }

    Comme $x n'est pas incrémenté, le script reste indéfiniment dans le while, et 40 secondes plus tard, le message de timed out s'affiche.

    Il y a plein d'autres exemples à citer, même autre que les boucles while. Donc vérifie bien ton code et si nécessaire exécute le ligne par ligne sur une feuille de papier.
    Salut zyongh,

    Je comprends bien ce que tu me conseilles mais si c'était une boucle mal incrémentée mes scripts ne fonctionneraient pas sur mon serveur en local. Or, tous mes scripts fonctionnent.
    Je soupçonne plutôt le fichier httpd.conf... mais comme je suis débutant je ne sais pas comment débugger.
    Merci quand même

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par benassis
    Bonjour,

    En me servant de différents tutos j'ai réalisé la charpente d'un site sécurisé avec mod_ssl roulant sur Apache 1.3.33 et Mac OS 10.4.7.
    Mes routines d'authentification fonctionnent très bien en local mais lorsqu'un client distant tente de se connecter, au chargement de la page sécurisée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://mon_adresse_IP:443/page1.php
    il reçoit un message du genre :


    Quelqu'un a une idée d'une ou des causes possible(s) ?

    Merci

    Ps: Vous pouvez même l'expérimenter ici :
    http://jlemser.com/login1.php
    Bonsoir,

    Effectivement, il doit y avoir un problème de configuration. Quand le serveur "jlemser.com" (204.16.252.98) reçoit une requête GET pour "/login1.php", il répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    HTTP/1.1 302 Found
    Date: Tue, 15 Aug 2006 22:24:29 GMT
    Server: Apache/1.3.31 (Unix) PHP/5.0.3
    X-Powered-By: PHP/5.0.3
    Location: http://207.134.243.XXX:8080/login1.php
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html
     
    0
    Autrement dit, il redirige vers un autre serveur ("c207.134.243-XXX.clta.globetrotter.net") sur un autre port ("8080").
    Cet autre port étant probablement fermé (ou plutôt interdit par un parefeu), le client envoie une requête et attend une réponse...qui ne vient jamais : d'où le "time out".

    Cela peut venir de la configuration d'Apache, du script PHP (qui utiliserait "header()"), du parefeu (si la redirection est voulue), etc.

    Cordialement,
    DS.

  5. #5
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    Citation Envoyé par David.Schris
    Bonsoir,

    Effectivement, il doit y avoir un problème de configuration. Quand le serveur "jlemser.com" (204.16.252.98) reçoit une requête GET pour "/login1.php", il répond :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    HTTP/1.1 302 Found
    Date: Tue, 15 Aug 2006 22:24:29 GMT
    Server: Apache/1.3.31 (Unix) PHP/5.0.3
    X-Powered-By: PHP/5.0.3
    Location: http://207.134.243.143:8080/login1.php
    Connection: close
    Transfer-Encoding: chunked
    Content-Type: text/html
     
    0
    Autrement dit, il redirige vers un autre serveur ("c207.134.243-143.clta.globetrotter.net") sur un autre port ("8080").
    Cet autre port étant probablement fermé (ou plutôt interdit par un parefeu), le client envoie une requête et attend une réponse...qui ne vient jamais : d'où le "time out".

    Cela peut venir de la configuration d'Apache, du script PHP (qui utiliserait "header()"), du parefeu (si la redirection est voulue), etc.

    Cordialement,
    DS.
    Bonjour/bonsoir David.Schris,

    Détails sur ma configuration :

    Nom de domaine : jlemser.com
    Mon adresse ip est dynamique
    Mon FAI bloquant le port 80 à cause du spamming, j'ai une redirection chez no-ip.com au port 8080 qui effectue aussi mes changements d'adresse ip.
    Je n'ai aucun parefeu ni proxy.

    Cela dit, au moment où tu as tenté de te brancher, j'avais réinitialisé mon ordi et j'avais fermé apache pour quelques minutes pour changer de fichier httpd.conf et pour neutraliser mon fichier .htaccess (qui, je croyais pouvait causer mon problème), mais ça fonctionnait en localhost (qui fait appel à clta.globetrotter.net l'adresse de mon FAI) ce qui expliquerait les nos ip bizarres que tu as trouvés.

    Tu as raison sur la redirection: en fait, dans mon premier script php, je recueille les nos de membre et mot de passe. Mon deuxième script fait une redirection après avoir contrôlé ces dernières données; le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <? 
    $md5=$_POST['md5'];
    $login=$_POST['login'];
    $file = 'logs.txt';
    $repname ="CMQ/log_names/";
    $fileloging = $repname.$file;
    if(!file_exists($fileloging))
    {//file
    ?>
    <h4><p>Ce fichier n'existe pas !</p>
    <?
    }///file
    $c=0;
    $fd = fopen($fileloging,"r") or die("On ne peut ouvrir ce fichier");
            while ($ligne = fgetcsv($fd, 1024)) {//1
                    foreach($ligne as $elem) {//2       
            $occur= stristr($elem,$login);//echo $occur;
            if($occur !== False)
            	{//3
            	$occur_num= $c; //on trouve à la ligne+1
            	$trouve =$occur;
            	}//3
     $c++;           
            }//2
        }//1
       fclose ($fd);
    if($occur_num ==="")     // Si aucun numéro de membre n'existe la variable est vide
    {//1
    ?>
    <hr color='#ff0000' noshade align=left>
    <h4><p class='margin'>Ce num&eacute;ro de membre n'est pas dans notre base de données.</p>
    <FORM Method='GET' action='login1.php'>
    <p class='margin'><INPUT type=submit value=Recommencer><BR>
    <hr color='#ff0000' noshade align=left></h4>
    <?
    }//1
    else{//1
    $lignelog =explode(' ',$trouve);
    $nomem= $lignelog[0];//echo $nomem;
    $passmd5=$lignelog[2];//echo $passmd5;exit;
    if ($login<>$nomem){//2
    ?>
    <hr color='#ff0000' noshade align=left>
    <h4><p class='margin'>Malheureusement, ce num&eacute;ro de membre nous est inconnu.</p>
    <h4><p class='margin'>Veuillez recommencer !</p>
    <FORM Method='GET' action='login1.php'>
    <p class='margin'><INPUT type=submit value=Recommencer><BR>
    <hr color='#ff0000' noshade align=left></h4>
    <?
    }//-2
    if ($md5<>$passmd5)
    {//2
    ?>
    <hr color='#ff0000' noshade align=left>
    <h4><p class='margin'>Malheureusement, ce mot de passe est invalide !</p>
    <h4><p class='margin'>Veuillez recommencer !</p>
    <FORM Method='GET' action='login1.php'>
    <p class='margin'><INPUT type=submit value=Recommencer><BR>
    <hr color='#ff0000' noshade align=left></h4>
    <?
    }//-2
    }
    session_start();
    $_SESSION['last_access']=time();
    $_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR'];
    $_SESSION['user']=$login;
    $serveurad =$_SERVER['SERVER_ADDR'];
    header("Location: https://"."$serveurad".":443/"."page1.php");
    ?>
    Le header fait une redirection forçant le passage à la connexion sécurisée (à moins que ce ne soit pas la bonne façon de procéder...), le port 443 étant celui utilisé pour les connexions sécurisées.
    Ce qu'on m'a rapporté comme problème (avant toi) c'est que ça bloque sur la redirection appelée par le header, i.e. le script «page1.php».
    Voilà. Je peux donner plus d'info à la demande.
    Merci de m'aider

  6. #6
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    OUPS !
    J'ai oublié un détail important pour ceux qui voudraient expérimenter la connexion ssl sur mon serveur : un login et un mot de passe !
    Je reprends donc les infos pour se connecter :
    http://jlemser.com/login1.php
    login : M980202
    pass : loulav

  7. #7
    Membre averti
    Inscrit en
    Juin 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 36
    Par défaut
    Citation Envoyé par benassis
    OUPS !
    J'ai oublié un détail important pour ceux qui voudraient expérimenter la connexion ssl sur mon serveur : un login et un mot de passe !
    Je reprends donc les infos pour se connecter :
    http://jlemser.com/login1.php
    login : M980202
    pass : loulav
    Finalement, j'ai trouvé ce qui ne fonctionnait pas. C'est un problème de port bloqué par mon FAI.
    Le port 8083 n'étant pas bloqué, je l'ai choisi et tout baigne maintenant.
    Merci à ceux qui ont essayé de m'aider

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Citation Envoyé par benassis
    Finalement, j'ai trouvé ce qui ne fonctionnait pas. C'est un problème de port bloqué par mon FAI.
    Le port 8083 n'étant pas bloqué, je l'ai choisi et tout baigne maintenant.
    Merci à ceux qui ont essayé de m'aider
    Bonsoir,

    Tu as été plus vite que moi.
    Effectivement, le port 443 est bloqué par ton FAI.

    Citation Envoyé par benassis
    Le header fait une redirection forçant le passage à la connexion sécurisée (à moins que ce ne soit pas la bonne façon de procéder...)
    Je ne pense pas que cela soit la bonne. Tu devrais rediriger vers le site SSL avant que le nom d'utilisateur et le mot de passe soient envoyés (ou au moment de l'envoi), pas après qu'ils aient été reçus.
    Le plus simple est de mettre "https://adreseDuServeur:8083/auth2.php" dans l'attribut "action" du formulaire.

    Si tu as d'autres questions, n'hésite pas.

    Cordialement,
    DS.

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

Discussions similaires

  1. [HTTP] Problème avec des time out
    Par tupac25 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 22/02/2011, 16h18
  2. Réponses: 2
    Dernier message: 27/05/2009, 11h33
  3. [Session]maîtriser le time out de la session
    Par croquedur dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 23/10/2007, 11h57
  4. Problème de time-out avec un socket client.
    Par Depteam1 dans le forum MFC
    Réponses: 3
    Dernier message: 17/10/2005, 11h30
  5. error time out expired
    Par the_new dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/03/2005, 14h03

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