Foros del Web » Programando para Internet » PHP »

Problema con la confirmacion en email

Estas en el tema de Problema con la confirmacion en email en el foro de PHP en Foros del Web. Primero Saludos A Todos. Soy Nuevo & el Foro y tambien en esto de PHP. Hice una pagina donde los clientes puden hacer su pedido ...
  #1 (permalink)  
Antiguo 24/06/2004, 09:00
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Problema con la confirmacion en email

Primero Saludos A Todos.

Soy Nuevo & el Foro y tambien en esto de PHP.

Hice una pagina donde los clientes puden hacer su pedido cuando completan la orden el cliente y el vendedor necesitan recibir un email con la confirmacion de la orden, el cual esta trabajando bien. El problema es que el email solo inqluye la informacion que ponen antes de ordenar. Nombre, Direccion, Tel. etc...

Pero no incluye los productos que pidieron en la pagina Anterior. este es un demo que puse para que si quieren pueden usarlo para que miren aque me refiero. Solo voy a poner una parte porque es muy grande.

este es un demo puden usarla para que miren aque me refiero.
http://www.themailinghouse.com/demo/demo.php

Hojala que alguien Ilumine mi dia.

//este es el script de la democart.php

<style type="text/css">
<!--
.style1 {color: #FFFFFF}
.style2 {color: #FF0000}
-->
</style>
<form method="POST" action="checkoutdemo.php" onsubmit="return FrontPage_Form2_Validator(this)" language="JavaScript" name="FrontPage_Form2" webbot-action="--WEBBOT-SELF--">
<div align="center">
<table width="725" align="center">
<tr valign="bottom" bgcolor="#FF0000">
<th colspan="7" scope="col"><div align="center" class="style1"></div>
<div align="center" class="style1"></div>
<div align="center" class="style1"></div>
<div align="center" class="style1"><span class="style25">BROCHURES</span></div></th>
</tr>
<tr>
<th width="58" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Iment </span></th>
<th width="183" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Description</span></th>
<th width="41" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Qty</span></th>
<td width="138"><span class="style1">
<?php
$ItemQA031= $_POST['ItemQA031'];
$Desc1= $_POST['Desc1'];
$Qty1= $_POST['Qty1'];
$ItemQA033= $_POST['ItemQA033'];
$Desc2= $_POST['Desc2'];
$Qty2= $_POST['Qty2'];
$ItemQA058= $_POST['ItemQA058'];
$Desc3= $_POST['Desc3'];
$Qty3= $_POST['Qty3'];

?>

</span></td>
<th width="58" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Iment </span></th>
<th width="179" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Description</span></th>
<th width="36" nowrap bgcolor="#FF0000" scope="col"><span class="style3 style1">Qty</span></th>
</tr>
<tr valign="baseline">
<td nowrap><p align="left" class="style24 style30 style20 style22"><span class="style26">
<? if ($Qty1 > 0) print $ItemQA031;?>
</span></p>
<p align="left" class="style24 style30 style20 style22"><span class="style26 ">
<? if ($Qty2 > 0) print $ItemQA033;?>
</span> </p>
<p align="left" class="style24 style30 style20 style22"><span class="style26">
<? if ($Qty3 > 0) print $ItemQA058;?>

//este es el final de democart.php

</span></span> </p></td>
</tr>
<tr>
<td colspan="7">
<hr size="1" color="red" NOSHADE>
<p align="center"><font class="blacktext"><b>Please fill out the following information below to complete your order.</b> </font> </p>
<p align="center"> <b><font class="greetext style26 style2">Qantas Rep:</font></b>
<TABLE class="blacktext">
<TR>
<TD><div align="right"></div></TD>
<TD>
<div align="center">ID :
<input name="idno" type="text" id="idno" size="15">
</div></TD>
</TR>
<TR>
<TD><div align="right">First Name:</div></TD>
<TD><input name="first" type="text" id="first" size="15">
Last Name:
<input name="last" type="text" id="last" size="15">
</TD>
</TR>
<TR>
<TD><div align="right">Email:</div></TD>
<TD><input type="text" size="37" name="s_email"></TD>
</TR>
<TR>
<TD>Today's Date :</TD>
<TD><input name="today" type="text" id="today" size="12">
Date Needed :
<input name="need" type="text" id="need2" size="12"></TD>
</TR>
</TABLE>
<p align="center">
<p align="center">
<p align="center"><b><font class="style2">Ship items to:</font></b>
<TABLE class="blacktext">
<TR>
<TD><div align="right">First Name : </div></TD>
<TD><input type="text" size="18" name="s_first">
Last Name :
<input type="text" size="15" name="s_last"></TD>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
<P align="center">
</form>
<p class="style10">&nbsp;</p>

//este es todo el script de checkoutdemo.php..

<?php
$header = "header.html";
$footer = "footer.html";
$returnpage = "/qantas/qantas.php";
$youremail = "[email protected]";
$mode = "BOTH";

function doFormError($errString) {

include($header);

echo "<FONT SIZE=+2>The form you submitted was not complete.<BR><BR></FONT>";
echo "$errString<BR><BR>\n";
echo "<INPUT TYPE=BUTTON ONCLICK='history.back()' VALUE=' Return to the checkout page '><HR>";

include($footer);

exit;
}

function doError($errString) {

include($header);

echo "$errString<BR><BR>\n";

include($footer);

exit;
}

$idno= $_POST['idno'];
$first= $_POST['first'];
$last= $_POST['last'];
$today= $_POST['today'];
$need= $_POST['need'];
$s_first= $_POST['s_first'];
$s_last= $_POST['s_last'];
$ItemQA031= $_POST['ItemQA031'];
$Desc1= $_POST['Desc1'];
$Qty1= $_POST['Qty1'];
$ItemQA033= $_POST['ItemQA033'];
$Desc2= $_POST['Desc2'];
$Qty2= $_POST['Qty2'];
$ItemQA058= $_POST['ItemQA058'];
$Desc3= $_POST['Desc3'];
$Qty3= $_POST['Qty3'];


if (($first == "") || ($last == "") || ($today == "") || ($need == "")) {
doFormError("I'm sorry, but it appears that you forgot to fill in a required field. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}

if( !(ereg("^(.+)@(.+)\\.(.+)$",$s_email)) ) {
doFormError("You submitted an invalid email address. Please go <A HREF='Javascript:history.go(-1);'>back</A> and correct the error.");
exit;
}



$invoice = date ("ymdHis");
$today = date ("l, F jS Y");
$strMessageBody = "";
$strMessageBody .= "A new order has been received. A summary of this order appears below.\n";
$strMessageBody .= "\n";
$strMessageBody .= "Order Date: $today \n";
$strMessageBody .= " \n";
$strMessageBody .= "Invoice #: $idno$invoice \n";
$strMessageBody .= " \n";
$strMessageBody .= "Qantas Rep: \n";
$strMessageBody .= "-------- \n";
$strMessageBody .= " $first $last \n";
$strMessageBody .= " Need By: $need \n";
$strMessageBody .= " FedEx #: $fedex \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Ship To: \n";
$strMessageBody .= "-------- \n";
$strMessageBody .= " $s_first $s_last \n";
$strMessageBody .= " $s_addr $s_addr2 \n";
$strMessageBody .= " $s_city, $s_state $s_zip \n";
$strMessageBody .= " $s_phone \n";
$strMessageBody .= " \n";
$strMessageBody .= " \n";
$strMessageBody .= "Qty Product ID - Product Name\n";
$strMessageBody .= "================================================= ==================== \n\n";
if( $Qty1 ) {$strMessageBody .= "$Qty1 $ItemQA031 - $Desc1 \n";}
if( $Qty2 ) {$strMessageBody .= "$Qty2 $ItemQA033 - $Desc2 \n";}
if( $Qty3 ) {$strMessageBody .= "$Qty3 $ItemQA058 - $Desc3 \n";}
$strMessageBody .= "================================================= ==================== \n";
$strMessageBody .= "SUBTOTAL: $SUBTOTAL \n";
$strMessageBody .= "TOTAL: $TOTAL \n";
$strMessageBody .= "\n";
//$strMessageBody .= "FREIGHT: $SHIPPING \n";
$strMessageBody .= "\n\n";
$strMessageBody .= "Comments: \n";
$strMessageBody .= "--------- \n";
$strMessageBody .= "$comment \n";
$strMessageBody .= " \n";


if( $mode == "BOTH" || $mode == "EMAIL") {
$mailheaders = "From: $s_email\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:The Mailing House Inc.®\r\n";
$subject = "New Online Order";
mail($youremail, $subject, $strMessageBody, $mailheaders);


//# Send email conformation to the customer.....
$mailheaders = "From: $youremail\r\n";
$mailheaders .="X-Mailer: PHP Mail generated by:The Mailing House Inc.®\r\n";
$subject = "Order Confirmation";
mail($s_email, $subject, $strMessageBody, $mailheaders);
}

echo "<h2>Thank you</h2>";
echo "Thank you for your oline order. You will receive a confirmation email of your order ";
echo "momentarily. Please contact us at $youremail if you have any questions or concerns.";
echo "<P>";
echo "<A HREF=\"$returnpage\" target=_top>Return Home</A>";
echo "<P>";


?>

Última edición por tmh4mail; 24/06/2004 a las 09:03
  #2 (permalink)  
Antiguo 24/06/2004, 09:12
 
Fecha de Ingreso: junio-2004
Mensajes: 101
Antigüedad: 19 años, 10 meses
Puntos: 0
Información Re:

Hola.

Veo que tomas muchas variables mediante POST, pero en ninguna parte de tu codigo veo que le des valores a tus variables $TOTAL, $SUBTOTAL
donde los calculas?
  #3 (permalink)  
Antiguo 24/06/2004, 09:35
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Sig...

Gracias Por Responderme Rapido

Como dige anterior mente soy algo nuevo.

realmente son tres paginas que stoy usando.
demo.php donde tengo los hidden fields.

donde estan los valores de la pagina segunda que es democart.php la cual en se muestran los valores ordenados en la pagina anterior. y la pagina checkoutdemo.php es donde corre el script para mandar el email.

si quieres manda me un email y te pudo mandar el script completo.

[email protected]
  #4 (permalink)  
Antiguo 24/06/2004, 11:01
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
ayuda por favor.

siento que el problema es que pierdo los valores de la pagina demo.php
al sumitir esta pagina los valores corren a la pagina democart.php
entonces al sumitir esta pagina pierde los valores por eso no muestra los productos ordenados en la pagina demo.php


si alguien tiene alguna sugerencia se los agradesco.

Gracias y feliz dia.
  #5 (permalink)  
Antiguo 24/06/2004, 11:27
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
A ver si entendí bien, tus valores van así:

Valores_iniciales -> POST -> Demo.php
valores_demo -> POST -> Democart.php

Y al final, quisieras obtener los Valores_iniciales desde Democart.php?

Si es así, lo que pasa es que estás esperando que los valores se mantengan post tras post, lo cual no va a suceder.

Yo aquí lo que recomendaría es que usaras Sesiones. así, puedes guardar los valores iniciales en una $_SESSION['Iniciales'] y los del demo.php en $_SESSION['Demo']. Si inicializas la sesión en cada una de las páginas, los valores se van a mantener a donde quiera que vayas siempre y cuando inicialices la sesión.

Si no me equivoqué en lo que quieres hacer, te recomiendo busques un poco más de información sobre Sesiones. Con eso debes solucionar tu problema.

Saludos.
  #6 (permalink)  
Antiguo 24/06/2004, 11:44
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
Gracias Chiwuan.

boy a buscar tutoriales haber si logro utilizar session en ves de $_POST

No se si me puedas dar algun ejemplo que es lo que tengo que hacer.

De Nuevo muchas gracias por tu ayuda.
  #7 (permalink)  
Antiguo 24/06/2004, 19:54
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
Algo muy básico

Esto sería un ejemplo muy sencillo:

Para el demo.php, hacemos que lo que reciba por el POST se guarde en variables de sesión:
----

session_start();
$_SESSION['Demo']['var1'] = $_POST['var1']
$_SESSION['Demo']['var2'] = $_POST['var2']
$_SESSION['Demo']['var3'] = $_POST['var3']
......
$_SESSION['Demo']['varx'] = $_POST['varx']

// Simplemente estoy haciendo que lo que llegue por el post lo guardo en un array bidimensional de sesión, que se identifica por anteponerle 'Demo'. Nótese que obviamente cambiarias var1,var2,var3 por las variables que deseas guardar


------------
Para el democart.php
------------
session_start();
$_SESSION[Cart']['var1'] = $_POST['var1']
$_SESSION[Cart']['var2'] = $_POST['var2']
$_SESSION[Cart']['var3'] = $_POST['var3']
......
$_SESSION[Cart']['varx'] = $_POST['varx']

/* Aqui repites lo mismo que en el archivo anterior. Si inicializas la sesión en cada archivo (tienes que inicializarla hasta arriba del mismo!), mantendrás todas las variables de sesión que hayas pasado desde cualquier otro archivo.
Entiéndase por esto, que en democart.php puedes acceder a la var1,var2,var3 del archivo demo.php, simplemente haciéndoles referencia a las variables de sesión que hayas escogido usar.

Puedes continuar esta 'cascada' de paso de variables conforme lo vayas necesitando. Para llamar la variable que quieres, solo necesitas invocar el nombre que le hayas asignado (ej. $_SESSION['Demo']['var1'] ). No necesariamente tienes que usar arrays bidimensionales para esto. Yo lo hice para que fuera más simple entender de que página viene cada variable.

A ver si te sirve. Esto es lo básico de lo básico de sesiones.
  #8 (permalink)  
Antiguo 29/06/2004, 16:01
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
chiwuan
Gracias Por Tu Paciencia con un principiante, Mira me servido de mucha ayuda todo lo que as posteado en el foro pero no entiendo porque razon no me funciona como deve de ser. mira hice un pagina simple donde entro el primer nombre. el cual debe pasar por dos paginas mas y no lo hace sera que el servidor de ISP que tiene la compania no este trabajando bien el PHP.ini

este es el link de la pagina.
http://www.themailinghouse.com/demo/first.php

///este es el code de la first.php
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="second.php" method="post" name="form" id="form">
<p>
<input name="txtFirstName" type="text" id="txtFirstName">
First Name</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>

///este es el codigo de la second.php
<?php
session_start();
session_register("sessFirstName");
$sessFirstName = $HTTP_POST_VARS['txtFirstName'];
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p><?php echo $_SESSION['sessFirstName']; ?>
</p>
<p><a href="last.php">295959</a></p>
</body>
</html>

///este es el codigo de la last.php
<?php
session_start();
session_register("sessFirstName");
$sessFirstName = $HTTP_POST_VARS['txtFirstName'];
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<p><?php echo $_SESSION['sessFirstName']; ?>
</p>
<p>&nbsp;</p>
</body>
</html>


Alguna sujerencia por favor, Te lo agradecere de corazon..
  #9 (permalink)  
Antiguo 29/06/2004, 17:21
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
Al parecer, estás guardando bien los valores, pero en el last.php, los estás SOBREESCRIBIENDO, por eso ya no se ven.

Toma en cuenta que los valores de sesión se mantienen guardados mientras inicialices la sesión, no es necesario que los re-registres en cada página, por eso creo que en tu last.php, al registrarlos de nuevo, los sobreescribes.

Prueba modificando el codigo PHP de tu last.php, dejandolo solo así:

<?php
start_session();
?>

Y prueba a ver si así mantienes el valor hasta donde quieres llevarlo.

Saludos,
  #10 (permalink)  
Antiguo 30/06/2004, 10:00
 
Fecha de Ingreso: junio-2004
Mensajes: 71
Antigüedad: 19 años, 9 meses
Puntos: 1
chiwuan

Final Mente Lo Logre

Gracias por tu gran ayuda la verda si no huviera sido por ti estuviera en un hoyo solo hoy lo que tengo que hacer es trabajar en el inventario. si tienes algunas sugerencias cual seria la mas facil solucion.

depende de la cantidad de producto que el clientes ordena necesito descontarlo de lo que se encuentra en la bodega.

tengo una tabla de sql. Con productoID que incluye todos los productos y otro field con la cantidad en la bodega.

pienso que lo ideal seria primero conectarme al database, despues seleccionar el productoID = $productoID; despues restar la cantidad de la bodega con la catidad que el cliente ordeno y al final hacerle update a la cantidad en la bodega. Se ve sencillo pero no tengo ni idea como hacer todo eso. Tu que eres como my maestro echame una mano.


Saludos y Gracias De Nuevo..
  #11 (permalink)  
Antiguo 30/06/2004, 11:50
 
Fecha de Ingreso: mayo-2004
Mensajes: 24
Antigüedad: 19 años, 11 meses
Puntos: 0
Pues todo eso se hace aprendiendo sintaxis SQL, lo cual, así como hiciste tu tarea de sesiones vas a tener q hacerlo.

Es MySQL? Yo hasta el momento solo había utilizado Access mediante ODBC, y estoy aprendiendo MySQL, pero la sintaxis es casi la misma.

Por mientras, busca info sobre hacer un "SELECT" para obtener los datos, y luego un "UPDATE" para actualizar lo que sea que le hayas restado.

Cuando tengas dudas más específicas como esta, te ayudo todo lo que quieras, pero para cosas generales, te pediré que busques ejemplos o un poco más de info antes.

Saludos,
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 09:55.