Bonjour a tous ,

Finalement mon problème que je croyais résolu ne l'est pas!! je remet donc un post.

Voici le problème:

Je veux uploader a partir d'un formulaire une photo et l'afficher pour avoir un apercu. Le soucis c'est que si je veux changer de photo , le programme prend bien en compte la nouvelle photo mais affiche la precedente, la nouvelle photo ne s'affiche que si je fais un rafraichissement manuel.

voici le script qui traite ma photo une fois que j'ai validé le formulaire:

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
 
<?php
//
//ouverture session et initialisation
//
session_start();
$_SESSION['text']=NULL; //mise à NULL du message d'erreur poid
$_SESSION['text2']=NULL; //mise à NULL du message d'erreur format
$_SESSION['picp']=$_FILES['picp'];
$_SESSION['picp']['type']=$_FILES['picp']['type'];
//
//Charge photo si présence d'un fichier.
//
if ($_FILES['picp']['name']!=""){
//
//Récupération de l'image
//
$img=imagecreatefromjpeg($_FILES['picp']['tmp_name']);
//
// Test du format du fichier
//
	if (strpos($_FILES['picp']['type'],"jpeg")){// voir pb accent de "demandé" + relecture des images
//
// Test du poid de l'image
//
	$size=$_FILES['picp']['size'];
		if ($size<=2097152){
//
//si poid correct alors on enregistre dans le dossier
//Récupération taille de l'image 
//
		$taille=getimagesize($_FILES['picp']['tmp_name']);
		$width=$taille[0];
		$height=$taille[1];
//
//création de l'image de destination à partir de l'image originale
//
		$img_dest=imagecreatetruecolor(60,75);
		$copy=imagecopyresampled($img_dest,$img,0,0,0,0,75,60,$width,$height);
//
//enregistrement de l'image (fichiers temporaires)
//
				if (file_exists('../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg')){
				unlink('../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
				imagejpeg($img_dest,'../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg');
				}
				else if (file_exists('../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg')){
				unlink('../photos/picp_temp2_'.$_SESSION['id_membre'].'.jpg');
				imagejpeg($img_dest,'../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
				}
				else
				imagejpeg($img_dest,'../photos/picp_temp1_'.$_SESSION['id_membre'].'.jpg');
//
//destruction de l'image en mémoire
//
		imagedestroy($img_dest);
		}
//
// si poid incorrect message d'erreur
//
		else
		$_SESSION['text']="Merci de mettre une photo de 2Mo maximum.";
 
	}
//
// si format incorrect message d'erreur
//
	else
	$_SESSION['text2']="Merci de mettre une photo avec le format demandé.";
 
}
//
// si format incorrect message d'erreur
//
else
$_SESSION['text2']="Merci de mettre une photo avec le format demandé.";
//
//Dans tous les cas, redirection vers la page inscription
//
header("location:http://localhost/feesik/inscription_e2.php");
?>
J'utilise 2 fichiers pour enregistrer temporairement les photos en effacant la chaque fois le fichier temporaire precedent mais ca ne fonctionne pas.

voila ce que ca donne dans le deroulement:

upload image 1 -> fichier 1 dans image temp 1 -> affichage image 1

si je change de photo :

upload image 2 -> image 2 dans image temp 2 -> affichage image 2

si je change a nouveau de photo (3ème image differente):

image temp 1 est detruit
upload image 3 -> image 3 dans image temp 1 (recrée) -> affichage image 1

si je change a nouveau de photo (4ème image differente):

image temp 2 est detruit
upload image 4 -> image 4 dans image temp 2 (recrée) -> affichage image 2

etc...etc...

Bref seule les deux premiere image s'affiche .. pas les suivantes.

Si je fais un refresh manuel ca fonctionne.

Avez vous une idée?

Merci d'avance