Je développe actuellement un petit site PHP avec une base Mysql.
J'ai un problème d'exécution d'une requête SQL et je ne sais pas à quoi c'est dû
Dans ma fiche utilisateur on peut renseigner des informations comme année de naissance, adresse ...
On peu aussi ajouter une photo qui sera affichée en haut à droite de la page du navigateur lorsqu'il est connecté.
Toutes les infos de la fiche utilisateurs sont passées en POST à une page PHP qui prépare l'Insert (y compris l'image)
-> je sais que le stockage d'image en base fait débat mais c'est mon choix (je vais de toutes façons stocker d'autres document en base).
Lorsque je valide mon formulaire sans image : tout va bien l'update se fait sans problème.
Dès que j'ajoute une image, l'insert ne se fait pas.
Lorsque je débug en affichant la requête dans ma page html au lieu de l'exécuter, je constate que l'insert n'est pas complet !
Si vous avez des idées !! je suis preneur car je suis à sec là
Ex :
- -1- Update sans image : UPDATE USERS SET ADRESSE1='xxxxxxxx', ADRESSE2='YYYYYY', ADRESSE3='99999', TEL1='0000000000' WHERE USERID='TOTO'
-2- Update avec image : UPDATE USERS SET ADRESSE1='xxxxxxxx', ADRESSE2='YYYYYY', ADRESSE3='99999', IMAGE_TAILLE='2492',IMAGE_TYPE='image/jpeg', IMAGE_DATAS='ÿØÿà\0JFIF\0\0\0d\0d\0\0ÿì\0Ducky\0\0\0\0\0<\0\0ÿî\0Adobe\0dÀ\0\0\0ÿÛ\0„\0 ÿÀ\0\0P\0@\0ÿÄ
Est-elle tronquée à cause d'un caractère bizarre ?
Longueur max d'une variable PHP atteinte ?
je ne sais pas ...
Dans la réalité : si je compte le nombre de caractères de ma variable c'est pas toujours pareil en fonction de l'image choisie mais c'est dans les 2000 à plus ou moins 300.
Ci-dessous une version épurée de la page profil : en gros lorsqu'on click sur "Sauver" j'exécute une fonction javascript pour checker le contenu de chaque input et ensuite faire le POST vers une page PHP qui récupère le tout, génère un Update et exécute l'Update.
Page Profil.php
Code : Tout sélectionner
<script language="JavaScript" type="text/JavaScript">
function Controler_profil() { document.forms['userprofile'].method = "POST"; document.forms['userprofile'].submit(); }
</script>
<form id="userprofil" enctype="multipart/form-data" action="insert.php5">
<input type="file" onFocus="chgfond(this,'on');" onBlur="chgfond(this,'off');" class='Text2Noir' name="fichier">
<input name='terminer' type='text' value='Sauver.' onClick='Controler_profil();'>
</form>
Code : Tout sélectionner
<?php
$Req_update_table="UPDATE USERS ";
$Req_update_set="SET ";
$Req_update_where="WHERE USERID=".$_POST['userid'];
...
$file = fopen($_FILES['fichier']['tmp_name'],"rb"); $img_blob=fread($file,$_FILES['fichier']['size']);
$Req_update_set=$Req_update_set."IMAGE_TAILLE='".$_FILES['fichier']['size']."',";
$Req_update_set=$Req_update_set."IMAGE_TYPE='".$_FILES['fichier']['type']."',";
$Req_update_set=$Req_update_set."IMAGE_DATAS='".addslashes($img_blob)."' ";
...
$Requete_update_user=$Req_update_table.$Req_update_set.$Req_update_where." LOGIN='".$_POST['userid']."'";
$Execute_update=mysqli_query($connect_mysql,$Requete_update_user);
?>