j'ai apparemment un bug sur un script de move_uploaded_file()...
sur de gros fichiers, mon script (voir en dessous) ne marche pas. Il ne fait pas de vérification de nom, extension, ... j'ai testé avec des variables de test (affichage de valeurs)... et lorsque je lance le script (bouton), mon navigateur cherche un peu et puis me renvoie le formulaire vide...
Si quelqu'un a une idée...
Merci d'avance...
voici mon script :
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$taille_max = 100000;
if (filesize($_FILES['image']['tmp_name']) > $taille_max) {
echo "bonjour";
}
if(isset($_FILES['image'])) {
if($_FILES['image']['name'] != "") {
// vérification extension
$extension = strrchr($_FILES['image']['name'], '.');
// récupère la partie après le .
// Ex : png
$extension = substr($extension, 1);
if ($extension != 'jpg') {
$erreur='1';
echo "Vous devez sélectionner un fichier jpg";
}
else {$erreur ='0';}
// vérification taille
$taille_max = 100000;
if (filesize($_FILES['image']['tmp_name']) > $taille_max) {
echo "Votre fichier doit faire moins de 500Ko !";
$erreur='1';}
else {$erreur='0';}
$dest_fichier = $_FILES['image']['name'];
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
$image = "../news/".$dest_fichier;
move_uploaded_file($_FILES['image']['tmp_name'], "../news/".$image);
} else {$image = "";}
} else {$erreur ='0';}
if ($erreur != '1') {
$insertSQL = sprintf("INSERT INTO news (texte_news, image_news) VALUES (%s, %s)",
GetSQLValueString($_POST['texte_news'], "text"),
GetSQLValueString($image, "text"));
mysql_select_db($database_gramofone, $gramofone);
$Result1 = mysql_query($insertSQL, $gramofone) or die(mysql_error());
$insertGoTo = "news.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
} else {
$tampon=$_POST['texte_news'];
}
}