Foros del Web » Creando para Internet » CSS »

formulario de envío php no me funciona

Estas en el tema de formulario de envío php no me funciona en el foro de CSS en Foros del Web. hola a todos pues recurro a crear un nuevo tema ya que no encuentro (he visto miles) pero no encuentro un código que valla con ...
  #1 (permalink)  
Antiguo 07/07/2012, 11:51
 
Fecha de Ingreso: julio-2012
Mensajes: 10
Antigüedad: 11 años, 9 meses
Puntos: 0
formulario de envío php no me funciona

hola a todos pues recurro a crear un nuevo tema ya que no encuentro (he visto miles) pero no encuentro un código que valla con mi formulario

lo que pasa es que mi conocimiento en el tema no me da para encontrar el eslabón que me falta, para enlazar el php con el formulario


bueno les explico tengo un formulario listo y validado, con el cual me quiero quedar. y lo que me falta es un código php que corresponda a mi formulario pero no se que partes de los codigos php son las que tengo que modificar para que me funciones (por supuesto el área de la dirección mail)

les pongo el codigo de mi formulario (muy pequeño)

y el codigo php


no pido que me hagan el trabajo pero por lomenos pido que me dirijan que es lo que tengo que saber que no me deja enlazar el formulario con el php (la accion del formulario es enviar.php)


php:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"  />
 
<title></title>
 
</head>
 
<body>
 
<?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]""Formulario de contacto",
 
"Los datos introducidos en el formulario son:\n\n""webphotographe44000"))
 
echo 
"Su formulario ha sido enviado con exito <meta http-equiv='refresh' content='2; url=index.html' >";
 
?>
 
</body>
 
</html>


formulario:
Código:
<form action="enviar.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
  <div align="center">
    <table width="731" height="421" border="0" cellpadding="0" cellspacing="0">
      <tr>
        <td width="280" height="74"><label for="nombre2"> </label>
          <blockquote>
            <blockquote>
              <p>Nombre</p>
            </blockquote>
          </blockquote></td>
        <td colspan="2"><input name="nombre" type="text" id="nombre2" size="30" /></td>
      </tr>
      <tr>
        <td height="74"><label for="correo_electronico"> </label>
          <blockquote>
            <blockquote>
              <p>Correo electronico</p>
            </blockquote>
          </blockquote></td>
        <td colspan="2"><input name="correo_electronico" type="text" id="correo_electronico" size="30" /></td>
      </tr>
      <tr>
        <td height="93"><blockquote>
          <blockquote>
            <p> Telefono</p>
          </blockquote>
        </blockquote></td>
        <td colspan="2"><input name="telefono" type="text" id="telefono" value="" size="30" />
          (opcional)</td>
      </tr>
      <tr>
        <td height="145"><label for="telefono"> </label>
          <blockquote>
            <blockquote>
              <p>Mensaje</p>
            </blockquote>
          </blockquote></td>
        <td colspan="2"><textarea name="mensaje" cols="50" rows="6" id="mensaje"></textarea></td>
      </tr>
      <tr>
        <td height="35">&nbsp;</td>
        <td width="376">&nbsp;</td>
        <td width="68"><input type="submit" name="enviar" id="enviar" value="Enviar" /></td>
      </tr>
    </table>
  </div>
</form>
se que mi tema esta mal ubicado pero no logro cambiarlo
muchas gracias Ricardo

Última edición por usuarioweb; 07/07/2012 a las 12:00
  #2 (permalink)  
Antiguo 07/07/2012, 23:35
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: formulario de envío php no me funciona

Hola
Tienes una función en enviar.php a la que no le pasas ningún parametro.
Código PHP:
Ver original
  1. function form_mail($sPara, $sAsunto, $sTexto, $sDe)
O al menos yo no veo donde "recibes o recepcionas" los datos enviados por el formulario:
Cita:
nombre - correo_electronico - telefono etc.
Además como que tienes mal ubicado en php en enviar.php, debería estar antes que el html. Fijate que se genera una etiqueta <meta> dentro del body.

Te diría que busques algún tutorial sobre formularios en php.

No sé si está bien o no, pero para mí que después de los if() deberían ir {}, y veo que e varios lugares las omites.

Repito busca algún ejemplo en San Google.

Sobre conservar tu formulario, ok, pero olvidate de encontrar un enviar.php que sea justo lo que necesitas.

Necesitas estudiar, y muy bien, cual es el proceso, aparte de cuales deben ser las medidas de seguridad para evitar cosas raras, como ataques, y esas cosas.

Una mini guía, muy burda:
Formulario: (metodo:post o get, suponemos post, action indica en que página se procesara el formulario, si queda vacío es en la misma página)

<input type="text" name="datoaenviar" >


enviar.php
Recepciono los datos del formulario
Código PHP:
Ver original
  1. $datorecepcionado = $_POST[datoaenviar]; // si es por metodo Post
  2.  
  3. $datorecepcionado = $_GET[datoaenviar]; // si es por metodo Get
  4.  
  5. // una vez recepcionado procedo a su procesamiento, en este caso preparar el email de envio.

Repito busca e implementa un ejemplo completo, y cuando entiendas el funcionamiento no tendrás ningún problema es adaptarlo a tus necesidades.


Espera que algún Moderador lo ubique en el foro de php, seguro obtendras mucha más ayuda que la mía.
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--

Última edición por C2am; 07/07/2012 a las 23:38 Razón: Moredador

Etiquetas: cs5, formulario, php
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 13:01.