Foros del Web » Programando para Internet » PHP »

Problema php formulario

Estas en el tema de Problema php formulario en el foro de PHP en Foros del Web. Hola,buenas tardes,estoy teniendo un problema en la linea 44 del php enviar que les adjuntare ahora,no se que es lo que falla y nesecitaria vuestra ...
  #1 (permalink)  
Antiguo 17/09/2011, 09:38
Avatar de elpirata15hd  
Fecha de Ingreso: abril-2011
Mensajes: 44
Antigüedad: 13 años
Puntos: 0
Problema php formulario

Hola,buenas tardes,estoy teniendo un problema en la linea 44 del php enviar que les adjuntare ahora,no se que es lo que falla y nesecitaria vuestra ayuda,muchas gracias,tambien les adjunto en formulario.

Enviar.php

Código:
<?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($oFichero, filesize($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)); <-------------LINEA 44
}

//cambiar aqui el email
if (form_mail("[email protected]", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
header("Location: contacto.php?opc=1");
?>
Formulario (contacto.php)

Código:
<?php
if (isset($_GET['opc'])) {
 $opc = $_GET['opc'];
  if ($opc == "1") {
?>
  <?php
} else {
?>
  
<?php
}
}
?>
    <section id="content">
        <div class="bg-top">
        	<div class="bg-top-2">
                <div class="bg">
                    <div class="bg-top-shadow">
                        <div class="main">
                            <div class="box">
                                <div class="padding">
                                    <div class="container_12">
                                        <div class="wrapper">
                                            <div class="grid_12">
                                            	<div class="indent-left">
                                                	<h3 class="p2">Formulario de contacto</h3>
                                                    <form id="contact-form" method="post" action="enviar.php" enctype="multipart/form-data">                    
                                                        <fieldset>
                                                              <label><span class="text-form">Nombre:</span>
                                                  <input name="p1" type="text" /></label>
                                                              <label><span class="text-form">Email:</span><input name="p2" type="text" /></label>   
                                                              <label><span class="text-form">Telefono:</span>
                                                                <input name="p3" type="text" /></label>                                    
                                                              <div class="wrapper"><div class="text-form">Mensaje:</div><textarea></textarea></div>
                                                              <div class="buttons">
                                                                  <a class="button" href="#" onClick="document.getElementById('contact-form').reset()">Borrar</a>
                                                                  <a class="button" href="#" onClick="document.getElementById('contact-form').submit()">Enviar</a>
                                                              </div>                             
                                                        </fieldset>						
                                                    </form>
Me da error en la linea 44 del enviar.php

Espero que me puedan ayudar,gracias.
  #2 (permalink)  
Antiguo 17/09/2011, 10:47
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema php formulario

Podrías postear el mensaje de error que te saca PHP?
  #3 (permalink)  
Antiguo 17/09/2011, 14:17
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: Problema php formulario

No estoy seguro, pero me parece que no declaras las variables al principio de todo y veo que
Cita:
$sTexto = $sCabeceraTexto.$sTexto;
la declaras adentro de un "if" y despues la usas en otro "if", por lo que se tenes que declararlas globales con "global" si las queres usar adentro de un if.. fijate por ese lado, yo creo que las variables no estan declaradas bien... Si necesitas declarar una variable adentro de un "if" tenes que ponerl global asi:
Cita:
global $variable;
espero q ayude
  #4 (permalink)  
Antiguo 18/09/2011, 04:50
Avatar de elpirata15hd  
Fecha de Ingreso: abril-2011
Mensajes: 44
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema php formulario

eybel no entiendo lo que dices,hace tiempo pedi ayuda y ya me manejo mejor,pero aun me queda jajaja me lo podrias explicar de forma para tontos jajaja =D gracias!

EDITO: E conseguido otro enviar.php y funciona,envia el formulario al correo,pero este,no tiene nada de lo que se escribio en el formulario,el codigo enviar.php nuevo

Que puede fallar para que no aparezca lo que se relleno en el formulario?¿

Código:
<?php
$dia=date("m.d.Y");
$hora=date("H:i:s");
$destinatario="[email protected]";
$subject= " Mensaje";
$desde = 'From: ' .$_POST['email'];
$contingut = '
El mensaje se a enviado el dia '.$dia.' a las '.$hora.'
 
----------------------------------------------------------------------------
Nombre: '.$_POST['name'].'
Email: '.$_POST['email'].'
Asunto: '.$_POST['subject'].'
Mensaje: '.$_POST['message'].'
----------------------------------------------------------------------------
';
mail($destinatario, $subject, $contingut, $desde);
header("Location: contacto.php?opc=1");
?>

Última edición por elpirata15hd; 18/09/2011 a las 05:07
  #5 (permalink)  
Antiguo 18/09/2011, 05:08
Avatar de elpirata15hd  
Fecha de Ingreso: abril-2011
Mensajes: 44
Antigüedad: 13 años
Puntos: 0
Respuesta: Problema php formulario

Se duplico el mensaje anterior.

Última edición por elpirata15hd; 18/09/2011 a las 05:16

Etiquetas: 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 14:33.