Ver Mensaje Individual
  #12 (permalink)  
Antiguo 19/02/2011, 15:34
Rudeck
 
Fecha de Ingreso: enero-2011
Ubicación: C,M
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: No se envían datos e url de imagen a la BDD

Claro...Es el siguiente:

Formulario HTML:
Código HTML:
Ver original
  1. <form name="newad" method="post" enctype="multipart/form-data"  action="operaciones.php">
  2.  <table width="100%" border="0" cellspacing="0" cellpadding="0">
  3.    
  4.    
  5.    
  6.    
  7.    <tr>
  8.      <td colspan="2" align="right" ><?php echo imp_menu(); ?></td>
  9.    </tr>
  10.  </table><br><br><br>
  11.  <div id="stylized" class="myform">
  12.  
  13.  <h1>Rellena el formulario</h1>
  14. <p>Debes llenar los campos obligatorios *</p>
  15.   <label>Obra
  16.     <span class="small">Nombre de la obra</span>
  17.   </label>
  18.    <input name="nombre" type="text" size="70" maxlength="70" />
  19.    <label>Nº Contrato
  20.     <span class="small">Numero de contrato</span>
  21.   </label>
  22.    <input name="ncontrato" type="text" size="20" maxlength="250" />
  23.    <label>Lugar
  24.     <span class="small">Lugar de obra</span>
  25.   </label>
  26.     <input name="lugar" type="text" size="20" maxlength="70" />
  27.  <label>Fecha
  28.     <span class="small">Fecha de obra</span>
  29. <input name="fecha" value="Dia-Mes-Año" type="text" id="dateArrival" onClick="popUpCalendar(this, form.dateArrival, 'dd-mm-yyyy');" size="10">
  30. <br>
  31.  
  32.  
  33.  
  34.  
  35. <!-- Supervisores -->
  36. <label>Supervisor<span class="small">Eliga el supervisor  </span></label><select name="listasupervisor">
  37.  
  38.       <option value="0" selected="selected"></option>
  39. <?
  40.      mysql_connect('127.0.0.1','root','****')or die ('Ha fallado la conexión: '.mysql_error());
  41.                 mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  42.                
  43.        //Me trae los supervisores desde la DB
  44. $consulta_sql1=mysql_query("select snombre from supervisor");
  45.  
  46. while ($registro1 = mysql_fetch_array($consulta_sql1))
  47. {
  48. ?>
  49.         <option value="<?=$registro1["snombre"];?>">
  50.          <?=$registro1["snombre"];?>
  51.           </option>
  52.         <?
  53. }
  54. ?>
  55.  
  56. <label>Categoria<span class="small">Eliga la categoria</span></label><select name="listacategoria" >
  57.  
  58.         <option value="0"  selected="selected"></option>
  59.        
  60.         <?
  61.        mysql_connect('127.0.0.1','root','****')or die ('Ha fallado la conexión: '.mysql_error());
  62.                 mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  63.        //Me trae las categorias desde la DB
  64. $consulta_sql2=mysql_query("select cname from category");
  65.  
  66. while ($registro2 = mysql_fetch_array($consulta_sql2))
  67. {
  68. ?>
  69.         <option value="<?=$registro2["cname"];?>">
  70.          <?=$registro2["cname"];?>
  71.           </option>
  72.         <?
  73. }
  74. ?>
  75.    
  76.        
  77.  
  78.                
  79.    <label>Imagenes a subir: <span class="small">Selecciona la imagenes</span></label>
  80.         <!-- Esta div contendrá todos los campos file que creemos -->
  81.    <div id="adjuntos">
  82.         <!-- Hay que prestar atención a esto, el nombre de este campo debe siempre terminar en []
  83.        como un vector, y ademas debe coincidir con el nombre que se da a los campos nuevos
  84.        en el script -->
  85.    <input type="file" name="fichero[]" multiple="multiple" />
  86.    </div>
  87.    <a href="#" onClick="addCampo()"><label>Subir otra imagen</a> <span class="small">Cargar otra imagen</span></label>
  88.  
  89.  
  90.  
  91.  <script type="text/javascript">
  92. var numero = 0;          
  93. evento = function (evt) {
  94.    return (!evt) ? event : evt;
  95. }
  96. addCampo = function () {
  97.    nDiv = document.createElement('div');
  98.    nDiv.className = 'archivo';
  99.    nDiv.id = 'file' + (++numero);
  100.    nCampo = document.createElement('input');
  101.    nCampo.name = 'fichero[]';
  102.    nCampo.type = 'file';
  103.    a = document.createElement('a');
  104.    a.name = nDiv.id;
  105.    a.href = '#';
  106.    a.onclick = elimCamp;
  107.    a.innerHTML = 'Eliminar';
  108.    nDiv.appendChild(nCampo);
  109.    nDiv.appendChild(a);
  110.    container = document.getElementById('adjuntos');
  111.    container.appendChild(nDiv);
  112. }
  113. elimCamp = function (evt){
  114.    evt = evento(evt);
  115.    nCampo = rObj(evt);
  116.    div = document.getElementById(nCampo.name);
  117.    div.parentNode.removeChild(div);
  118. }
  119. rObj = function (evt) {
  120.    return evt.srcElement ?  evt.srcElement : evt.target;
  121. }
  122.    
  123.  
  124.  <!--Archivo: <input name="fichero[]" type="file" size="150" maxlength="150"> -->
  125.  
  126.          <p>&nbsp;</p>
  127.          
  128.      <label>Etiquetas<span class="small">Agrega etiquetas</span></label>
  129.       <input type="text" name="newLabel" id="newLabel"  />
  130.      
  131.  
  132.        <br><br> <label>Etiquetas existentes:<span class="small">Elige alguna etiqueta</span></label>
  133.  
  134. <select name="test[]" multiple="multiple">
  135. <?php
  136.  
  137.     $result = mysql_query("select label from labels");
  138.         while($row = mysql_fetch_row($result)) echo'<option value="'.$row[0].'">'.$row[0].'</option>';
  139.        
  140. ?>
  141.    
  142.     <input name="Submit" type="submit" value="Guardar" ></td></tr>
  143.     <div class="spacer"></div>
  144.  </table>  
  145.  <p>&nbsp;</p>
  146.  
  147.  </form>



PHP:
Código PHP:
Ver original
  1. <?
  2. //Maximo tamaño en kb
  3.  define ("MAX_SIZE","2024");
  4.  
  5. //Funcion de extensiones
  6.  function getExtension($str) {
  7.          $i = strrpos($str,".");
  8.          if (!$i) { return ""; }
  9.          $l = strlen($str) - $i;
  10.          $ext = substr($str,$i+1,$l);
  11.          return $ext;
  12.  }
  13.  
  14.  
  15. // Esta variable se utiliza como una bandera. El valor se inicializa con 0 (es decir, no hay error que se encuentran)
  16. // y se cambia a 1 si un occures error.
  17. // Si el error occures el archivo no se cargará.
  18.  $errors=0;
  19. //Comprueba si el formulario ha sido enviado
  20.  
  21.              if(isset($_POST['submit'])) {
  22.            
  23.  
  24. //Conectamos a la base de datos para almacenar los datos y la ruta del archivo, aunque ya tengamos archivo conexion
  25.  
  26.                  mysql_connect('127.0.0.1','root','****')or die ('Ha fallado la conexión: '.mysql_error());
  27.                  mysql_select_db('obras')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  28.  
  29.  
  30.   //Carga los campos a los que se enviaran los datos
  31.  
  32.                                     $obra = $_POST["nombre"];
  33.                                     $ncontrato = $_POST["ncontrato"];
  34.                                     $lugar = $_POST["lugar"];
  35.                                     $fecha = $_POST["fecha"];
  36.                                     $supervisor = $_POST["snombre"];
  37.                                     $categoria = $_POST["categoria"];
  38.                  
  39. //Inserta el Value de los campos a la tabla obras
  40.  
  41.                                     $query="INSERT INTO obras (nombre,ncontrato,fecha,lugar,supervisor,categoria) VALUES ('$_POST[nombre]','$_POST[ncontrato]','$_POST[fecha]','$_POST[lugar]','$_POST[listasupervisor]','$_POST[listacategoria]')";
  42.    
  43.        mysql_query($query) or die(mysql_error());
  44.        echo "El archivo $nombre_archivo ha sido registrado de manera satisfactoria.<br />";
  45.                  
  46.                      
  47.         }  
  48.  if(isset($_POST['Submit'])) {
  49.     $cantidad2 =count($_FILES["fichero"]['tmp_name']);
  50.         for ($j=0;$j<=$cantidad2;$j++){
  51.     //Leer el nombre del fichero
  52.     $image=$_FILES['fichero']['name'][$j];
  53.     //Si no esta vacio
  54.     if ($image)
  55.     {
  56.     //Obtener el nombre original del fichero
  57.         $filename = stripslashes($_FILES['fichero']['name'][$j]);
  58.     //Obtener la extension del fichero
  59.         $extension = getExtension($filename);
  60.         $extension = strtolower($extension);
  61.     //Si se da una extension descoocidad, imprimira error  
  62.  if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif") && ($extension != "bmp"))
  63.         {
  64.         //Imprimir mensaje de error
  65.             echo '<h1>Extension desconocida!</h1>';
  66.             $errors=1;
  67.         }
  68.         else
  69.         {
  70. //Obtenemos el tmaño de la imagen en bytes
  71.  //$_FILES['image']['tmp_name'] temporal fichero
  72. //El archivo se almacena en el servidor
  73.  $size=filesize($_FILES['fichero']['tmp_name'][$j]);
  74.  
  75. //Se compara el tamaño del fichero
  76. if ($size > MAX_SIZE*1024)
  77. {
  78.     echo '<h1>Se a exedido del tamaño maximo.!</h1>';
  79.     $errors=1;
  80. }
  81.  
  82. //Daremos un nombre unico con extension
  83. $image_name=time().'.'.$extension;
  84. //Donde se guardaran las imagenes
  85. $newname="../images/".$image_name;
  86. //Se verifica si fue subida, e imprime errores
  87. $copied = copy($_FILES['fichero']['tmp_name'][$j], $newname);
  88.  
  89. if (!$copied)
  90. {
  91.     echo '<h1>Copia realizada!</h1>';
  92.     $errors=1;
  93.    
  94.    
  95.              
  96. }}}}
  97.  
  98.            
  99. }
  100.  
  101. //Si no hubo errores, imprimo mensaje
  102.  if(isset($_POST['Submit']) && !$errors)
  103.  {
  104.  
  105.  
  106.     //Si la foto fue subida correctamente entonces procedo a aplicarle las etiquetas.
  107.  
  108.     echo '<h3>Se ha subido la imagen con éxito  '.$newname.'. <br>
  109.    
  110.    
  111.    
  112.     $extension=$_POST['type'];
  113.     $image=$_POST['name'];
  114.     $size=$_POST['size'];
  115.     $url = $newname;
  116.     $test=$_POST['test'];
  117.     $newLabel=$_POST['newLabel'];
  118.     if (($test || $newLabel) && $url){
  119.    
  120.         //Verifico que el archivo que acabo de insertar exista.
  121.         if(file_exists($url))
  122.         {
  123.             mysql_query("insert into photos values ('','".$url."','0','".$extension."','".$image."','".$size."')");
  124.             $result = mysql_query("select id from photos where url='".$url."'");
  125.             $row = mysql_fetch_row($result);
  126.             $photo_id = $row[0];
  127.            
  128.    
  129.             }
  130.            
  131.    
  132.        
  133. }
  134.  
  135. ?>


Esos son los códigos, gracias.