Page 1 sur 1

Problème de requête SQL pour update un fichier

Posté : 04 févr. 2015, 21:09
par benW94
Salut!
Je travaille sur un site web qui contient une partie espace membre, et je souhaite mettre en place un système de photo de profil.
j'ai créé un formulaire en html permettant de choisir un fichier (ici, une photo) et ce fichier sera traité par une page php qui enregistrera la photo dans un fichier sur le serveur (en local pour l'instant), et qui enregistrera le nom de la photo dans une table 'membre' pour pouvoir associer le compte à la photo sélectionnée.
Voila le formulaire :
<form method="POST" action="Controleur/modifier-profil-photo.php" enctype="multipart/form-data">
   <?php include("Controleur/photo-profil.php"); ?>
   <p class="modifier-profil-bloc-droite-image-label">Modifier votre photo de profil : </p>
   <input id="photo-profil" class="modifier-profil-bloc-droite-image-input" type="file" name="photo-profil"/>
   <input class="modifier-profil-submit2" type="submit" value="Upload"/>
</form>
Et voila la page qui traite les données du formulaire :
<?php 

//Propriétés du fichier téléchargé
$name = $_FILES['photo-profil']['name'];
$type = $_FILES['photo-profil']['type'];
$size = $_FILES['photo-profil']['size'];
$temp = $_FILES['photo-profil']['tmp_name'];
$error = $_FILES['photo-profil']['error'];

if ($error > 0)
{
	//Une erreur s'est produite au niveau de la photo, la photo ne convient pas.
	header('Location: ../index.php?page=modifier-profil&erreur=error');
}
elseif (substr($type, 0, 5) != 'image')
{
	//On vérifie qu'il s'agit bien d'une image
	header('Location: ../index.php?page=modifier-profil&erreur=image');
}
elseif ($size > 5000000)
{
	//On vérifie le poids de l'image
	header('Location: ../index.php?page=modifier-profil&erreur=poids');
}
else
{
	//Il n'y a pas d'erreurs au niveau de la photo, on peut envoyer la photo dans le fichier Images/photo-profil/
	move_uploaded_file($temp, "../Images/photos-profil/" . $name);

	//On enregistre le chemin vers la photo dans la table membre

	//On se connecte à la base de données
	include("../Modele/connexion-bdd.php");

	//On effectue la requête
	$req = $bdd->prepare('UPDATE membre SET photo = ? WHERE id_membre == ?');
	$req->execute(array($name, $_SESSION['id_membre']));

	//Redirection vers la page de modification de profil
	header('Location: ../index.php?page=modifier-profil&modif=photo');
}

?>
La partie formulaire est bonne, l'enregistrement de la photo dans un fichier fonctionne bien, mais un seul problème : la requête SQL. Apparemment les deux petites lignes de PHP/SQL sont mal interprétées/mal écrites.

J'ai relu plein de fois mon code, je comprends pas pourquoi le nom de la photo uploadée ne veut pas aller dans ma base de données :/

Peut être que l'erreur vient d'autre part

Quelqu'un pour m'aider, plz ? :)

Re: Problème de requête SQL pour update un fichier

Posté : 04 févr. 2015, 21:23
par tof73
UPDATE membre SET photo = ? WHERE id_membre == ?
pas de ==
attention à la sécurité avec les fichiers uploadés, par exemple, un fichier gif peut être valide et contenir du php qui est exécuté sur le serveur.

Re: Problème de requête SQL pour update un fichier

Posté : 04 févr. 2015, 22:06
par benW94
Ah oui ptin je l'avais pas du tout vu !
merci :)