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

AJAX Discussion :

[AJAX] Une ligne qui plante de temps en temps


Sujet :

AJAX

  1. #1
    Membre confirm�
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2010
    Messages : 67
    Par d�faut [AJAX] Une ligne qui plante de temps en temps
    Bonjour

    J'ai un soucis juste avec une seule ligne. Voila mon script cot� serveur :

    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
    <?php
     
    	// Include
    	// série d'include
     
    	// Connexion à la base de données
    	//Mes fonctions pour se connecter à la bd
     
    	// Si c'est le castor (IA) qui joue
    	if (isset($_POST['castor'])){
    		// Récupération des paramètres
    		// cré ma variable $tlettre qui est un tableau de lettre
     
    		// Récupérer le résultat
    		$mot=trouvermot($tlettre); // fonction se trouvant dans un autre fichier. renvoie un mot existant dans la bd à partir des lettres données ou vide s'il n'y a pas de mot
    		//echo "alert('Mot : $mot');"; // pour vérifier le contenu du mot en mode debuguage
    		if ($mot!=""){
    			echo "motexiste=true;";
    			echo "motcastor='$mot';";// C'est cette ligne qui me pause problème
    		}
    	} else{ // Si c'est le joueur qui joue
    		// Toute cette partie du code fonctionne
    	}	
    ?>
    Cot� client, ma variable motexiste est initialis� � false et motcastor vaut "". Si ma variable motexiste vaut true apr�s l'ex�cution de ma requ�te au serveur, j'execute un certain code. Pour trouver l'origine du probl�me, j'ai mis ma ligne echo "motcastor='$mot';"; en commentaire et plac� motexiste de nouveau � false juste apr�s l'ex�cution de ma requ�te. Dans ce cas la, je n'ai pas de soucis, mon programme s'ex�cute en fonction du contenu de mes variables.

    Si dans la m�me situation je ne met pas cette ligne en commentaire, lors de l'ex�cution de mon script cot� serveur, la page est recharg�... De plus, l'ex�cution du code est tr�s long pour finalement recharger la page.

    Es ce que vous avez une id�e d'o� pourrait venir le probl�me ?

    Pour information j'ai post� ce matin cette question (en donnant la ligne concern�) et on m'avais dit que cette ligne �tait correcte.

  2. #2
    Membre confirm�
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2010
    Messages : 67
    Par d�faut
    Apres quelques recherches le probl�me ne vient pas de la ... J'ai fait quelques modifications en supprimant un de mes echo :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if ($mot!=""){
    	echo "motcastor='$mot';";
    }
    Pour ce qui est de la ligne pr�c�dente elle est pass� cot� client. motcastor �tant � vide par d�faut, si apr�s l'ex�cution de mon script php il n'est plus vide, je met ma variable motexiste a true. Le probl�me persiste.

    J'ai essay� de mettre l'appel de ma fonction trouvermot() en commentaire avec $mot vide pour �viter que cela me plante tout et la l'erreur ne se reproduit plus apparemment (je ne peux pas en �tre sur � 100% vu que l'erreur ne se produit pas tout le temps. Ce qui donne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    //$mot=trouvermot($tlettre);
    $mot="";
    Je me suis retrouv� dans un cas ou la ligne que je croyais fautive �t� en commentaire et que le probl�me est survenue tout de m�me donc mon probl�me vient de la fonction trouvermot().

    Je vous donne directement le contenu de la fonction, j'ai fait plusieurs test sans trouver l'origine du probl�me.

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    	function trouvermot($tlettre){
     
    		//nombre de lettre a rechercher
    		$taillemot = floor(rand(3,8));
    		//$taillemot=5;
    		if ($taillemot==8){
    			$taillemot=7;
    		}
     
     
    		// Recherche d'un mot de taille $taillemot
    		$motexiste = false;
    		$mot="";
    		$a=1;
    		while (($a<=7) && ($motexiste==false)){
    			if ($tlettre[$a]!=""){
    				//On rajoute une lettre de plus
    				$b=1;
    				while (($b<=7) && ($motexiste==false)){
    					if (($a!=$b)&&($tlettre[$b]!="")){
    						// On rajoute une lettre de plus
    						$c=1;
    						while (($c<=7) && ($motexiste==false)){
    							if (($a!=$c) && ($b!=$c) && ($tlettre[$c]!="")) {
    								if ($taillemot>3){ // Mot composé de plus de 3 lettres
    									$d=1;
    									while (($d<=7) && ($motexiste==false)){
    										if (($a!=$d) && ($b!=$d) && ($c!=$d) && ($tlettre[$d]!="")) {
    											if ($taillemot>4){ // Mot composé de plus de 4 lettres
    												$e=1;
    												while (($e<=7) && ($motexiste==false)){
    													if (($a!=$e) && ($b!=$e) && ($c!=$e) && ($d!=$e) && ($tlettre[$e]!="")) {
    														if ($taillemot>5){ // Mot composé de plus de 5 lettres
    															$f=1;
    															while (($f<=7) && ($motexiste==false)){
    																if (($a!=$f) && ($b!=$f) && ($c!=$f) && ($d!=$f) && ($e!=$f) && ($tlettre[$f]!="")) {
    																	if ($taillemot>6){ // Mot composé de 7 lettres
    																		$g=1;
    																		while (($g<=7) && ($motexiste==false)){
    																			if (($a!=$g) && ($b!=$g) && ($c!=$g) && ($d!=$g) && ($e!=$g) && ($f!=$g) && ($tlettre[$g]!="")) {
    																				$mot= $tlettre[$a].$tlettre[$b].$tlettre[$c].$tlettre[$d].$tlettre[$e].$tlettre[$f].$tlettre[$g];
    																				$motexiste=verifmotexiste($mot);
    																			}
    																			$g=$g+1;
    																		}
    																	} else { // Mot de 5 lettres
    																		$mot= $tlettre[$a].$tlettre[$b].$tlettre[$c].$tlettre[$d].$tlettre[$e].$tlettre[$f];
    																		$motexiste=verifmotexiste($mot);
    																	}
    																}
    																$f=$f+1;
    															}
    														} else { // Mot de 5 lettres
    															$mot= $tlettre[$a].$tlettre[$b].$tlettre[$c].$tlettre[$d].$tlettre[$e];
    															$motexiste=verifmotexiste($mot);
    														}
    													}
    													$e=$e+1;
    												}
    											} else { // Mot de 4 lettres
    												$mot= $tlettre[$a].$tlettre[$b].$tlettre[$c].$tlettre[$d];
    												$motexiste=verifmotexiste($mot);
    											}
    										}
    										$d=$d+1;
    									}
    								} else { // mot composé de 3 lettres
    									$mot= $tlettre[$a].$tlettre[$b].$tlettre[$c];
    									$motexiste=verifmotexiste($mot);
    								}
    							}
    							$c=$c+1;
    						}			
    					}
    					$b=$b+1;
    				}
    			}
    			$a=$a+1;
    		}
     
    		// Si on a pas trouvé, on cherche un mot de 2 lettres
    		if ($motexiste==false){
    			$a=1;
    			while (($a<=7) && ($motexiste==false)){
    				if($tlettre[$a]!=""){
    					//On rajoute une lettre de plus
    					$b=1;
    					while (($b<=7) && ($motexiste==false)){
    						if (($a!=$b)&&($tlettre[$b]!="")){
    							$mot= $tlettre[$a].$tlettre[$b];
    							$motexiste=verifmotexiste($mot);
    						}
    						$b=$b+1;
    					}
    				}
    				$a=$a+1;
    			}
    		}
     
    		// Si on ne trouve pas le mot, le mot sera vide
    		if ($motexiste==false){
    			$mot="";
    		}
    		// Si on a trouvé, on remplace les joker par une lettre de sorte a avoir le premier possible
    		else {
    			$mot=rappelmot($mot);
    		}
     
    		//$mot="";
     
    		return $mot;
     
    	}
    Merci d'avance.

  3. #3
    Membre confirm�
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2010
    Messages : 67
    Par d�faut
    Je n'ai toujours pas de solution mais une simple question qui pourra peut �tre m'aider :
    Si j'arrive � la limite de mon set_time_limit qu'es ce qui va s'arr�ter ? uniquement mon script cot� serveur ? dans ce cas rien n'est renvoy� � mon client et il ex�cute ces fonctions sans avoir les variable qu'aurait envoy� mon serveur (cela ne me pause pas de probl�me vu que les variable sont initialis� avant l'ex�cution de mon script php).

  4. #4
    Membre confirm�
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Mars 2010
    Messages
    67
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activit� : Technicien Help Desk

    Informations forums :
    Inscription : Mars 2010
    Messages : 67
    Par d�faut
    Comme je n'arrivais pas � trouver, j'ai fait un test sur le temps �coul� :

    Plac� au d�but de ma fonction trouvermot(). Puis dans le code avant chaque constitution de mot et donc v�rification de l'existence de ce mot dans la BD :

    et ma fonction verifdate() :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    function verifdate($debut){
    	$ecoule= time()- $debut;
    	if ($ecoule>=10){
    		exit;
    	}
    }
    J'ai test� avec une seconde et cela coupe uniquement mon script cot� serveur ce que je vous demandais la derni�re fois.

    Pour que ceci fonctionne il faut bien sur que la ligne contenant l'appel � la fonction verifdate() soit appel� et ... apparemment ce serait le cas. Apr�s plusieurs test ceci fonctionne. Mon probl�me �tait surement dut � un temps d'ex�cution tr�s long.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. sed: remplacer une ligne qui commence par Version
    Par lili2704 dans le forum Linux
    R�ponses: 8
    Dernier message: 21/07/2008, 14h26
  2. [AJAX] saisie automatique qui plante sous AJAX
    Par kosowski dans le forum G�n�ral JavaScript
    R�ponses: 0
    Dernier message: 25/06/2008, 14h35
  3. Ouvrir une fenetre qui reste active tout le temps
    Par pas30 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 4
    Dernier message: 11/01/2007, 18h02
  4. [j3d] afficher une ligne qui point vers un objet
    Par guitalca dans le forum 3D
    R�ponses: 1
    Dernier message: 06/03/2006, 21h44
  5. R�ponses: 3
    Dernier message: 21/01/2004, 08h47

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