Question

Salut les gars je suis en train de charger les images en utilisant le téléchargement de fichiers @PhP Méthode @ Si je télécharger 10 images à la fois (chaque image est la dimension 2000/3000). puis le clic à la fonction d'économie ne fonctionne pas. si je télécharger 5 images ou moins de cinq images alors son bien wats mal avec mon i juste mon codage inclure du code PHP travaillant avec ce post <input value="Save" type="submit" name="SubSave" id="SubSave" onClick="return changes();">

 if($_POST['SubSave'] == "Save"){
    $aid = $_GET['rid'];
 $updcount = $_POST['theValue'];


if($_SESSION["almgtype"]==1 || (GetUserNoPhoto($_SESSION["almgid"]))>(GetTotalPhotoCount1($_SESSION["almgid"],$aid))) {


  $uid = $_SESSION["almgid"];

 for($k=1;$k<=$updcount;$k++) { 
        //echo $k;
   echo $_FILES["uploadfile"]["type"];

if($_FILES["uploadfile".$k]["name"]!="") {

if(($_FILES["uploadfile".$k]["type"] == "image/gif") || ($_FILES["uploadfile".$k]["type"] == "image/jpeg")|| ($_FILES["uploadfile".$k]["type"] == "image/pjpeg") || ($_FILES["uploadfile".$k]["type"] == "image/png")) {

 if ($_FILES["uploadfile".$k]["error"] > 0)
  {
  echo "Error: " . $_FILES["uploadfile".$k]["error"] . "<br />";
  }
else
  {  
       move_uploaded_file($_FILES["uploadfile".$k]["tmp_name"],
      "photoalbum/" . $_FILES["uploadfile".$k]["name"]);
      $uploadfile =  "photoalbum/" . $_FILES["uploadfile".$k]["name"];
  } 
  $path  = $uploadfile;
  $checklist = "select * from amt_photos1 where aid = '".trim($aid)."' and uid = '".trim($uid)."' and path = '".trim($path)."'";
  $chkresult  = mysql_query($checklist);
  if(mysql_num_rows($chkresult) == 0) {
  $i = 0;
  $path =$uploadfile;
  $result = "insert into amt_photos1 set uid = '".trim($uid)."',
                                     aid = '".trim($aid)."',
                                     path = '".trim($path)."',
                                     status = '0',
                                     createdby = '".$_SESSION["almgid"]."',
                                     createddate = now()";

  $rowlist = mysql_query($result) or die("Error:(".mysql_error().")".mysql_error());


                } 
                /**********************  if file already exist means ******************************************/
                else {
                $err= "The Uploaded file name ".$path." Is already exisit in the Album. Rename It or try to add Any other Photos";

                    }
                /**********************  if file already exist means ******************************************/
                $path ="";
                $uploadfile = "";
                $i  = "";
                }  // file extention
                     else {
        $err= "Unable To Upload The File Please Check The File Extention.Try Again Later";
     }

                }
                }
                }



                } // if save close
Était-ce utile?

La solution

Vous avez probablement besoin de changer la taille du POST maximale dans votre fichier de configuration php.ini (réglage post_max_size).

Autres conseils

Vous pouvez utiliser la commande phpinfo() pour vider votre configuration. Probablement, comme d'autres ont déclaré que vous avez besoin d'augmenter la taille de téléchargement et le temps d'exécution.

Ceux-ci peuvent être modifiés par un fichier .htaccess .

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

Tout comme un avertissement: Votre téléchargement script de gestion, il sera tout à fait trivial à subvertir complètement votre serveur:

  1. Vous aveuglément confiance que la valeur $_FILES[...]['type'] est correctement réglée - cette valeur est complètement sous le contrôle de l'utilisateur, et ils peuvent bourrer dans « image / jpeg » et télécharger tout type de fichier qu'ils veulent
  2. Vous aveuglément confiance que la valeur $_FILES[...]['filename'] est correctement réglée - encore une fois, cette valeur est complètement sous le contrôle de l'utilisateur, et ils peuvent bourrer dans « hackme.php » si elles veulent
  3. Vous écrivez aveuglément le fichier dans votre répertoire photoalbum, mais ne vérifie pas si le nom du fichier fournie par l'utilisateur contient des données pathing

Alors, ce qui se passe si quelqu'un télécharge le fichier suivant:

$_FILES['uploadfile0']['type'] = 'image/gif';
$_FILES['uploadfile0']['filename'] = '../pwn_me.php';

Vous avez heureusement mis un script PHP fourni par l'utilisateur sur votre serveur web et ils peuvent maintenant faire tout ce qu'ils veulent.

En plus de cela, vos requêtes de base de données insérer aveuglément les mêmes données dans les requêtes, vous laissant grande ouverte aux attaques par injection SQL. De plus, vous ne cochez pas pour les collisions de noms de fichiers jusqu'à après que vous avez déplacé le fichier. Alors, quelqu'un pourrait télécharger un script malveillant, mais seulement le faire une fois pour ce nom de fichier particulier. Félicitations, vous avez mis en place des attaques versionnés sur votre serveur. Vous aurez "pwn_me.php", "pwn_me2.php", "pwn_me3.php", "my_little_pwnme.php", et ainsi de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top