Bonjour à tous,

Comme vous pouvez le lire dans le titre, j'ai remarqué qu'en utilisant phplib et firefox, on se retrouve confronté à un problème : les fonctions sont appelées deux fois. Voici un exemple :

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
 
 
<?
// Run session
session_start() ;
 
// include libraries
include "../../include.php";
include "Search.class.php";
include "../User.class.php";
 
// Instanciate UserList Object Scenario
$O_Search = new Search() ;
 
if ( isset( $_GET[ "act" ] ) && $_GET[ "act" ] == "End" ) {
 
	// Finish scenario
	$O_Search->End() ;
 
} else if ( isset( $_GET[ "act" ] ) && $_GET[ "act" ] == "UpdateStatus" ) {
 
	// Finish scenario
	$O_Search->UpdateStatus() ;
 
} else {
 
	// Run scenario
	$O_Search->Begin( true ) ;
} 
?>
 
-------------------- Méthodes de la classe -------------------------
 
public function End() {
 
		error_log("end\n", 3, 'log.txt');
 
		parent::End( true ) ;
		$s_TplMap = $this->TplMap() ;
 
		try {
 
			// no result found ?
			$this->_AltNoResult() ;			
 
		} catch ( ModelException $O_TplException ) {
 
			$s_TplMap = $O_TplException->getTplMap() ;			
 
		} catch ( TechnicException $O_TplException )  {
 
			$s_TplMap = $O_TplException->getTplMap() ;			
 
		}
 
		$O_TplDisplay = new TplDisplay( new Tpl( $s_TplMap , true ) , BUFFER_ON ) ;
		$O_TplDisplay->Display() ;
 
	}
Comme vous avez pu voir, j'ai mis un error_log() qui écrit dans mon fichier de log lorsque la méthode est appelée.

Après l'appel de la page do.php, avec $_GET['act'] = 'End' (qui entraine l'appel de la méthode End() ), je constante que dans mon log j'ai :

end
end

La fonction est appelée deux fois et celà seulement lorsque l'on utilise firefox. Dans le script présenté ca ne pose pas vraiment problème mais dans d'autres dans lesquels j'ai des insertions dans la BDD, je me retrouve avec :

DELETE ...
INSERT ...
DELETE ...

à la place de mon :

DELETE ...
INSERT ...

Ce qui entraine la suppression des enregistrements venant d'être insérés!

J'ai cherché des réponses à ce problème mais en vain.

Avez-vous déjà entendu quelque chose à propos de ce problème ?