Bug sur un move_uploaded_file()... (gros fichiers)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bug sur un move_uploaded_file()... (gros fichiers)

par Waynejunior » 04 juil. 2006, 10:29

le formulaire est dans le body :
<body>
<form action="login.php" method="post" name="form2" class="maintext" id="form2">
  <table width="800" border="0" align="center" cellpadding="8" cellspacing="0" bgcolor="#000000">
    <tr>
      <td><span class="Style1">Gestion des News</span></td>
      <td align="right" valign="middle"><input name="deconnect2" type="submit" class="maintext" id="deconnect22" value="D&eacute;connexion"></td>
    </tr>
  </table>
</form>
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
  <table width="800" border="0" align="center" cellpadding="0" cellspacing="4">
    <tr valign="baseline">
      <td width="100" align="right" valign="top" nowrap class="maintext">Texte news</td>
      <td align="left" valign="top"><textarea name="texte_news" cols="100" rows="10" class="maintext"><?php if (@$erreur == '1') {echo $tampon;}  ?>
      </textarea></td>
    </tr>
    <tr valign="baseline">
      <td align="right" valign="top" nowrap class="maintext">Image news</td>
      <td align="left" valign="top">      <input name="image" type="file" class="maintext" id="image" size="80">        <input name="image_news" type="hidden" id="image_news"></td>
    </tr>
    <tr valign="baseline">
      <td colspan="2" align="right" nowrap>&nbsp;</td>
    </tr>
    <tr align="center" valign="middle">
      <td colspan="2" nowrap><input type="submit" value="Insérer l'enregistrement" class="maintext">
      <input name="annule" type="submit" id="annule" value="Annuler" class="maintext"></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>

ce que j'ai mis au dessus est avant le head

par nejme.eddinne » 29 juin 2006, 12:00

ou est le partie ou il ya le formulaire ?
vérifie le nom des inputs

Bug sur un move_uploaded_file()... (gros fichiers)

par Waynejunior » 28 juin 2006, 10:23

Bonjour,

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'];
  }
}