Vous n'êtes pas identifié(e).
bon bah désolé pour tout ca en fait, c'était une mauvaise logique de ma part... je teste si le champ est vide... et apres dans la fonction meme si il est vide je l'envoie via un move_uploaded_file etc... donc forcément. Merci en tout cas pour vos réponses ! ![]()
merci de ton conseil... pourrais tu etre plus precis ? j'ai essayé ca et ca ne marche toujours pas... je nage
[code = php]
if (isset($_FILES['image'],$_FILES['image']['name'])) {
if (empty($_FILES['image'])) { $lienimagemodif = $_SESSION['lienimage']; }
else {
$taille_max = 20000000; // taille limitée à 20 Mo - A voir avec le param max_file_size du serveur
$dest_dossier = '/homez.325/meretmed/www/webdev/standis/images/actualites/'; // realpath du dossier de l'image a parametrer
$typeimage = array("image/png", "image/x-png", "image/jpeg", "image/jpg", "image/pjpg", "image/pjpeg"); // types d'images autorisées
if ($_FILES['image']['size'] > $taille_max)
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !<br /><em>The file must be a jpg or png image less than 20 Mo size/weight !</em></span>"; }
elseif (!in_array($_FILES['image']['type'], $typeimage))
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpg (ou jpeg) ou png !<br /><em>The file type must be jpg (or jpeg) or png !</em></span>"; }
}
}
[/code]
Parlé trop vite . Marche pas non plus avec empty(). Peut etre est-ce mal écrit ? Toujours la meme erreur, a l'envoi du formulaire, une valeur vide est envoyée via le champ file "image"... et donc erreur de type d'image autorisés.
Merci ! donc c'etait un probleme d'ignorance de ma part des fonctions php:rolleyes:. Je me coucherai moins bete ce soir. Merci encore ![]()
euh non c'est pas ca le probleme... ce qui ne marche pas c'est que si le champ file "image" est vide il est quand meme envoyé, malgré le contrôle :
[code php]
if (isset($_FILES['image'])) {
$taille_max = 20000000; // taille limitée à 20 Mo
$dest_dossier = '/homez.325/meretmed/www/webdev/standis/images/actualites/';
$typeimage = array("image/png", "image/x-png", "image/jpeg", "image/jpg", "image/pjpg", "image/pjpeg", ); // types d'images autorisées
if ($_FILES['image']['size'] > $taille_max)
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !<br /><em>The file must be a jpg or png image less than 20 Mo size/weight !</em></span>"; }
elseif (!in_array($_FILES['image']['type'], $typeimage))
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpg (ou jpeg) ou png !<br /><em>The file type must be jpg (or jpeg) or png !</em></span>"; }
}
else { $lienimagemodif = $_SESSION['lienimage']; }
[/code]
une idée , quelqu'un ? merci !
Salut,
je n'ouvre pas un nouveau topic pour mon nouveau probleme, mais je te remercie, grace a toi le probleme ci-dessus est réglé.
Maintenant je suis de nouveau bloqué... Je m'explique :
Je propose un formulaire de modification d'une actualité. Le formulaire est affiché dynamiquement, il va chercher les données dans une table. Una ctualité est composée de 1 image + 4 champs texte.
Probleme : si le champ file pour remplacer l'image n'est pas renseigné, le formulaire envoie quand meme la donnée vide et du coup, comme evidemment le "fichier" (vide) n'est pas une image, le message d'erreur disant que ce n'est pas un format autorisé apparait.
J'ai fait un var_dump pour voir ce que le $_FILE contenanit et donc il envoie bien un $_FILE vide.
voila le code :
[code:php]
function modifyactus()
{
$id = $_GET['id'];
$date = date('d/m/Y');
$datecreation = "$date";
$statut = $_POST['statut'];
if ($_POST['texteFR']=="") { $erreurtextFR = "<span class='warning'>Le champ doit etre rempli !</span>"; }
else { $texteFR = str_replace("\r\n","<br />",$_POST['texteFR']); $_SESSION['texteFR'] = $_POST['texteFR']; }
if ($_POST['texteEN']=="") { $erreurtextEN = "<span class='warning'>Le champ doit etre rempli !<br /><em>The field must be completed !</em></span>"; }
else { $texteEN = str_replace("\r\n","<br />",$_POST['texteEN']); $_SESSION['texteEN'] = $_POST['texteEN'];}
if ($_POST['altimageFR']=="") { $erreuraltFR = "<span class='warning'>Le champ doit etre rempli !</span>"; }
else { $altimageFR = $_POST['altimageFR']; $_SESSION['altimageFR'] = $_POST['altimageFR']; }
if ($_POST['altimageEN']=="") { $erreuraltEN = "<span class='warning'>Le champ doit etre rempli !<br /><em>The field must be completed !</em></span>"; }
else { $altimageEN = $_POST['altimageEN']; $_SESSION['altimageEN'] = $_POST['altimageEN']; }
/* Ci-dessous ca ne marche pas. J'ai essayé avec if ($_FILES['images']!=""), essayé en inversant la condition : if (!isset($_FILES['image'])) if ($_FILES['image']==""), ... ca marche pas.
Le formulaire poste le contenu du champ file meme si celui-ci est vide. Et donc forcement ca génere une erreur de type d'image. */
if (isset($_FILES['image'])) {
$taille_max = 20000000; // taille limitée à 20 Mo
$dest_dossier = '/homez.325/meretmed/www/webdev/standis/images/actualites/';
$typeimage = array("image/png", "image/x-png", "image/jpeg", "image/jpg", "image/pjpg", "image/pjpeg", ); // types d'images autorisées
if ($_FILES['image']['size'] > $taille_max)
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !<br /><em>The file must be a jpg or png image less than 20 Mo size/weight !</em></span>"; }
elseif (!in_array($_FILES['image']['type'], $typeimage))
{ $erreurimg = "<span class='warning'>L'image doit etre un fichier jpg (ou jpeg) ou png !<br /><em>The file type must be jpg (or jpeg) or png !</em></span>"; }
}
else { $lienimagemodif = $_SESSION['lienimage']; }
// Ci-dessous le reste de la fonction qui marche bien.
if ((!isset($erreurimg))&&(!isset($erreuraltFR))&&(!isset($erreuraltEN))&&(!isset($erreurtextFR))&&(!isset($erreurtextEN)))
{
$dest_fichier = basename($_FILES['image']['name']);
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = strtolower($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier . $dest_fichier);
$lienimagemodif = "images/actualites/$dest_fichier";
// Resize
$imgaredim="/homez.325/meretmed/www/webdev/standis/images/actualites/".$dest_fichier; // realpath du dossier de l'image a parametrer
$img_size = getimagesize($imgaredim);
$W_Src = $img_size[0];
$H_Src = $img_size[1];
$W_max = 150;
$W = $W_max;
$H = $W * ($H_Src / $W_Src);
$size = getimagesize($imgaredim);
if (($size['mime']=='image/jpeg') || ($size['mime']=='image/jpg') || ($size['mime']=='image/pjpg') || ($size['mime']=='image/pjpeg')) {
$img_big = imagecreatefromjpeg($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagejpeg($img_mini,$imgaredim);
}
elseif (($size['mime']=='image/png') || ($size['mime']=='image/x-png')) {
$img_big = imagecreatefrompng($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H)
or $img_mini = imagecreate($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagepng($img_mini,$imgaredim);
}
//if (isset($lienimagemodif)) { $clause=",lienimage='$lienimagemodif'"; } else { $clause=""; }
require "cfg_config.php";
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
mysql_select_db($cfgBase,$db);
$query = "UPDATE actualites SET texteFR='$texteFR',texteEN='$texteEN',lienimage='$lienimagemodif',altimageFR='$altimageFR',altimageEN='$altimageEN',datecreation='$datecreation',statut='$statut' WHERE rang='$id'";
mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
echo "<span class='success'>Les modifications ont été enregistrées avec succès.</span>";
mysql_close($db);
return (0);
}
else {
echo var_dump ($_FILES); // avec ca je vois que le contenu $_FILES['image'] est envoyé meme si le champ file "image" est vide
if (isset($erreurimg)) echo $erreurimg; // et donc là il m'affiche l'erreur $erreurimg qui correspond au mauvais type d'image
elseif (isset($erreuraltFR)) echo $erreuraltFR;
elseif (isset($erreuraltEN)) echo $erreuraltEN;
elseif (isset($erreurtextEN)) echo $erreurtextEN;
elseif (isset($erreurtextFR)) echo $erreurtextFR;
else echo "ya une couille dans le potage;";
}
}[/code]
Merci millie fois. Avec ta solution, ca marche.
Donc je repose la fonction qui marche au cas ou ca puisse servir a d'autres ...
if (isset($_FILES['image']))
{
$taille_max = 20000000; // taille limitée à 20 Mo - A voir avec le param max_file_size du serveur
$dest_dossier = '/homez.325/meretmed/www/webdev/standis/images/actualites/'; // realpath du dossier de l'image a parametrer
$typeimage = array("image/png", "image/x-png", "image/jpeg", "image/jpg", "image/pjpg", "image/pjpeg", );
if ($_FILES['image']['size'] > $taille_max)
{ $erreur = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !</span>"; }
elseif (!in_array($_FILES['image']['type'], $typeimage))
{ $erreur = "<span class='warning'>L'image doit etre un fichier jpeg ou png !</span>"; }
if (!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = strtolower($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier . $dest_fichier);
$lienimage = "images/actualites/$dest_fichier";
// Resize
$imgaredim="/homez.325/meretmed/www/webdev/standis/images/actualites/".$dest_fichier; // realpath du dossier de l'image a parametrer
$img_size = getimagesize($imgaredim);
$W_Src = $img_size[0];
$H_Src = $img_size[1];
$W_max = 150;
$W = $W_max;
$H = $W * ($H_Src / $W_Src);
$size = getimagesize($imgaredim);
if (($size['mime']=='image/jpeg') || ($size['mime']=='image/jpg') || ($size['mime']=='image/pjpg') || ($size['mime']=='image/pjpeg')) {
$img_big = imagecreatefromjpeg($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagejpeg($img_mini,$imgaredim);
}
elseif (($size['mime']=='image/png') || ($size['mime']=='image/x-png')) {
$img_big = imagecreatefrompng($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H)
or $img_mini = imagecreate($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagepng($img_mini,$imgaredim);
}
require "cfg_config.php";
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
mysql_select_db($cfgBase,$db);
$query = "INSERT INTO actualites (texteFR,texteEN,lienimage,altimageFR,altimageEN,datecreation,statut) VALUES('$texteFR','$texteEN','$lienimage','$altimageFR','$altimageEN','$datecreation','1')";
mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
echo "<span class='success'>Votre actualité a été publiée avec succès.</span>";
mysql_close($db);
return (0);
}
else {
echo $erreur;
$lienimage = "";
}
}
}
?>
euh... la deuxieme fonction n'est pas a prendre en compte... petite erreur de copier-coller
C'est réparé et colorisé
MK
Oui je vais tester ca !
Bon, j'ai fait du debug et j'avance... un peu. Mais cette verification de type mime me pose encore des problemes. Voila le code de ma fonction complete. J'ai veriufié et la gestion d'erreur de taille fonctionne. Par contre avec ce code, j'ai toujours l'erreur de type mime, c'est a dire qu'aucun fichier ne passe. J'ai mis des !== mais je suis pas sur...
if (isset($_FILES['image']))
{
$taille_max = 20000000; // taille limitée à 20 Mo - A voir avec le param max_file_size du serveur
$dest_dossier = '/homez.325/meretmed/www/webdev/standis/images/actualites/'; // realpath du dossier de l'image a parametrer
if ($_FILES['image']['size'] > $taille_max)
{ $erreur = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !</span>"; }
elseif (($_FILES['image']['type'] !== "image/png") || ($_FILES['image']['type'] !== "image/x-png") || ($_FILES['image']['type'] !== "image/jpeg") || ($_FILES['image']['type'] !== "image/jpg") || ($_FILES['image']['type'] !== "image/pjpg") || ($_FILES['image']['type'] !== "image/pjpeg"))
{ $erreur = "<span class='warning'>L'image doit etre un fichier jpeg ou png !</span>"; }
if (!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = strtolower($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier . $dest_fichier);
$lienimage = "images/actualites/$dest_fichier";
// Resize
$imgaredim="/homez.325/meretmed/www/webdev/standis/images/actualites/".$dest_fichier; // realpath du dossier de l'image a parametrer
$img_size = getimagesize($imgaredim);
$W_Src = $img_size[0];
$H_Src = $img_size[1];
$W_max = 150;
$W = $W_max;
$H = $W * ($H_Src / $W_Src);
$size = getimagesize($imgaredim);
if (($size['mime']=='image/jpeg') || ($size['mime']=='image/jpg') || ($size['mime']=='image/pjpg') || ($size['mime']=='image/pjpeg')) {
$img_big = imagecreatefromjpeg($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagejpeg($img_mini,$imgaredim);
}
elseif (($size['mime']=='image/png') || ($size['mime']=='image/x-png')) {
$img_big = imagecreatefrompng($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H)
or $img_mini = imagecreate($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagepng($img_mini,$imgaredim);
}
}
}
else {
$lienimage = "";
}
if (!isset($erreur)) {
require "cfg_config.php";
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
mysql_select_db($cfgBase,$db);
$query = "INSERT INTO actualites (texteFR,texteEN,lienimage,altimageFR,altimageEN,datecreation,statut) VALUES('$texteFR','$texteEN','$lienimage','$altimageFR','$altimageEN','$datecreation','1')";
mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
echo "<span class='success'>Votre actualité a été publiée avec succès.</span>";
mysql_close($db);
return (0);
}
else echo $erreur;
}
}
Merci de ta réponse mais...
tu veux dire si j'ecris ca :
Ca veut dire : si "la taille est sup à 20 Mo" ET QUE "le type mime n'est pas jpeg" ET QUE ""...
Donc si j'ai un fichier jpeg ou png qui fait une taille superieure a 20 Mo l'erreur ne sera pas gérée. Alors qu'avec des || je gère chaque cas. Non ? J'ai faux ?
Et puis ca ne me dit pas pourquoi les controles marchent pas. Je viens encore de tester et ca ne marche effectivement pas. Si je les enleve, tout le script s'execute bien. Sinon, non seulement n'importe quel type de fichier est uploadé, mais en plus, le lien dans la table ne s'écrit pas... heeelp !
Bonjour,
j'ai qques problemes avec un script d'upload d'image.
Mes controles pour verifier que c'est bien une image qui est uploadée via mon formulaire ne fonctionnent pas. Du coup, n'importe quel fichier peut etre uploadé, ce qui est évidemment hors de question...
Voici le code, pourtant vraiment simple :
// gestion des erreurs, c'est ca qui ne marche pas
if (($_FILES['image']['size'] > $taille_max) || ($_FILES['image']['type'] != "image/png") || ($_FILES['image']['type'] != "image/x-png") || ($_FILES['image']['type'] != "image/jpeg") || ($_FILES['image']['type'] != "image/jpg") || ($_FILES['image']['type'] != "image/pjpg") || ($_FILES['image']['type'] != "image/pjpeg"))
{
$erreur = "<span class='warning'>L'image doit etre un fichier jpeg ou png d'un poids inférieur à 20 Mo !</span>";
}
//
if (!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = strtolower($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier . $dest_fichier);
$lienimage = "images/actualites/$dest_fichier";
}
}
else lienimage = "";
?>
Quelle est l'erreur ? et sinon, avez-vous une autre solution que de controler les type mime pour m'assurer que c'est bien une image jpg ou png de moins de 20 Mo qui est uploadée ? Merci
J'ai suivi ton conseil et fait un var_dump pour voir ce que le $_FILE contenait et voila ce qu'il m'a retourné avec une image test.jpg
array(1) { ["image"]=> array(5) { ["name"]=> string(8) "test.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(22) "/var/log/tmp/phpNuSKYw" ["error"]=> int(0) ["size"]=> int(50732) } }
je ne sais pas comment interprété ca ? Apparemment il voit bien le fichier ? non ?
Salut,
OK pour les S_POST...
OK pour le unset ($erreur)
pour le !@getimagesize, c'est un controle de plus... vu que le controle sur les types mime controlent... les mime type. En fait logiquement je c=devrais mettre ce controle en premier.
Pour le realpath, oui dans mon code j'ai mon "vrai" realpath
Et non, je n'ai pas de message d'erreur, sauf un qui me dit attention division par zero à la ligne 57 (ligne 57 dans le code posté ci-dessus), ce qui est normal, vu que d'image il n'y a point...
Donc merci de ton message, ca va me permettre de corriger les petites maladresses de mon code, mais sur l'essentiel, je ne comprends toujours pas. Une autre idée ;-) ?
Bonjour,
mon code pour uploader une image ne fonctionne pas. Je n'arrive pas a comprendre mon erreur. Le principe : j'uploade une image via un formulaire, le fichier est déplacé dans un répertoire, j'insère le lien correspondant dans une table.
Quand je teste, rien ne se passe : l'image n'est pas uploadée, le lien n'est pas inséré.
La fonction (dans un fichier fonctions.php appelé par la page) :
$date = date('d/m/Y');
$datecreation = "$date";
$texteFR = str_replace("\r\n","<br />",$_POST['texteFR']);
$texteEN = str_replace("\r\n","<br />",$_POST['texteEN']);
$altimageFR = $_POST['altimageFR'];
$altimageEN = $_POST['altimageEN'];
if (isset($_FILES['image']))
{
unset($erreur);
$taille_max = 20000000; // taille limitée à 20 Mo
$dest_dossier = '/images/actualites/'; // realpath du dossier de l'image
if (($_FILES['image']['type'] != 'image/png') || ($_FILES['image']['type'] != 'image/x-png') || ($_FILES['image']['type'] != 'image/jpeg') || ($_FILES['image']['type'] != 'image/jpg') || ($_FILES['image']['type'] != 'image/pjpg') || ($_FILES['image']['type'] != 'image/pjpeg'))
{
$erreur = "<span class='warning'>Veuillez sélectionner un fichier de type jpeg ou png !</span>";
}
elseif ($_FILES['image']['type'] == 'image/bmp')
{
$erreur = "<span class='warning'>Le format bitmap (.bmp) n'est pas accepté. Convertissez votre image en jpg ou en png avant de l'envoyer, merci.</span>";
}
elseif ($_FILES['image']['size'] > $taille_max)
{
$erreur = "<span class='warning'>L'image doit avoir un poids inférieur à 20 Mo !</span>";
}
elseif(!@getimagesize($_FILES['image']['tmp_name']))
{
$erreur = "<span class='warning'>Vous avez tenté d'envoyer un fichier qui n'est pas une image !</span>";
}
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['image']['name']);
$dest_fichier = strtr($dest_fichier,'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ','AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$dest_fichier = strtolower($dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['image']['tmp_name'], $dest_dossier . $dest_fichier);
$lienimage = "images/actualites/$dest_fichier";
}
// Resize
$imgaredim="/images/actualites/".$dest_fichier; // realpath du dossier de l'image
$img_size = getimagesize($imgaredim);
$W_Src = $img_size[0];
$H_Src = $img_size[1];
$W_max = 150;
$W = $W_max;
$H = $W * ($H_Src / $W_Src);
$size = getimagesize($imgaredim);
if (($size['mime']=='image/jpeg') || ($size['mime']=='image/jpg') || ($size['mime']=='image/pjpg') || ($size['mime']=='image/pjpeg')) {
$img_big = imagecreatefromjpeg($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagejpeg($img_mini,$imgaredim);
}
elseif (($size['mime']=='image/png') || ($size['mime']=='image/x-png')) {
$img_big = imagecreatefrompng($imgaredim);
$img_new = imagecreate($W, $H);
$img_mini = imagecreatetruecolor($W, $H)
or $img_mini = imagecreate($W, $H);
imagecopyresized($img_mini,$img_big,0,0,0,0,$W,$H,$size[0],$size[1]);
imagepng($img_mini,$imgaredim);
}
}
else { $lienimage = ""; }
require "cfg_config.php";
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
mysql_select_db($cfgBase,$db);
$query = "INSERT INTO actualites (texteFR,texteEN,lienimage,altimageFR,altimageEN,datecreation,statut) VALUES('$texteFR','$texteEN','$lienimage','$altimageFR','$altimageEN','$datecreation','1')";
mysql_query($query) or die('Erreur SQL !<br />'.$query.'<br />'.mysql_error());
echo "<span class='success'>Votre actualité a été publiée avec succès.</span>";
mysql_close($db);
return (0);
}
?>
et le formulaire :
Merci de vos lumières !
Merci de ta réponse. Je vais essayer ce que tu suggères. Je te tiens au courant.
Bonjour,
Mon problème du jour n'est pas exactement un problème de code, mais plutot un problème de "méthode". Je veux faire un système basique de "galerie photo". Ce sont les contributeurs du site qui pourront uploader les photos et créer le nom des galeries en dessous desquelles les photos devront s'afficher dans le site.
Donc voila le principe :
Formulaire 1 : nouvelle galerie [champ texte]
-> je conserve le nom en variable de session
Formulaire 2 -> Inserer une photo [champ fichier]->OK->inserer une autre photo-> etc.
J'uploade la photo dans un dossier, j'insere dans une table le lien de la photo, et le nom de la galerie associée.
Jusqu'ici tout va bien.
Mon problème c'est l'affichage des galeries dans le site : comment faire pour afficher dans la meme page le nom de la galerie et les photos associées en dessous, et ca pour chaque galerie ? Si je fais une requete avec un while{mysql_fetch_array(requete)}, comment faire pour n'afficher qu'une seule fois le nom de la galerie ?
J'avais pensé à 2 tables liées : 1 table avec les noms de galeries, 1 autre avec les photos. Mais la encore si je fais 1 requete dans chaque table, comment faire pour afficher dans la meme page nom de la galerie + photos associées en dessous, et ca autant de fois qu'il y a de galeries ?
Merci de vos lumières.
Eh oui c'est ca !!! merci beaucoup
Bonjour à tous,
voila, j'ai un code tres tres simple et pourtant ca ne fonctionne pas. J'ai essayé de débugger ligne par ligne, et je ne vois toujours pas ce qui cloche. Ca doit etre énorme devant mes yeux pourtant ! Merci de votre aide !
C'est une fonction d'inscription à un jeu via un formulaire HTML. Seules les personnes possédant un code client dans la table mySQL sont autorisés à jouer.
require "../common/cfg_config.php";
$db = mysql_connect($cfgHote, $cfgUser, $cfgPass) or die ("Impossible de se connecter : " . mysql_error());
mysql_select_db($cfgBase,$db);
$query = "SELECT codeclient FROM jeu_ambassadeur WHERE codeclient='$codeclient'";
$req = mysql_query($query, $db) or die('Erreur SQL !<br>'.$query.'<br>'.mysql_error());
if (mysql_num_rows($req)!=1)
{
echo "Code client invalide ou inexistant";
}
else
{
$query2 = "SELECT nom FROM jeu_ambassadeur WHERE codeclient='$codeclient'";
$req2 = mysql_query($query2, $db) or die('Erreur SQL !<br>'.$query2.'<br>'.mysql_error());
if (mysql_num_rows($req2)==0)
{
$query3 = "UPDATE jeu_ambassadeur SET nom='$nom', prenom='$prenom', email='$email', dateinscription='$dateinscription' WHERE codeclient='$codeclient'";
$req3 = mysql_query($query3, $db) or die('Erreur SQL !<br>'.$query3.'<br>'.mysql_error());
echo "<span class='texte'>Votre participation est validée.</span>";
}
else { echo "Votre code client est deja utilise."; }
}
}
?>
Et le formulaire HTML
merci de ta réponse... tu as raison evidemment. Je vais essayer autre chose.
Bonjour a tou(te)s,
voila mon probleme :
J'ai un formulaire de commande de produits. Les clients peuvent commander plusieurs produits. Chaque produit a plusieurs quantites, mais une seule quantite par produit peut etre choisie.
j'ai ensuite un formulaire "récapitulatif d'une commande" qui est généré dynamiquement, et qui va chercher des données dans une table "produits".
Ces données sont stockées dans le formulaire dans des champs cachés.
Pour simplifier j'ai 4 données importantes :
- le stock disponible pour chaque produit (données récupérées dans la table "produits")
- la quantité commandée pour chaque produit (données entrée par le client)
- la référence des produit (données récupérées dans la table "produits")
- j'opère la soustraction $donnee['stock']-$quantitecommandee pour chaque produit.
Lors de la validation de la commande (post du formulaire), je récupère les informations et je fais 2 opérations : 1. j'insere la commande dans une table "commandes" (pas de probleme)... et 2. je souhaite soustraire les quantités commandées du champ "stock" de la table "produits". C'est la que ca bloque. J'ai fait ca :
Cela fait des heures que je m'arrache les cheveux, si vous pouvez m'aider je vous en serai tres reconnaissant ! Merci !