J' ai fait un formulaire qui doit charger une image et quelques donnés.
Mon problème est que je souhaite insérer les données dans la table même si l'utilisateur ne met pas de photo. Par contre je ne veux pas insérer les données si l'image chargée ne correspond pas à mes critères.
J'ai essayé de résoudre le problème avec
if(isset($_FILES["monfichier"]["name"] ))
mais ça ne marche pas. Que le champs monfichier soit vide ou pas il exécute toujours la suite.
$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form5"))
{
$content_dir = '../image/image-article/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['monfichier']['tmp_name'];
if(isset($_FILES["monfichier"]["name"] ))
{
if( !is_uploaded_file($tmp_file) )
{
echo $_FILES['monfichier']['type'];
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['monfichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
{
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['monfichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
{
exit("Impossible de copier le fichier dans $content_dir");
}
echo "Le fichier a bien été uploadé";
}
$insertSQL = sprintf("INSERT INTO t_article (article, id_fourn, id_marque, id_prod, texte, nouveaute, promotion, photo, textepromo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['article'], "text"),
GetSQLValueString($_POST['id_fourn'], "int"),
GetSQLValueString($_POST['id_marque'], "int"),
GetSQLValueString($_POST['id_prod'], "int"),
GetSQLValueString($_POST['texte'], "text"),
GetSQLValueString($_POST['nouveaute'], "text"),
GetSQLValueString($_POST['promotion'], "text"),
GetSQLValueString($_FILES["monfichier"]["name"], "text"),
GetSQLValueString($_POST['textepromo'], "text"));
mysql_select_db($database_connectgl, $connectgl);
$Result1 = mysql_query($insertSQL, $connectgl) or die(mysql_error());
}