Ver Mensaje Individual
  #9 (permalink)  
Antiguo 23/09/2014, 13:17
Jhon Silver
 
Fecha de Ingreso: marzo-2004
Ubicación: Madrid (España)
Mensajes: 837
Antigüedad: 20 años, 8 meses
Puntos: 9
Respuesta: Limitar ficheros con una determinada extensión

Te paso el código de admision del formulario.
El caso es que no tiene ningun tipo de validacion de ficheros ni limite de tamaño.
Desde .htacces he limitado la subida a 2 Mb

# limitar la subida a 2 MB
LimitRequestBody 2000000




Código PHP:
Ver original
  1. <form id="new_item_post" class="fm" method="post" action="<? $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  2. <legend></legend>
  3. <div class="row">
  4. <div class="col_lft"><label>Tipo de Anuncio</label></div>
  5. <div class="col_rgt">
  6.       <label class="radio" id="sell"><input class="tipe_ad_" name="type_ad" type="radio" id="type_ad_0" value="1" checked="checked" />
  7.     Oferta / Ventas</label>
  8.     <label class="radio" id="buy"><input class="tipe_ad_" type="radio" name="type_ad" value="2" id="type_ad_1" />
  9.     Demanda / Compras</label>
  10. </div>
  11. </div>
  12. <div class="row">
  13. <div class="col_lft"><label>Categoría</label></div>
  14. <div class="col_rgt"><select name="category" id="category">
  15.     <option value="0">Selecciona</option>
  16.         <?
  17.         $parent=selectSQL("category",$where=array('parent_cat' => -1));
  18.         for($j=0;$j<count($parent);$j++){
  19.         ?>
  20.         <option value="0" disabled="disabled" style="font-weight:600; background:#e8e8e8;"><?=utf8_encode(strtoupper($parent[$j]['name']));?></option>
  21.         <?
  22.             $child=selectSQL("category",$where=array('parent_cat' => $parent[$j]['ID_cat']));
  23.             for($i=0;$i<count($child);$i++){
  24.         ?>
  25.         <option value="<?=$child[$i]['ID_cat'];?>">&nbsp;&nbsp;<?=utf8_encode($child[$i]['name']);?></option>
  26.         <?
  27.             }
  28.         } ?>
  29. </select>
  30. <div class="error_msg hidden" id="error_category">Selecciona una categoría</div>
  31. </div>
  32. </div>
  33. <div class="row">
  34. <div class="col_lft">
  35.   <label>Provincia</label></div>
  36. <div class="col_rgt"><select name="region" size="1" id="region">
  37.       <option value="0">Selecciona</option>
  38.       <?php $cat = selectSQL("region",$arr=array(),"name ASC");
  39.       for($i=0;$i<count($cat);$i++){ ?>
  40.       <option value="<?php echo $cat[$i]['ID_region']; ?>">
  41.       <?php echo utf8_encode($cat[$i]['name']); ?>
  42.       </option>
  43.       <? } ?>
  44. </select>
  45. <div class="error_msg hidden" id="error_region">Selecciona una región</div>
  46. </div>
  47. </div>
  48. <div class="row">
  49. <div class="col_lft">
  50.   <label>Localidad</label></div>
  51. <div class="col_rgt"><select name="city" size="1" id="city">
  52.       <option value="0">Selecciona</option>
  53. </select>
  54. <div class="error_msg hidden" id="error_city">Selecciona una localidad</div>
  55. </div>
  56. </div>
  57. <legend></legend>
  58. <div class="row">
  59. <div class="col_lft"><label>Titulo</label></div>
  60. <div class="col_rgt"><input name="tit" type="text" id="tit" size="60" maxlength="60" /><div class="error_msg hidden" id="error_tit">Escribe un título correcto</div>
  61. </div>
  62. </div>
  63. <div class="row">
  64. <div class="col_lft"><label>Descripción</label></div>
  65. <div class="col_rgt"><textarea name="text" rows="5" id="text" maxlength="1200"></textarea><div class="error_msg hidden" id="error_text">Escriba una descripción para su anuncio</div>
  66. </div>
  67. </div>
  68. <div class="row">
  69. <div class="col_lft"><label>Precio</label></div>
  70. <div class="col_rgt"><input name="precio" type="text" id="precio" size="8" maxlength="9" class="price number" /><span class="legend"><?=COUNTRY_CURRENCY_CODE;?></span></div>
  71. </div>
  72. <legend></legend>
  73. <div class="row">
  74. <div class="col_lft"><label>Foto Principal</label></div>
  75. <div class="col_rgt">
  76. <input name="photo[]" type="file" class="foto" id="photo_1">
  77. </div>
  78. </div>
  79. <div class="row">
  80. <div class="col_lft"><label>Foto</label></div>
  81. <div class="col_rgt">
  82. <input name="photo[]" type="file" class="foto" id="photo_2">
  83. </div>
  84. </div>
  85. <div class="row">
  86. <div class="col_lft"><label>Foto</label></div>
  87. <div class="col_rgt">
  88. <input name="photo[]" type="file" class="foto" id="photo_3">
  89. </div>
  90. </div>
  91. <div class="row">
  92. <div class="col_lft"><label>Foto</label></div>
  93. <div class="col_rgt">
  94. <input name="photo[]" type="file" class="foto" id="photo_4">
  95. </div>
  96. </div>
  97. <div class="row">
  98. <div class="col_lft"><label>Foto</label></div>
  99. <div class="col_rgt">
  100. <input name="photo[]" type="file" class="foto" id="photo_5">
  101. </div>
  102. </div>
  103. <legend></legend>
  104. <div class="row">
  105. <div class="col_lft"><label>Tu nombre</label></div>
  106. <div class="col_rgt"><input name="name" type="text" id="name" size="30" maxlength="25" /><div class="error_msg hidden" id="error_name">Debes escribir tu nombre</div>
  107. </div>
  108. </div>
  109. <div class="row">
  110. <div class="col_lft"><label>Email</label></div>
  111. <div class="col_rgt"><? if(!isset($_SESSION['data']['mail'])){ ?>
  112. <input name="email" type="text" id="email" size="50" maxlength="50" />
  113. <? }else{ ?>
  114. <input name="email" type="text" id="email" readonly value="<? echo $_SESSION['data']['mail']; ?>"/>
  115. <? }?><div class="error_msg hidden" id="error_email">Indica tu email</div>
  116. </div>
  117. </div>
  118. <div class="row">
  119. <div class="col_lft"><label>Teléfono</label></div>
  120. <div class="col_rgt"><input name="telf" class="number" type="text" id="telf" size="10" maxlength="10" /><div class="error_msg hidden" id="error_telf">El teléfono es incorrecto</div></div>
  121. </div>
  122. <div class="row">
  123. <div class="col_lft"><label>Usuario de Whatsapp</label></div>
  124. <div class="col_rgt"><label class="radio">
  125.     <input name="whats_" type="radio" id="whats_0" value="0" checked="checked" />
  126.     No</label>
  127.   <label class="radio">
  128.     <input type="radio" name="whats_" value="1" id="whats_1" />
  129.     Si</label></div>
  130. </div>
  131. <div class="row">
  132. <div class="col_lft"><label></label></div>
  133. <div class="col_rgt"><label class="radio">
  134.     <input name="terminos" type="checkbox" id="terminos" value="1"/>
  135.     Acepto los <a href="terminos-y-condiciones-de-uso" target="_blank">términos y condiciones de uso</a></label><div class="error_msg hidden" id="error_terminos">Debes aceptar los términos</div>
  136. </div>
  137. </div>
  138. <div class="row">
  139. <input type="button" class="button" id="butPub" value="Publicar Anuncio"/>
  140. </div>
  141. </form>