PHP - Enviar correo PHP si...

   
Vista:

Enviar correo PHP si...

Publicado por xerok (18 intervenciones) el 03/09/2014 17:50:38
Hola buenas a todos.

Tengo un sistema en base a un formulario con diversos campos que guarda información en una base de datos. Dicho registros se pueden modificar online mediante un formulario de edición.

Actualmente tengo que cuando un campo especifico cambie de "NO ENVIADO" a "ENVIADO", notifique por correo a una persona (todo ok hasta aquí).

Mi problema es que si el estado es "ENVIADO" y alguien ingresa a cambiar otro dato, se envia un email de todas formas al actualizar (lo que es lógico por la forma en que esta hecho).
Quisiera saber como puedo hacer para que el correo se envie solo si el estado inicial fue "NO ENVIADO" y se cambio a "ENVIADO". Lo que no quiero es que si el estado inicial es "ENVIADO" y se cambio otro valor al actualizar envie un correo (espero se entienda).

En el formulario de edición tengo un select en donde cambio de estado "NO ENVIADO" - "ENVIADO". editar.php:

1
2
3
4
5
6
<td align="center">
	<select name="h_estado" id="h_estado" value="<?php echo $rows['h_estado']; ?>" size="1">
		<option value="<?php echo $rows['h_estado']; ?>"><?php echo $rows['h_estado_solicitud']; ?></option><!-- MUESTRO EL ESTADO ACTUAL-->
		<option value="NO ENVIADO">NO ENVIADO</option>
		<option value="ENVIADO">ENVIADO</option>
	</select>

El correo es algo asi (registrar.php):

1
2
3
4
5
6
7
8
9
10
11
12
// ENVIAR CORREO
if ($_POST['h_estado_']=="ENVIADO") {
$mail = 'SISTEMA <correo@gmail.com>';
$emailusuario=$_POST['h_email'];
$header = 'From: ' . $mail . "\n";
$header .= "X-Mailer: PHP/" . phpversion() . "\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/html";
$mensaje = "<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
<body>
<style>
.............BLABLABLALBA................


Espero me puedan ayudar.
Saludos.
Xerok.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Enviar correo PHP si...

Publicado por Ignacio (15 intervenciones) el 03/09/2014 20:07:34
Puedes poner un input de tipo hidden con nombre estadoBD (estado en base de datos) en tu formulario de edición y guardar el estado que hay actualmente en la base de datos, este campo no lo va a ver el usuario. Cuando el formulario sea enviado, enviará dos campos: el oculto con la información que tenía en la base de datos y el select "h_estado" que indica lo que ha seleccionado el usuario. Entonces ya tienes todo lo que te hace falta para saber si lo puedes enviar.

1
2
3
4
if ($_POST['h_estado_']=="ENVIADO" && $_POST['estadoBD'] == "NO ENVIADO")
{
 // enviar e-mail
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Enviar correo PHP si...

Publicado por xerok xerok09@gmail.com (18 intervenciones) el 03/09/2014 21:18:58
Gracias por darte el tiempo de responder Ignacio.

Tu sugerencia funciona perfectamente MUCHAS GRACIAS!!. No se me habia ocurrido.

Saludos.
Kevin.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar