elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problemas envia campo ajunto nulo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problemas envia campo ajunto nulo  (Leído 1,955 veces)
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
problemas envia campo ajunto nulo
« en: 17 Noviembre 2010, 16:43 pm »

tengo este codigo que etoy trabajando. para enviar archivos ajuntos.
tengo 2 problemas.

1.- que si manda un mensaje vacio sin ajunto me sale un error de copiar archivo. bueno esporque no enviana nada, mi pregunta como controlo eso.

2.- cuando ajunto un archivo. office 2007, al descagar el ajunto, me sale un .zip

este un sistema peque. de eviar ajuntos como mensajes a usuario. es como un mini correo.
espero un ayuda

Citar
<?php
 session_start();
 include("config.php");
 $uservista=$_SESSION["s_username"] ;
 if (isset($_SESSION['s_username'])) {

 $nombre_archivo = $HTTP_POST_FILES['archivo']['name'];
$codigo= date("g-h-s-a");
$nombrea = explode('.',$nombre_archivo);
$oneparte = $nombrea[0];
$twoparte = $nombrea[1];
$completo = $oneparte.$codigo.".".$twoparte;
if(trim($nombre_archivo) != ""){
move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $nombre_archivo);
}
   echo"<b><h2>Mensaje enviado</h2><b> ";
echo"<a href='bandeja.php'>Volver   a la bandeja de entrada</a><br>";

 $consulta2 = mysql_query("select * from `usuarios`  order by id desc");

while($rconsul2 = mysql_fetch_array($consulta2)){
$usuarioc2 = $rconsul2['id'];
$comp = "id".$usuarioc2;
$entra = $_POST['id'.$usuarioc2];
$asunto = $_POST['textfield'];
$mensaje = $_POST['textarea'];

if(isset($entra)){
   
echo "se a enviado mensaje  a $entra <br>";
$insertam = mysql_query("INSERT INTO mensaje (id,user_de,user_para,titulo,leido,comentario,ajunto1) values ('','$uservista','$entra','$asunto','texto_1','$mensaje','$completo')");
if(!copy("./$nombre_archivo", "./$entra/$completo")){echo " - ";}

}
}
unlink("$nombre_archivo");

?>
<? }
else {

echo " ";
}
?>

gracias.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: problemas envia campo ajunto nulo
« Respuesta #1 en: 17 Noviembre 2010, 18:56 pm »

El mismo código pero más organizado.
Código
  1. <?php
  2.   include("config.php");
  3.   $uservista=$_SESSION["s_username"] ;
  4.   if (!empty($uservista)) {
  5.      $nombre_archivo = $HTTP_POST_FILES['archivo']['name'];
  6.      $codigo= date("g-h-s-a");
  7.      $nombrea = explode('.',$nombre_archivo);
  8.      $oneparte = $nombrea[0];
  9.      $twoparte = $nombrea[1];
  10.      $completo = $oneparte.$codigo.".".$twoparte;
  11.      if(!empty($nombre_archivo)){
  12.         move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $nombre_archivo);
  13.      }
  14.      echo"<b><h2>Mensaje enviado</h2><b> ";
  15.      echo"<a href='bandeja.php'>Volver   a la bandeja de entrada</a><br>";
  16.      $consulta2 = mysql_query("select * from `usuarios`  order by id desc");
  17.      while($rconsul2 = mysql_fetch_array($consulta2)){
  18.         $usuarioc2 = $rconsul2['id'];
  19.         $comp = "id".$usuarioc2;
  20.         $entra = $_POST['id'.$usuarioc2];
  21.         $asunto = $_POST['textfield'];
  22.         $mensaje = $_POST['textarea'];
  23.         if(isset($entra)){
  24.            echo "se a enviado mensaje  a $entra <br>";
  25.            $insertam = mysql_query("INSERT INTO mensaje (id,user_de,user_para,titulo,leido,comentario,ajunto1) values ('','$uservista','$entra','$asunto','texto_1','$mensaje','$completo')");
  26.            if(!copy("./$nombre_archivo", "./$entra/$completo")){ echo " - "; }
  27.         }
  28.      }
  29.      unlink("$nombre_archivo");
  30.   }else{
  31.      echo "\n";
  32.   }
  33. ?>

Y quizás el problema es el que decís, como no se manda ningún archivo entonces a donde se va a copiar?, entonces podrías verificar en la siguiente linea,
Código
  1.      if(!empty($nombre_archivo)){
  2.         move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $nombre_archivo);
  3.         /* COPY */
  4.      }


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
DJmixmancar

Desconectado Desconectado

Mensajes: 98


Ver Perfil
Re: problemas envia campo ajunto nulo
« Respuesta #2 en: 17 Noviembre 2010, 20:05 pm »

Hola creo que me esprese mal. o me entendiern mal  ;D
.
spongamos. que envio un mesaje a un amigo.

mensaje + ajunto.
Citar
Mensaje enviado
Volver a la bandeja de entrada
se a enviado mensaje a mixzoner

pero. caundo envio un mensaje.

mensaje.
(sin nungun ajunto me sale el error)

Citar
Mensaje enviado
Volver a la bandeja de entrada
se a enviado mensaje a mixzoner

Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in C:\AppServ\www\eps\postmensaje.php on line 27
-
Warning: unlink() [function.unlink]: No error in C:\AppServ\www\eps\postmensaje.php on line 30
se que el error que sale porque no puede copiar porque no hay archivo ajunto. pero cmo hago para que nosalga ese error,
En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: problemas envia campo ajunto nulo
« Respuesta #3 en: 17 Noviembre 2010, 20:54 pm »

Citar
se que el error que sale porque no puede copiar porque no hay archivo ajunto. pero cmo hago para que nosalga ese error,

valida la variable que contiene el nombre del archivo o valida la existencia del mismo antes de intentar copiar o eliminarlo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines