Images affichée en temps réel

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Images affichée en temps réel

Re: Images affichée en temps réel

par @rthur » 08 mars 2015, 13:26

Je pense qu'il faut déjà que tu arrives à isoler le problème pour déterminer à quel moment il y a un bug.

Tu as globalement 2 actions :
1) uploader une image (et la renommer, et enregistrer le nom de cette image dans ta bdd)
2) afficher l'image (j'imagine en allant chercher son nom dans ta bdd, mais on n'a pas le code correspondant)


Pour le 1) :
- Après upload d'une image, en regardant sur ton FTP, est-ce que l'image ID.jpg est bien enregistrée dans le répertoire souhaité ?
- Est-ce que en base de données, en regardant via phpmyadmin, tu retrouve bien le nom de ton image (avatars/ID.jpg) associé au profil correspondant ?

Pour le 2) :
- Si tu regardes le code source de ta page qui est sensée afficher l'avatar, quel est le nom du fichier image ? est-ce bien correspondant à celui en base de données à savoir avatars/ID.jpg ?

Re: Images affichée en temps réel

par eljeronimooo » 08 mars 2015, 09:19

Merci @rthur voilà les lignes en question :

FICHIER MODIFIERPROFIL.PHP
if (isset($_POST['valider']) AND !empty($_FILES['avatar']['name'])){
	$erreur = GLOBAL_verif_fichier_photo ($array_de_la_photo_a_verifier = $_FILES['avatar'],$G_taille_maximum_des_fichier_photo,$T_message_erreur);
	if ( !empty ($erreur) ){ 
		$MESSAGE_erreur = $erreur;
		GLOBAL_affiche_message_erreur ($MESSAGE_erreur);		
	} else {
			$erreur = GLOBAL_enregistre_avatar_membre ($id = $_SESSION[$G_SESSION_id],$nom = $_SESSION[$G_SESSION_id],$table = "tab_membres",$col ="col_avatar",$name = $_FILES['avatar']['name'],$tmp_name = $_FILES['avatar']['tmp_name'],$G_bdd,$G_chemin_du_server,$T_message_erreur);
		if ( !empty ($erreur) ){ 
			$MESSAGE_erreur = $erreur; 
			GLOBAL_affiche_message_erreur ($MESSAGE_erreur);
			GLOBAL_efface_avatar_membre ($id = $_SESSION[$G_SESSION_id],$G_chemin_du_server);
		} else {
			GLOBAL_actualise_une_session_membre ($id = $_SESSION[$G_SESSION_id],$G_SESSION_id,$G_SESSION_pseudo,$G_SESSION_email,$G_SESSION_avatar,$G_SESSION_numaleatoire,$G_bdd);		
			GLOBAL_affiche_message_succes ($MESSAGE_succes = $T_message_succes['modification_profil']);	
		}				
	}
}
FICHIER FONCTION.PHP
function GLOBAL_enregistre_avatar_membre ($id,$nom,$table,$col,$name,$tmp_name,$G_bdd,$G_chemin_du_server,$T_message_erreur){	
	$extansion = GLOBAL_recupere_extansion_fichier ($nom_du_fichier = $name);
	@move_uploaded_file($tmp_name,$G_chemin_du_server.'/avatars/'.$nom.'.'.$extansion) OR ($MESSAGE_erreur = $T_message_erreur['upload'].' ( '.$name.' )');
	$nom_avec_extansion = $nom.'.'.$extansion;
	$nom_complet = "'avatars/$nom_avec_extansion'";
	$G_bdd->query(' UPDATE '.$table.' SET '.$col.' = "'.$nom_complet.'" WHERE col_id = "'.$id.'"  ') OR ($MESSAGE_erreur = $T_message_erreur['basededonneeconnexion'] );
	if ( isset ($MESSAGE_erreur) ){	
		return $MESSAGE_erreur;
	}
}
##edit @rthur : ajout des balises
 pour rendre le code lisible

Re: Images affichée en temps réel

par @rthur » 08 mars 2015, 08:50

Bonjour,

Il faut que tu nous donnes les extraits pertinents de ton code PHP, notamment les parties où tu renommes le fichier et où tu l'affiches.

Images affichée en temps réel

par eljeronimooo » 08 mars 2015, 08:11

Bonjour à tous et merci pour votre travail et votre temps.
Je viens de mettre mon premier site en ligne et j'observe un nouveau problème #-o

Mes membres ont la possibilité de modifier leur avatar, grâce à un input files.
Le fichier choisi est renommer en ID_MEMBRE.EXTENSION donc par exemple "1.jpg" et envoyer vers le dossier "avatars".
Quand je charge "maphoto_2.png" ( qui sera renommer en 1.png ) à la place de 1.jpg (nommée initialement "maphoto_1.jpg" ) tout va bien.
Mais quand je charge "maphoto_3.jpg" il le renomme en "1.jpg" et là il affiche maphoto_1.jpg. :non:
En local le problème existé mais disparaissait après deux ou trois rafraîchissement mais en ligne avec OVH même après une fermeture du navigateur le problème persiste. Pourtant le fichier dans le dossier avatars est bien ma_photo_3.jpg et l'info dans le bdd est bien modifiée.

Vue que le problème n'intervient que lorsque l'extension, (donc le nom complet car toujours le même ID pour chaque membre) est identique à l'ancien nom et comme le nouveau fichier est bien transférer à la place de l'autre alors c'est uniquement un problème d'affichage de PHP, non ?

Si oui, comment arrangé ça ?