Foros del Web » Programando para Internet » PHP »

solo necesito el ultimo pedazo..

Estas en el tema de solo necesito el ultimo pedazo.. en el foro de PHP en Foros del Web. haber compadres.. espero me puedan ayudar... solo necesito saber que me hace falta.. y como lo hago... tengo este codigo... Código PHP: < FORM name = ...
  #1 (permalink)  
Antiguo 14/03/2004, 21:45
 
Fecha de Ingreso: agosto-2002
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
solo necesito el ultimo pedazo..

haber compadres.. espero me puedan ayudar... solo necesito saber que me hace falta.. y como lo hago...

tengo este codigo...

Código PHP:
<FORM name="forma" action="enviarforma.php" method="post">
    <
INPUT name=recipient type=hidden value="[email protected]    ">
    <
INPUT name=subject type=hidden value="Consulta desde web">
    <
INPUT name=redirect type=hidden value="gracias.php">  
<
table width="400" border="0" cellspacing="1" cellpadding="2">
<
tr>
        <
td width="325">Nombre/Name: </td>
        <
td width="64">&nbsp;</td>
</
tr>
<
tr>
        <
td><p>
            <
input type="text" name="nombre" size="35">
          </
p>
          <
pDire cción/Address: </p></td>
        <
td>&nbsp;</td>
</
tr>
<
tr>
        <
td><p>
            <
input type="text" name="domicilio" size="35">
          </
p>
          <
p>Teléfono/Telephone: </p></td>
        <
td>&nbsp;</td>
</
tr><tr>
        <
td><p>
            <
input type="text" name="telefono" size="35">
          </
p>
          <
p>Email/E-mail: </p></td>
        <
td>&nbsp;</td>
</
tr><tr>
        <
td><p
            <
input type="text" name="email" size="35">
          </
p>
          <
p>Comentarios: </p>
          <
p
            <
textarea cols="45" rows="15" name="comentarios"></textarea>
          </
p>
          </
td>
        <
td>&nbsp;</td>
</
tr>
<
tr>
    <
td colspan="2"><input type="submit" name="submit" value="Enviar">
        <
input type="reset" name="reset" value="Borrar"></td>
</
tr>
</
table>
</
form


y se que me hace falta el " enviarforma.php "

pero no tengo ni idea de como se hace....
  #2 (permalink)  
Antiguo 15/03/2004, 07:01
Avatar de dan_arg  
Fecha de Ingreso: marzo-2002
Mensajes: 110
Antigüedad: 15 años, 9 meses
Puntos: 0
pero eso depende de lo que quieras hacer con los datos!

Saludos
  #3 (permalink)  
Antiguo 15/03/2004, 07:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lee las FAQ's del foro .. tienes muchos ejemplos sobre el uso de mail() ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 15/03/2004, 09:57
 
Fecha de Ingreso: agosto-2002
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
ola que tal, gracias por responder...

si he leido ya algunos, de hecho he intentado algunas formas.. pero no me sale, lo que trato de hacer, pues es aparente, un formulario, enviar datos desde la pagina a mi correo electronico, el asunto es que el archivo de envio de php, no lo se configurar, o mas bien vi algunos ejemplos pero creo que no me funcionan.. no se si alguien me puede poner el ejemplo de uno para terminarlo ya.. gracias nuevamente
  #5 (permalink)  
Antiguo 15/03/2004, 11:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El formulario no envia datos a tu e-mail .. El formulario envia datos al script que indicas en tu "action" del formulario .. este debe recoger esos datos y desde ahí procesarlos; en tu caso será enviar un e-mail el cual habrá que componerlo deacuerdo a los parámetros de la función mail() ...

Tendrías que indicar donde estas probando (tu PC? como servidor? ..) y que código es el que has usado (completo: formulario y script php) y que error obtienes o que no hace concretamente.

Sólo te indico que PHP con su función mail() NO envia el e-mail fisicamente .. sólo lo "entrega" al servidor de correo que tenga configurado PHP para usar (php.ini -> SMTP = ... servidor de correo saliente válido y que no requiera autentifición). Así que el código que pruebes puede llegar a funcionar (por la parte PHP) pero si el servidor de correo no existe (no tienes uno instalado) o bien "bloquea" el correo saliente (de cuentas no autentificadas) puede ser que el e-mail enviado nunca te llegue por qué simplemente NO salió de tu servidor .. (pese que PHP lo entregase)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 15/03/2004, 12:23
 
Fecha de Ingreso: agosto-2002
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
ok.. eso mas o menos ya lo entendi, pero.. haber.. si me pudieras explicar cluster... teniendo el codigo ya antes escrito.. como empiezo el archivo.php

mas sencillo.. ve este sitio

http://www.radiosalta.com/contacto.php

el cual pide datos a un servidor que se llama...

http://nexodigital.com/form/enviarform.php

en si... lo que yo necesito saber.. es como se hace el enviarform.php...

no se si ahora si ya me explique....

  #7 (permalink)  
Antiguo 15/03/2004, 12:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero... has intentado leer algún tutorial de PHP? o intentar modificar algún código de los que has probado? .. O sólo requieres que te solventen el problema puntual?.

Te lo comento para que aclares que quires: aprender o sólo que te hagan el código .. así nos quedará a todos claro.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 15/03/2004, 13:14
 
Fecha de Ingreso: agosto-2002
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
mira.. en si, es claro que necesito resolver en particular este caso, pero pues tambien es obvio que estoy interesado en saber como funciona, la razon de porque quiero saber como trabaja es porque he encontrado como 5 casos de como hacer algo parecido, pero no me funcionan o estoy mal en algo, y la verdad pues no se cual es el que debo de usar!!!

y por ello te mostre los link hace rato, porque haciendo el codigo que antes puese, solo cambiando la direccion de correo, si se me envio..


y antes de ese... use este ejemplo... pero algo esta malo.. y no funciono.. me podrias mostrar cual fue el error o donde esta lo que no hice bien..

Código PHP:
<?
if (isset($_POST["Submit"]))
{
$mensaje "";
if(empty(
$_POST["nombre"])){
$mensaje .= "han enviado un correo desde el sitio web.<br>";
}


if (
$mensaje != ""){
echo 
"Errores $mensaje <br />";
exit;

}



$nombre $_POST["nombre"];

$cuerpo "$nombre";
$cuerpo "$domicilio";
$cuerpo "$telefono";
$cuerpo "$mail";
-------------------------------------------------------------
$cuerpo "$comentarios";
-------------------------------------------------------------
$to "[email protected]";

    
$subject "$nombre - formulario";
    
$mailheader "MIME-Version: 1.0 \r\n"
    
$mailheader .= "Content-type: text/html; charset=iso-8859-1 \r\n"
    
$mailheader .= "From: Formulario del sitio Web <$email> \r\n"
    
$mailheader .= "Return-path: $email \r\n";
    
$mailheader .= "X-Priority: 1 \r\n"
    
$mailheader .= "X-MSMail-Priority: High \r\n"
    
$mailheader .= "X-Mailer: PHP/".phpversion()." \n"
    if (
mail ($to,$subject,$cuerpo,$mailheader)) 
    {
    
header("Location:contacto.html"); 
    exit;
    } else {
    
header("Location:noenviado.html"); 
    exit;
    }
    } else { 
    echo 
"No se puede entrar directo aquí";
    }
    
?>

este era el codigo que llevaba en el archivo html


Código PHP:
<form action="contacto.php" method="post"

en verdad te agradeceria si me pudieras explicar un poquito mas... gracias..
  #9 (permalink)  
Antiguo 15/03/2004, 14:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
La variable "$cuerpo" que usas .. debe ser una cadena .. y si ya usas X variabels más que debe componer el "cuerpo" debes concatenarlas ..

Con el punto se concatenan variables de tipo cadena (string) ..

Código PHP:
$cuerpo "$nombre";
$cuerpo .= "$domicilio";
$cuerpo .= "$telefono";
$cuerpo .= "$mail";
$cuerpo .= "$comentarios"
Pero así .. lo veras todo junto (tus variables) por qué no usas ningún salto de línea .. En tu caso particular el e-mail se está generando en HTML así que el salto de línea de HTML es el tag <br> .. usalo cuando quieras dar un salto de línea para componer tu e-mail .. Lo mismo puedes usar tag HTML comunes para darle formato a tu e-mail (negrita, usar tablas .. etc).

A todo esto .. si usas el método POST en tu formulario .. sigue usandolo para recoger tus variables:

$_POST['variable'] del formulario ...

Insisto que deberías leer algún manual sobre PHP .. sobre todo en el apartado de tratamiento de cadenas (strings) en las FAQ's tienes muchos para ver.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #10 (permalink)  
Antiguo 15/03/2004, 17:29
 
Fecha de Ingreso: agosto-2002
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
gracias cluster... ya me di una idea... de como armarlo.. haber si aprendi...

este es el archivo enviarforma.php


Código PHP:
<?
// Dirección Mail
$to "[email protected]";

// Variables y Datos

$send "Tu mensaje ha sido enviado.<br><a href='Javascript:history.back(1)'>Back</a>";
$subject "Información de Formulario";
$nombre $_POST['nombre'];
$domicilio $_POST['domicilio'];
$telefono $_POST['telefono'];
$email $_POST['email'];
$comentarios $_POST['comentarios'];
$body "Nombre: $nombre\n Domicilio: $domicilio\n Telefono: $telefono\n Email: $email\n Comentarios: $comentarios";
mail($to,$subject,$body);
echo 
"$send";
?>

y en el form del html pongo esto...

Código PHP:
<form onSubmit='return validForm(this)' action="enviarforma.php" method="post"


ahora.. ya lo probe y me funciono... solo tengo algunas dudas extras...

como hago para que en lugar de que se vaya a una pagina en blanco con el mensaje de al forma fue enviada... lo mando a otra pagina especial con un texto mas agradable x)

y una extra mas.. como hago que si no esta lleno el formulario no se envie, para que no me lleguen datos en blanco...

gracias...
  #11 (permalink)  
Antiguo 16/03/2004, 05:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Para validar tu formulario que todos los campos tengan algún valor usa condicionales y la función empty() que sirve para detectar si una variable tiene valor (distinto a 0 o NULL) y si a su vez está definida .. (todo esto bajo un IF y uno para cada variable que requieras que tenga algún valor).

Para redireccionar a una página tipo "gracias.html" o incluso "error.html" (caso de no pasar la validación o que el e-mail falle el envio ..)

Usa:

Código PHP:
header ("Location: pagina.xxx");
exit; 
La función mail() devuelve un "true" si pudo enviar el e-mail y un "false" si no (no quiere decir que lo recibió el remitente .. sólo que "salió" de PHP el e-mail ..).

Usalo con estructuras condiciones tipo if()

Código PHP:
if (mail(.....)){
header ("Location: gracias.html");
exit;
} else {
header ("Location: error.html");
exit;

(lo mismo para las validaciones de tus variables redireccionando hacia tu error.html .. o error.php y le pasas una variable de control que indique el error exacto para dar una "frase" en consecuencia en tu error.php).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 16/03/2004, 13:01
 
Fecha de Ingreso: marzo-2004
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0


Cluster muy buena tu explicación, también me sirvió para solucionar unas dudas a mi, pero asi me surge otra.

Tu dices que la función mail() le "entrega" al servidor de correo que tengo configurado en PHP. Ahora bien, como se yo que colocar para configurarlo en el archivo php.ini -> SMTP??
Yo estoy trabajando desde mi casa y tengo instalado windows XP.

Me gustaria saber como configurarlo
Desde ya gracias.

saludos
irondan_2358
  #13 (permalink)  
Antiguo 16/03/2004, 13:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. lo que se le dice en el php.ini sección "SMTP" es sólo la IP/nombre del servidor de correo SMTP que tengas en esa dirección o IP .. hasta ahí llega la parte PHP para que PHP con su función mail() pueda "entregar" el e-mail ..

Si usas tu PC como servidor .. debes instalarte un servidor de correo SMTP en tu PC .. o bien usar el de tu ISP (proveedor) de una cuenta tipo POP/SMTP que (importate) no requiera autentificación ..

Es más simple instalarte un servidor SMTP en tu PC que encontrar un servidor de correo SMTP externo (de tu ISP) que NO requiera autententificación por razones obvias de seguridad y contra el "spam".

Lee este tutorial de instalación de PHP+Apache+Mysql .. tiene un apartado (el último) sobre la instalación de servidores SMTP (hay dos de ejemplo para windows):

http://www.maestrosdelweb.com/editorial/phpmysqlap/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 16/03/2004, 14:03
 
Fecha de Ingreso: marzo-2004
Mensajes: 9
Antigüedad: 13 años, 9 meses
Puntos: 0
Muchas gracias Cluster .... me quedo mas que claro.

Otra duda es ... squirrel mail sirve para eso tambien ... o no tiene nada que ver??
  #15 (permalink)  
Antiguo 16/03/2004, 14:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
squirrell mail .. o "aplicaciones" en PHP u otros lenguajes similares son sólo "web-mails" .. En otras palabras .. son sólo "interface" para el real servidor de correo SMTP/POP (y/o IMAP) que uses .. Algunos servidores de correo (sobre todo los que puedes crear cuentas para recibir tu e-mail tipo POP y/o IMAP por ejemplo para windows MDaemon tiene el suyo própio) disponen de sus propios "web-mails" .. o bien puedes usar alguno de otra empresa/programador como el del ejemplo que pusistes que está escrito en PHP, podría ser uno en Perl o cualquier otro lenguaje.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 01:12.