Restringir envió de email por usuario

Iniciado por 177600531, 17 Diciembre 2010, 04:30 AM

0 Miembros y 1 Visitante están viendo este tema.

177600531

Gracias por contestar, he entendido gran parte de lo que me querías decir, he implementado tu code y funciona perfectamente el problema es que al segundo día tengo que restablecer el campo cantidad a 0 y estoy hecho un lio con la fecha soy muy malo en esto de mysql.

RedZer

Cita de: RedZer en 18 Diciembre 2010, 00:03 AM

yo al campo fecha le di el valor directamente pero tu lo que debes de hacer para que coga la fecha y la inserte en su respectivo campo es que cuando el usuario mande un email por primera vez en el dia en el apartado que ocupas para enviar emails ahi mismo insertar  una consulta para sacr el valor del campo cantidad  y verificar si esta en cero si es asi insertas la fecha del dia de lo contrario si no es igual a cero entonces empiesas  amodificar el valor del campo cantidad


lee esto
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

177600531

Se supone que lo he leído y no lo entiendo si vuelvo a preguntar.

RedZer

Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

177600531

Y el campo cantidad al día siguiente como se restablece?

Cita de: RedZer en 18 Diciembre 2010, 00:03 AM
verificar si esta en cero si es asi insertas la fecha del dia de lo contrario si no es igual a cero entonces empiesas  amodificar el valor del campo cantidad como en el siguiente codigo

RedZer

Código (php) [Seleccionar]

<?php 
include("conexion.php");
 
$fecha=date("Y-n-j");
//aqui sacco la cantida de imail que aya enviado el usuario si te das cuenta en la consulta estoy validadno
//con el nombre de usuario RedZer en mi caso tu puedes ponerle otra variable ahi en donde estes guardando tu nombre de usuarios por ejmplo algo asi $usuario=elvil
          
conectar();
          
$queEmp2 mysql_query("SELECT cantidad,fecha  FROM usuarios where usuario='RedZer' ");
          
$rowEmp2 mysql_fetch_assoc($queEmp2);
          
$cantidad=$rowEmp2['cantidad'];
$fecha2=$rowEmp2['fecha'];
           
desconectar();
   
     if($fecha2==$fecha)
   {
   
   //de ahi validas si la cantidad que te arojo es menr a 30 metes el codigo que ocupas para enviar email
   if($cantidad <35){
   
   //*******************aki el codigo para enviar emailsclaro despues de las 2 consultas de sql que ago abajo
   
   //con esta con sulta le sumas 1 al campo cantidad cada que envie un email
   conectar();
          
$queEmp2 mysql_query("SELECT cantidad  FROM usuarios where usuario='RedZer' and fecha='$fecha' ");
          
$rowEmp2 mysql_fetch_assoc($queEmp2);
          
$suma=$rowEmp2['cantidad']+1;
            
desconectar();

 //aqui modificas el valor que hay en el campo cantidad por el nuevo valor que le estas sumando
   conectar();
   if ($suma!=''){mysql_query("UPDATE usuarios SET cantidad='$suma' where usuario='RedZer' ");}
            
desconectar();
                   }//ciero el if de de la comparacion
   //pongo un else para informarle al usuario que ya a enviado 30 emails por el dia de hoy
   else{echo "lo sentimos solo se puede enviar 30 email por dia";}
   
   }//cierro el if del la fecha

                        
else{
conectar();
   if ($fecha2!=''){mysql_query("UPDATE usuarios SET fecha='$fecha' where usuario='RedZer' ");}
            if (
$fecha2!=''){mysql_query("UPDATE usuarios SET cantidad='0' where usuario='RedZer' ");}
desconectar();

   }
?>





Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

Shell Root

Podrías hacer algo como esto, -Lo hice de pura memoria, puede estar malo-:
Código (php) [Seleccionar]
# Se envío el primer correo del día.
$sSQL = "INSERT INTO tblPoC(sID, sDate, [...]) VALUES(1, ".date("d/m/Y")." , [...]);";
$sQuery = mysql_query($sSQL, $sHandle) or die( "<b>Error: </b>".mysql_error()."<br />" );

# El campo de fecha es seteado con el valor : 18/12/2010 -Fecha actual del sistema-
# Cada vez que el usuario realiza una acción, -Enviar mail-, se verifica la fecha
# registrada con la fecha del sistema.

$sSQL = "SELECT COUNT(sID) FROM tblPoC WHERE sDate = '". date("d/m/Y") ."';";
$sQuery = mysql_query($sSQL, $sHandle) or die( "<b>Error: </b>".mysql_error()."<br />" );
$sCountRows = mysql_num_rows($sQuery);
if( $sCountRows > 0 ){ echo "Puede enviar correo. <br />"; }
else{
echo "La fecha cambio. Reset data!<br />";
$sSQL = "UPDATE FROM tblPoC SET sDate ='".date("d/m/Y")."', sCantidadMails = 0 WHERE sID = 1;";
$sQuery = mysql_query($sSQL, $sHandle) or die( "<b>Error: </b>".mysql_error()."<br />" );
}
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

177600531

Gracias a los dos por los ejemplos, mejor explicación imposible  ;D.