Pregunta

Hola chicos Estoy subiendo las imágenes utilizando el archivo de carga @PhP Método @ si subo 10 imágenes a la vez (cada imagen es la dimensión 2000/3000). a continuación, el clic en la función de ahorro no está funcionando. si subo 5 imágenes o menos de cinco imágenes, entonces está bien trabajar wats mal con mi codificación i basta con incluir mi código php con este 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
¿Fue útil?

Solución

Es probable que tenga que cambiar el tamaño máximo de POST en el archivo de configuración php.ini (ajuste post_max_size).

Otros consejos

Puede utilizar el comando phpinfo() para volcar su configuración. Probablemente, como otros han dicho que necesita para aumentar el tamaño de subida y tiempo de ejecución.

Estos pueden ser modificados a través de un archivo .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

Así como una advertencia: Su manejo de script de carga hará que sea completamente trivial para subvertir por completo su servidor:

  1. confiar ciegamente en que el valor $_FILES[...]['type'] está ajustado correctamente - este valor está completamente bajo el control del usuario, y se puede meter en "image / jpeg" y subir cualquier tipo de archivo que quieren
  2. ciegamente la confianza de que el valor está ajustado correctamente $_FILES[...]['filename'] - de nuevo, este valor está completamente bajo el control del usuario, y se puede meter en "hackme.php" si quieren
  3. ciegamente escribir el archivo en el directorio de álbum de fotos, pero no comprueba si el nombre del archivo suministrado por el usuario contiene encauzamiento de datos

Entonces, ¿qué ocurre si alguien carga el siguiente archivo:

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

Usted ha felizmente puso un script PHP proporcionada por el usuario en su servidor web y que ahora puede hacer lo que quiera.

Además de eso, las consultas de bases de datos se insertan ciegamente los mismos datos en las consultas, dejándolo vulnerable a ataques de inyección SQL. Además, usted no marca para las colisiones de nombre de archivo hasta después de haber movido el archivo. Por lo tanto, alguien podría subir un script malicioso, pero sólo lo hacen una vez para ese nombre de archivo en particular. Enhorabuena, has implementan ataques versionados en su servidor. Vas a tener "pwn_me.php", "pwn_me2.php", "pwn_me3.php", "my_little_pwnme.php", y así sucesivamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top