Programación Web y Scripting > PHP

 No Reconoce Archivo Jpg

(1/2) > >>

sheilac:
Hola tengo un inconveniente con un mini sitio que hice  :huh:
en el servidor con php 5 que lo probe funciona todo barbaro.
Es un envio de un mail con un atach que es una imagen , una foto
Me llega el mail a  todas las direcciones de correo donde lo probe y llega el adjunto de la foto barbaro.
En el servidor actual donde esta el sitio no funciona me larga el error del codigo
este es el codigo php para el envio del mail

--- Código: Text ---   <? $emailDestination = "00001@yahoo.com"; $emailOrigin="222@dfd.com.uy";$nameEmailOrigin = "fdd@nfdfd.com.uy";$subject='Yo quiero ser '; if($file_type!="image/jpeg"&&$file_type!="image/pjpeg"&&$file_type!="image/gif"&&$file_type!="image"&&$file_type!="IMAGE/PJPEJ"&&$file_type!="IMAGE/JPEG"&&$file_type!="image/GIF"&&$file_type!="IMAGE"){die("Tipo de archivo equivocado");}  $archivo=fopen($file, 'rb'); $contenido=fread($archivo, filesize($file)); $contenido=chunk_split(base64_encode($contenido));   $tipo=filetype($file); fclose($archivo);   $mime_boundary=md5(time());   $msg .= "From: " .$nameEmailOrigin." \r\n";   $msg .= "MIME-Version: 1.0 \r\n";  // Version MIME a utilizar$msg .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"\r\n\r\n";  // Aqui vamos a realizar la inclusion del archivo adjunto$msg .= "--".$mime_boundary."\r\n"; $msg .= "Content-Type: $file_type; name=\"".$file_name."\"\r\n"; $msg .= "Content-Transfer-Encoding: base64 \r\n";$msg .= "Content-Disposition: attachment; filename=\"".$file_name."\"\r\n\r\n"; $msg .= $contenido."\r\n\r\n";  $msg .= "--".$mime_boundary."\r\n"; $msg .= "Content-Type: text/plain; charset=iso-8859-1 \r\n"; $msg .= "Content-Transfer-Encoding: 8bit\r\n\r\n"; $msg .="Este mensaje fue enviado por:  ".$nombre." ".$apellido." \r\n"; $msg .="\r\nSu e-mail es: ".$email;$msg .="\r\nTelefono: ".$telefono;$msg .="\r\nColegio: ".$colegio;$msg .="\r\nFecha de Nacimiento: ".$fechanacimiento;$msg .="\r\nMensaje: ".$comentario;$msg .= "\r\n\r\n";  $msg .= "--".$mime_boundary."--"."\r\n\r\n";  if(mail($emailDestination,$subject,"" ,$msg)) include ('gracias.htm');  else{} ?>   en el nuevo servidor actual me larga siempre el error tipo de archivo equivocado que es el error que largo yo en la validacion del tipo de archivo y jamas me envia el correo en cambio en el otro servidor funciona barbaro asi que no creo sea problema de codigo. no se espero.
Me dicen que el servidor es php 5 pero que no me pueden dar mayor informacion.
alguien sabe que podra ser???
desde ya muchas gracias

-DriverOp-:
De dónde sale la variable $file_type?

sheilac:
en mi formulario tengo un input tipo

--- Código: Text ---  <td align="left" width="99" height="120" class="direccion" valign="bottom">                <input title="subir" type="file" id="file" name="file" border="0" onchange="return cambio()" ></div>                       </td>  
y en el formulario aclare esto

--- Código: Text ---  <form   align ="top" name="formulario"  action="enviar.php"  method="post" onsubmit="return validar()" enctype="multipart/form-data">                           
el multipart/form-data es para que se sepa que ademas de texto se va a recibir mas algo que no es texto.
lo que yo queria validar es que solo se reciban imagenes y no algun archivo .exe que puede tener virus
desde ya muchas gracias

la gran duda mia es porque si funciona en un servidor y en otro no.
 :unsure:

-DriverOp-:
Lamentablemente eso no responde mi pregunta. Así que tendré que suponer.
Supongo que $file_type la usas creyendo que el servidor está configurado con register_globals on, lo cual no siempre es así, creo que deberías comenzar con asignar explícitamente las variables que te llegan mediante $_POST.

Sugiero que postees el script *completo*.

sheilac:
te mande el script completo  :o
lo que comente solo fue las direcciones de correo reales.
y si asumi esas variables estan en on porque es lo que dice el manual de php que en versiones 5.0 y superior estan en on

mirando en internet me dice debo declarar la variable global y agregar estas lineas
 :smartass:


if(!empty($_REQUEST)) extract($_REQUEST);
if(!empty($_SERVER)) extract($_SERVER);
if(!empty($_ENV)) extract($_ENV);
if(!empty($_GET)) extract($_GET);
if(!empty($_POST)) extract($_POST);

y poner
global $file_type;
 porque esto haria que mi script funcionara como si las variables  globales estuvieran en on...
es esto cierto???
consulto a ustedes ya que son mis primeros pasos en php y por lo visto muy bien no voy.
desde ya muchas gracias  :(

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa