Bonjour, je suis un petit nouveau, je suis enseignant en électrotechnique pas en informatique, je suis donc un amateur.

Pour un site consacré à mes élèves de premières et terminales get, j'ai voulu apporter une amélioration.
Elle est essentiellement pour mes collègues, , dans ce site les élèves ont à disposition des exercices en ligne ( images, animations, et textes ) de type QCM avec devoir de justification.
Mes collègues voient la mise en ligne de leurs exercices facilitée par un accès particulier, mais ils devaient jusqu'à présent devoir transférer leurs images dans un dossier particulier à la racine du site.
Ils devaient donc utiliser un utilitaire FTP.
J'ai voulu tester la numérisation des images ( 'blob' ) dans mysql, j'ai réussi à faire fonctionner mon application, je travaille sous ubuntu Linux et avec Firefox.

Pour mieux gérer mes images à la lecture de la base j'utilise les commandes fopen et fwrite pour copier le fichier 'blob' dans une image placée en RW.

Voici un extrait de la requête qui permet de rechercher le bon enregistrement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
$colpass_rsScene = "1";
     if (isset($HTTP_GET_VARS['choix'])) {
     $colpass_rsScene = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['choix'] : addslashes($HTTP_GET_VARS['choix']);
     }
     mysql_select_db($base, $cnx);
     $query_rsScene = sprintf("SELECT * FROM scenario WHERE idscenario='%s'", $colpass_rsScene);
     $rsScene = mysql_query($query_rsScene, $cnx) or die(mysql_error());
     $row_rsScene = mysql_fetch_assoc($rsScene);
     $totalRows_rsScene = mysql_num_rows($rsScene);
     $theme=$row_rsScene['theme'];
Je peux récupérer jusqu'à 4 images dans une page, il y a une image principale et jusqu'à 3 images "miniatures".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 switch ($row_rsScene['miniature']) {
      case "1":
      	$imageP[0]=$row_rsImageChoix1['img_blob'];$placeImg[0]=0;
	if ($totalRows_rsImageChoix2 == 1) {$imageP[1]=$row_rsImageChoix2['img_blob'];$placeImg[1]=1;}
	if ($totalRows_rsImageChoix3 == 1) {$imageP[2]=$row_rsImageChoix3['img_blob'];$placeImg[2]=1;}
	if ($totalRows_rsImageChoix4 == 1) {$imageP[3]=$row_rsImageChoix4['img_blob'];$placeImg[3]=1;}
      	break;
Ensuite sur clique des miniatures, celle-ci prendra la place de la Principale, suite code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<td align="center" colspan="3" height="400px"><?php if ($HTTP_GET_VARS['clic'] == 1) {
						$imageP[4]=$imageP[0];
						$imageP[0]=$imageP[1];}
					elseif ($HTTP_GET_VARS['clic'] == 2) {
						$imageP[4]=$imageP[0];
						$imageP[0]=$imageP[2];}
					elseif ($HTTP_GET_VARS['clic'] == 3) {
						$imageP[4]=$imageP[0];
						$imageP[0]=$imageP[3];}
					$fichier=fopen("images/img_tmp.jpg","w");
           				fwrite($fichier,$imageP[0]);
           				fclose($fichier); ?>
					<img src="images/img_tmp.jpg" alt="photo" id="" border="0" class="imgPremiere">
			</td>
Voilà, c'est peut être pas une bonne idée de passer par ces fonctions fopen, fwrite, mais je les soupçonne d'être responsable du problème suivant:

Je dois réactualiser systèmatiquement ma page pour voir apparaître la bonne image au bon endroit, qu'elle soit principale ou miniature, même problème lors d'un changement de page avec les navigateurs Opera et IE7.
Je n'ai aucun soucis avec Firefox

Il n'y a pas de changement d'image et pourtant la nouvelle requête ( nouvelle page ) a bien fonctionnée, l'image enregistrée est différente pourtant.

Vous avez une idée ?