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

Bueno llevo comiéndome el coco durante todo el día pensando y buscando como limitar el envió de emails en mi pagina web por usuario. Ejemplo:


Usuario:  Pepe – 30 Emails al día.

Usuario:  Pepito – 100 Emails al día.


Agradecería que me echarais una mano ya no se qué hacer.
Gracias de antemano.

Shell Root

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

177600531

No sé si me he explicado bien, yo tengo la base de datos con los usuarios registrados, cada uno tiene acceso a un formulario donde puede enviar emails a lo bestia, pues lo que quiero hacer yo es permitir un numero de envíos máximos por día y por usuario. Como en el ejemplo anterior que el usuario pepe tenía acceso a un número de 30 emails al día y pepito a 100. Así evito que me saturen el servidor.

Shell Root

No se me da muy bien el análisis de bases de datos, pero... podrías crear una tabla que esté enlazada con la de usuarios, en donde contenga campos como:

Código (php) [Seleccionar]
intIDUsuario # Usuario
strFecha # Fecha actual - Día
intContador # Contador de cada mail enviado, para verificar cuando es el limite con el campo siguiente
intcantidadLimite # Cantidad de mails que puede enviar el usuario


Ahora sólo es cuestion de qué: cada vez que el usuario envie un mail, se auto-incremente el campo intContador, y verificar si es menor al campo intcantidadLimite.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

177600531

Tengo un lio por aquí que asusta, no tendrás un pequeño ejemplo? Y con el campo strFecha que hacemos porque al siguiente día se tiene que restablecer el campo intContador... bueno tengo un lio que a ver como lo resuelvo, gracias.

Shell Root

Es que no se que es lo que realmente estáis haciendo, lo digo por ejemplo, si necesitas llevar algún tipo de registro de cada usuario por día, para ver cuantos mail enviaron en determinada fecha.

Y el strFecha es para eso, cuando se envia el primer mail del día se ingresa la fecha y cada vez que se envía un mail se verifica la fecha si es igual a la que se ingreso la primera vez, el contador auto-incrementa en 1 de lo contrarío, el contador se re-establece.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

mira camrada  la idea es esta tu lo que deceas es limitar a un usuario para que no envie muchos emails por dia vea bueno ahi te va mi idea esperemos le agarres la onda
ise la siguiente tabla
Código (sql) [Seleccionar]

id usuario(varchar) fecha(date)      cantidad(int)
1      RedZer                     2010-12-17          0
2 elvil                          2010-12-17                 0


los campos fecha,cantidad seran importantes para realizar lo que deceas 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 como en el siguiente codigo
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  FROM usuarios where usuario='RedZer' ");
          
$rowEmp2 mysql_fetch_assoc($queEmp2);
          
$cantidad=$rowEmp2['cantidad'];
           
desconectar();
   
   //de ahi validas si la cantidad que te arojo es menr a 30 metes el codigo que ocupas para enviar email
   if($cantidad <30){
   
   //*******************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";}
?>




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

Shell Root

@RedZer, pero sí para el usuario con ID 1, se requiere que sólo envíe 20 mail y para el usuario con ID 2 un total de 100, deberìas de meterle un campo con ese limite para cada usuario.
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

RedZer

#8
soy elvil solo me cambie mi nombre de usuario  :silbar: es que el de elvil era de otra persona que lo ocupa en otro foro :silbar: y fue el que se me ocurrio cuando me registre aqui pero este ya es mio mio esperemos que no aya otro igual
y tomando lo que tu dices lo puede hacer asi que agregue otro campo el cual cuando ingrese un nuevo usuario el como administrador por decirlo asi decida cuantos emails podra enviar ese nuevo usuario, y apartir de ahi empezar  a estar comparando ese campo cada que se envie un email
Nacido y criado entre gente que enseño a pensar antes de creer a ciegas, Todo me causa curiosidad en el mundo

RedZer

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