IE et php incompatibilité
nickleus
Messages postés
374
Date d'inscription
Statut
Membre
Dernière intervention
-
nickleus Messages postés 374 Date d'inscription Statut Membre Dernière intervention -
nickleus Messages postés 374 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila j'ai créer un petit prog en php pour pouvoir charger des images dans un ficher sur mon serveur.
je détecte les différent formats d'images que j'autorise. et dans le cas ou le format ne correspond pas j'affiche : "
Le format n'est pas valide."
sous Firefox ça marche nickel mais sur internet explorer ca me met sur tous les fichiers que le format n'est pas valide.
je met a disposition le script :
if ((isset($_POST["MM_upload"])) && ($_POST["MM_upload"] == "upload")) {
//Test si le chargement est effectué.
if(is_uploaded_file($_FILES['search_ban']['tmp_name'])){
//Test si l'annonceurs à un dossier.
if(!is_dir($dirLocalisation.$user_id))
{mkdir($dirLocalisation.$user_id);}
$fileType = $_FILES['search_ban']['type'];
//detection du format du fichier
switch($fileType){
case "image/jpeg":
$resultat="JPEG";
break;
case "image/jpg":
$resultat="JPG";
break;
case "image/gif":
$resultat="gif";
break;
case "image/png":
$resultat="png";
break;
case "application/x-shockwave-flash":
$resultat="swf";
break;
default:
$resultat = false;}
if($resultat!=false){
//Definission des variables.
$categorie = "E"; //categorie E = Echange et P = payant.
$TypeCampagne = $_POST['radio'];
$rename_ban = $_POST['rename_ban'];
$site = $_POST['site'];
$fileNameTmp = $_FILES['search_ban']['tmp_name'];
$fileName = basename($_FILES['search_ban']['name']);
$size_ban = $_FILES['search_ban']['size'];
$error = $_FILES['search_ban']['error'];
if($TypeCampagne == "clics")
{$TypeCamp = "C";}
else
{$TypeCamp = "A";}
//Renommer le nom du fichier sans les caractères interdits.
$name_ban = renameFiles($fileName);
//Adresse ou va le dossier.
$uploaddir = $dirLocalisation.$user_id;
$loc = $uploaddir."/".$name_ban;
//Taille de l'image.
$fileImageSize = getimagesize($fileNameTmp);
$height = $fileImageSize[0];
$width = $fileImageSize[1];
$height_ban = $height;
$width_ban = $width;
//Cle de $id_ban.
$id_ban = uniqid();
//Si le fichier est bien déplacé.
if(move_uploaded_file($fileNameTmp, $loc)){
$insertSQL = "INSERT INTO name_banniere (height_ban, width_ban, size_ban, name_ban, id_ban, nom_ban, typecamp, categorie, id_site) VALUES ('$height_ban', '$width_ban', '$size_ban', '$name_ban', '$id_ban', '$rename_ban', '$TypeCamp', '$categorie', '$site')";
mysql_select_db($database_annonceurs, $annonceurs);
$Result = mysql_query($insertSQL, $annonceurs) or die(mysql_error());
if($categorie == 'E')
{$table = "credits_echange";}
else
{$table = "credits_payants";}
if($TypeCamp == "A")
{$colone = "affiche_ban"; $credit = 1000;}
else
{$colone = "clics_ban"; $credit = 100;}
$insertSQL = "INSERT INTO $table (id_ban, $colone) VALUES ('$id_ban', '$credit')";
mysql_select_db($database_annonceurs, $annonceurs);
$Result = mysql_query($insertSQL, $annonceurs) or die(mysql_error());
if($Result != 0)
{header("Location: campagnes.php5");}}}
else{echo "Le format n'est pas valide.";}}}
voila j'ai créer un petit prog en php pour pouvoir charger des images dans un ficher sur mon serveur.
je détecte les différent formats d'images que j'autorise. et dans le cas ou le format ne correspond pas j'affiche : "
Le format n'est pas valide."
sous Firefox ça marche nickel mais sur internet explorer ca me met sur tous les fichiers que le format n'est pas valide.
je met a disposition le script :
if ((isset($_POST["MM_upload"])) && ($_POST["MM_upload"] == "upload")) {
//Test si le chargement est effectué.
if(is_uploaded_file($_FILES['search_ban']['tmp_name'])){
//Test si l'annonceurs à un dossier.
if(!is_dir($dirLocalisation.$user_id))
{mkdir($dirLocalisation.$user_id);}
$fileType = $_FILES['search_ban']['type'];
//detection du format du fichier
switch($fileType){
case "image/jpeg":
$resultat="JPEG";
break;
case "image/jpg":
$resultat="JPG";
break;
case "image/gif":
$resultat="gif";
break;
case "image/png":
$resultat="png";
break;
case "application/x-shockwave-flash":
$resultat="swf";
break;
default:
$resultat = false;}
if($resultat!=false){
//Definission des variables.
$categorie = "E"; //categorie E = Echange et P = payant.
$TypeCampagne = $_POST['radio'];
$rename_ban = $_POST['rename_ban'];
$site = $_POST['site'];
$fileNameTmp = $_FILES['search_ban']['tmp_name'];
$fileName = basename($_FILES['search_ban']['name']);
$size_ban = $_FILES['search_ban']['size'];
$error = $_FILES['search_ban']['error'];
if($TypeCampagne == "clics")
{$TypeCamp = "C";}
else
{$TypeCamp = "A";}
//Renommer le nom du fichier sans les caractères interdits.
$name_ban = renameFiles($fileName);
//Adresse ou va le dossier.
$uploaddir = $dirLocalisation.$user_id;
$loc = $uploaddir."/".$name_ban;
//Taille de l'image.
$fileImageSize = getimagesize($fileNameTmp);
$height = $fileImageSize[0];
$width = $fileImageSize[1];
$height_ban = $height;
$width_ban = $width;
//Cle de $id_ban.
$id_ban = uniqid();
//Si le fichier est bien déplacé.
if(move_uploaded_file($fileNameTmp, $loc)){
$insertSQL = "INSERT INTO name_banniere (height_ban, width_ban, size_ban, name_ban, id_ban, nom_ban, typecamp, categorie, id_site) VALUES ('$height_ban', '$width_ban', '$size_ban', '$name_ban', '$id_ban', '$rename_ban', '$TypeCamp', '$categorie', '$site')";
mysql_select_db($database_annonceurs, $annonceurs);
$Result = mysql_query($insertSQL, $annonceurs) or die(mysql_error());
if($categorie == 'E')
{$table = "credits_echange";}
else
{$table = "credits_payants";}
if($TypeCamp == "A")
{$colone = "affiche_ban"; $credit = 1000;}
else
{$colone = "clics_ban"; $credit = 100;}
$insertSQL = "INSERT INTO $table (id_ban, $colone) VALUES ('$id_ban', '$credit')";
mysql_select_db($database_annonceurs, $annonceurs);
$Result = mysql_query($insertSQL, $annonceurs) or die(mysql_error());
if($Result != 0)
{header("Location: campagnes.php5");}}}
else{echo "Le format n'est pas valide.";}}}
2 réponses
Le PHP s'exécutant côté serveur, il ne devrait y avoir aucune différence entre Firefox et IE. Donc l'erreur doit provenir dès le début, avec tes variables $_POST["xxxxx"] et $_FILES['search_ban']['tmp_name'], lors de la page précédente.
Tu peux montrer le <form> de la page d'avant?
Tu peux montrer le <form> de la page d'avant?
Alors j'ai fini par trouver une solution a mon problème.
dans la fonction switch je met :
case "image/png":
$resultat="png";
break;
ce qui marche parfaitement avec firefox mais pas avec IE par contre en mettant ces lignes parlementaires :
case "image/x-png":
$resultat="png";
break;
ça marche mais est ce que quelqu'un pourrait me dire pour quoi il faut que je mette le : x-
et est ce qu'il faut que le fasse la même opération pour tous les autre détection de format ????
dans la fonction switch je met :
case "image/png":
$resultat="png";
break;
ce qui marche parfaitement avec firefox mais pas avec IE par contre en mettant ces lignes parlementaires :
case "image/x-png":
$resultat="png";
break;
ça marche mais est ce que quelqu'un pourrait me dire pour quoi il faut que je mette le : x-
et est ce qu'il faut que le fasse la même opération pour tous les autre détection de format ????