subir archivos con PHP y funcion javascript... juntos no funcionan SOLUCIONADO

Iniciado por SpiderNet, 7 Octubre 2008, 21:16 PM

0 Miembros y 1 Visitante están viendo este tema.

SpiderNet

Quiero subir archivos al servidor a traves de un formulario.

Quiero ademas tener una función javascript que no me permita dejar campos en blanco.

La parte de javascrip funciona perfectamente. Al dejar el campo en blanco me salta la alerta.

Pero no me funciona la parte de PHP de subir el archivo.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subir Archivos</title>
</head>

<body>

   <script type="text/javascript">
<!--
     function checkForm(formu)
     {
   var error=false;
   var mensaje="";

   formu.btnAdd.disabled=true;
   if (formu.formTitulo.value=="")
   {
 mensaje += '· Debe seleccionar una valor1\n';
 error=true;
   }
           if (error)
   {
 alert(mensaje);
 formu.btnAdd.disabled=false;
 return false;
   }
   else
   {
 return true;
   }
     }
-->
</script>

<?
if (isset($_POST['submit']))
{  
 if(is_uploaded_file($_FILES['fichero']['tmp_name']))
 {
// verifica haya sido cargado el archivo
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name']))
{
 // AQUI VA EL PROCESO DE GRABAR EN LA BASE DE DATOS EL RESTO DE LOS CAMPOS
 echo "<b>Upload exitoso!. Datos:</b><br>";
}
 }
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data" onSubmit="return checkForm(this);">
 <table>
   <tr>
     <td>
       Archivo: <input name="fichero" type="file">
     </td>
   </tr>
   <tr>
     <td>Titulo: <input type="text" name="formTitulo" value="" size="36"></td>
   </tr>
   <tr>
     <td>
       <input name="btnAdd" type="submit" value="Upload!">
     </td>
   </tr>
 </table>  
</form>

</body>

</html>


Que observan de raro en mi codigo.

Donde esta el error. Una ayudita por favor!!!


Saludos!!!


Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....

Pablo Videla

Mira no tengo muchos conocimientos pero me parecio raro esto:

form action="<?php echo $_SERVER['PHP_SELF'] ?>"

en el action no va el nombre del archivo el cual ejecuta la accion? por ejemplo

form action="archivo.php"

alone-in-the-chat

No estas enviando el parametro $_POST['submit']
no veo ese campo en tu form en todo caso el campo

Código (html4strict) [Seleccionar]

<input name="btnAdd" type="submit" value="Upload!">


cambialo por

Código (html4strict) [Seleccionar]
<input name="submit" type="submit" value="Upload!">

Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

SpiderNet

Cita de: BadDevil en  7 Octubre 2008, 21:19 PM
Mira no tengo muchos conocimientos pero me parecio raro esto:

form action="<?php echo $_SERVER['PHP_SELF'] ?>"

en el action no va el nombre del archivo el cual ejecuta la accion? por ejemplo

form action="archivo.php"

form action="<?php echo $_SERVER['PHP_SELF'] ?>"

esto es para que se envie el formulario a si mismo. y Al inicio de este script chequea si existe el array $_POST mueve el archivo de la carpeta temporal a la definida por mi y muestra el mensaje de upload exitoso.


Cita de: alone-in-the-chat en  7 Octubre 2008, 21:35 PM
No estas enviando el parametro $_POST['submit']
no veo ese campo en tu form en todo caso el campo

Código (html4strict) [Seleccionar]

<input name="btnAdd" type="submit" value="Upload!">


cambialo por

Código (html4strict) [Seleccionar]
<input name="submit" type="submit" value="Upload!">

Saludos¡¡


Si hago el cambio que me indicas si sube el archivo indicado pero deja de trabajr la funcion de javascript y asi deje el campo titulo en blanco no muestra la laerta.

La idea es que trabaje la funcion de javascript y la parte de PHP que suba el archivo y lo mueva al sitio indicado por mi que en este caso es el directorio donde esta este script.

Si alguien sabe como hacerlo, por favor!!!

Saludos!!!
Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....

alone-in-the-chat

Entonces cambia esto

Código (php) [Seleccionar]
if (isset($_POST['submit']))

por esto

Código (php) [Seleccionar]
if (isset($_POST['btnAdd']))



:-\ :-\ :-\

Saludos¡¡
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

SpiderNet

Cita de: alone-in-the-chat en  7 Octubre 2008, 23:06 PM
Entonces cambia esto

Código (php) [Seleccionar]
if (isset($_POST['submit']))

por esto

Código (php) [Seleccionar]
if (isset($_POST['btnAdd']))



:-\ :-\ :-\

Saludos¡¡


Con este cambio me funciona la funcion javascript no permitiendo el campo en blanco pero no me sube el archivo
Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....

дٳŦ٭



Con sangre andaluza :)


SpiderNet

Cita de: дٳŦ٭ en  7 Octubre 2008, 23:21 PM
Dale permisos a la carpeta donde subas los archivos.

El problema no son los permisos de la carpeta.

Por que si elimino la funcion de javascript me sube los archivos sin problemas.

el detalle es hacer trabajar juntos la funcion de javascript y que el fornulario suba el archivo indicado.

Si pudieran revisar mas al detalle el codigo por favor.

Ya yo he revisado mil veces y cambiado de todo pero nada.


Saludos!!!
Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....

alone-in-the-chat

Lo uno ni tiene nada que ver con lo otro , php y javascript trabajan en diferentes ambientes

(Servidor,Cliente) , no te lanza ningun error?.

coloca un print_r($_POST) , para ver que esta enviandose mediante el formulario.


Saludos¡¡

Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

SpiderNet

SOLUCIONADO..........Por Fin


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subir Archivos</title>
</head>

<body>

    <script type="text/javascript">
<!--
      function checkForm(formu)
      {
    var error=false;
    var mensaje="";

    formu.btnAdd.disabled=true;
    if (formu.formTitulo.value=="")
    {
  mensaje += '· Debe seleccionar una valor1\n';
  error=true;
    }
    if (formu.fichero.value=="")
    {
  mensaje += '· Debe seleccionar un archivo\n';
  error=true;
    }

            if (error)
    {
  alert(mensaje);
  formu.btnAdd.disabled=false;
  return false;
    }
    else
    {
  return true;
    }
      }
-->
</script>

<?
if (isset($_POST['btnAdd']))

  if(is_uploaded_file($_FILES['fichero']['tmp_name']))
  {
// verifica haya sido cargado el archivo
if(move_uploaded_file($_FILES['fichero']['tmp_name'], $_FILES['fichero']['name']))
{
  // AQUI VA EL PROCESO DE GRABAR EN LA BASE DE DATOS EL RESTO DE LOS CAMPOS
  echo "<b>Upload exitoso!. Datos:</b><br>";
}
  }
}
?>

<form action="<?php echo $_SERVER['PHP_SELF'?>" method="post" enctype="multipart/form-data" onSubmit="return checkForm(this);">
  <table>
    <tr>
      <td>
        Archivo: <input name="fichero" type="file">
      </td>
    </tr>
    <tr>
      <td>Titulo: <input type="text" name="formTitulo" value="" size="36"></td>
    </tr>
    <tr>
      <td>
        <input name="btnAdd" type="submit" value="Upload!">
      </td>
    </tr>
  </table> 
</form>

</body>

</html>


Comparen con el primer codigo y veran que el problema era de array...

por un lado me referia a $_POST['submit']
y por otro a $_POST['btnAdd']

Otro detallito era que cuando hacia las modificaciones en el script y refrescaba la pantalla en mi navegador no lo actualizaba y yo veia que hacia los cambios por ustedes recomendado y seguia todo igual y peor.

Pero a fin de cuenta Gracias!!! Tenian razon

Gracias alone-in-the-chat


Saludos!!!
Quieres un foro solo para principiantes
Visita  http://spidernet.forumotion.com

El miedo es libre, puedes sentirlo....