Foros del Web » Programando para Internet » PHP »

PHP OO Errores en formulario PHP con archivo adjunto

Estas en el tema de Errores en formulario PHP con archivo adjunto en el foro de PHP en Foros del Web. Buenas tardes! He leído varios post sobre formulario PHP con archivos adjuntos pero en ninguno he visto los errores que se me presentan, no sé ...
  #1 (permalink)  
Antiguo 07/08/2013, 16:50
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Errores en formulario PHP con archivo adjunto

Buenas tardes!

He leído varios post sobre formulario PHP con archivos adjuntos pero en ninguno he visto los errores que se me presentan, no sé si será falta de alguna validación por parte del servidor o sinceramente ignorancua de mi parte.

Agradezco CUALQUIER ayuda!

Los errores son estos:

Cita:
Warning: fopen() [function.fopen]: open_basedir restriction in effect. File(C:\Windows\Temp\php8795.tmp) is not within the allowed path(s): (C:\Inetpub\vhosts\*****\httpdocs\) in C:\Inetpub\vhosts\*****\httpdocs\prueba_cdc\enviar .php on line 35

Warning: fopen(C:\Windows\Temp\php8795.tmp) [function.fopen]: failed to open stream: Operation not permitted in C:\Inetpub\vhosts\*****\httpdocs\prueba_cdc\enviar .php on line 35

Warning: filesize() [function.filesize]: open_basedir restriction in effect. File(C:\Windows\Temp\php8795.tmp) is not within the allowed path(s): (C:\Inetpub\vhosts\*****\httpdocs\) in C:\Inetpub\vhosts\*****\httpdocs\prueba_cdc\enviar .php on line 36

Warning: fread(): supplied argument is not a valid stream resource in C:\Inetpub\vhosts\*****\httpdocs\prueba_cdc\enviar .php on line 36

Warning: fclose(): supplied argument is not a valid stream resource in C:\Inetpub\vhosts\*****\httpdocs\prueba_cdc\enviar .php on line 38
Su formulario ha sido enviado con exito
Este es el código que estoy usando:

Formulario:
Código HTML:
<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>E-mail
<input type='text' name='email' id='email'>
</p>
<p>Asunto
<input type='text' name='asunto' id='asunto' />
</p>
<p>Mensaje
<textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
</p>
<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar'>
</p>
</form> 
PHP - enviar.php
Código PHP:
<?php
function form_mail($sPara$sAsunto$sTexto$sDe)
{
$bHayFicheros 0;
$sCabeceraTexto "";
$sAdjuntos "";

if (
$sDe)$sCabeceras "From:".$sDe."\n";
else 
$sCabeceras "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach (
$_POST as $sNombre => $sValor)
$sTexto $sTexto."\n".$sNombre." = ".$sValor;

foreach (
$_FILES as $vAdjunto)
{
if (
$bHayFicheros == 0)
{
$bHayFicheros 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto $sCabeceraTexto.$sTexto;
}
if (
$vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

$oFichero fopen($vAdjunto["tmp_name"], 'r');
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if (
$bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(
mail($sPara$sAsunto$sTexto$sCabeceras));
}

//cambiar aqui el email
if (form_mail("[email protected]"$_POST[asunto],
"Los datos introducidos en el formulario son:\n\n"$_POST[email]))
echo 
"Su formulario ha sido enviado con exito";
?>

Última edición por Triby; 08/08/2013 a las 05:42 Razón: Eliminar referencia al dominio.
  #2 (permalink)  
Antiguo 07/08/2013, 18:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Errores en formulario PHP con archivo adjunto

También podrías copiar y pegar los mensajes de error en Google y seguro te salen muchas cosas:

Google: php error open_basedir
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/08/2013, 01:05
 
Fecha de Ingreso: abril-2012
Mensajes: 45
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Errores en formulario PHP con archivo adjunto

Buenas!

Cuando queiras subir un archivo desde html deberas poner un campo oculto indicando el máximo tamaño permitido del archivo a subir por el usuario.

Código HTML:
<input type="hidden" name="MAX_FILE_SIZE" value="200000"> 
Parece una bobada pero a mi a veces me ha dado problemas.

También mira los permisos de las carpetas a las que accedes.


Saludos.
  #4 (permalink)  
Antiguo 08/08/2013, 05:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 4 meses
Puntos: 2237
Respuesta: Errores en formulario PHP con archivo adjunto

TapWeb, evita publicar información "privada" en FDW, porque en un futuro, cuando alguien lo teclee en el buscador seguramente aparecerá en la primera página.

Edité tu mensaje para eliminar las referencias al dominio que aparece en los mensajes de error.

P.D.: Bienvenido a FDW.
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 08/08/2013, 09:35
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Errores en formulario PHP con archivo adjunto

Gracias a todos! :)

Me puse a buscar eso de los errores y pues sí, todo indica que son accesos no dados en el servidor, me tendré que comunicar con ellos.

Etiquetas: errores, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:58.