Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ElInquisidor en 28 Febrero 2015, 20:44 pm



Título: [Resuelto] Notificaciones en php
Publicado por: ElInquisidor en 28 Febrero 2015, 20:44 pm
Hola a todos...
Tengo un inconveniente...
Tengo dos tipos de usuarios....
Uno que es el cliente y el otro el administrador....
Lo que quiero hacer es lo siguiente.
*Cuando el cliente llene un formulario y lo envie, el administrador recibira una notificación alusiva a que el cliente envió una "solicitud".

La verdad no tengo idea de como hacerlo... si alguien tiene un tutorial o un ejemplo o me puede decir como hacerlo sería de mucha ayuda...

Estaba viendo algo de httpush php pero la verdad no logre que funcionara

Saludos  :P


Título: Re: Notificaciones en php
Publicado por: engel lex en 28 Febrero 2015, 20:52 pm
puedes tener un php que revise las solicitudes y con ajax retornar los datos a cada x segundos


Título: Re: Notificaciones en php
Publicado por: Usuario Invitado en 28 Febrero 2015, 21:58 pm
Puedes implementar el patrón Observer y trabajar con AJAX.


Título: Re: Notificaciones en php
Publicado por: EFEX en 28 Febrero 2015, 22:22 pm
Si tocas la db podes utilizar triggers.


Título: Re: Notificaciones en php
Publicado por: ElInquisidor en 28 Febrero 2015, 23:50 pm
Sigo sin comprender... Alguien ha hecho algo parecido... Algo como las notificaciones de facebook... pero que se envié la notificación apenas se envié un formulario


Bueno... pues he intentado TODA la mitad del día y no he conseguido algo que en verdad funcione.
El código que he hecho no ha funcionado y la verdad no es merecedero de que ustedes lo vean... No he encontrado algun ejemplo, tutorial o algo por el estilo para poder guiarme...

si alguien tiene este tipo de material respecto para que me sea ayuda para desarollar lo que tengo en mente.

 :-\


Título: Re: Notificaciones en php
Publicado por: Zoik en 1 Marzo 2015, 13:47 pm
Bueno, deberías hacer una tabla en la base de datos donde se almacenen los formularios que envíen los usuarios normales, y con un PHP que coja esos formularios y se los muestre al administrador en tiempo real junto con AJAX.

Un saludo.


Título: Re: Notificaciones en php
Publicado por: MinusFour en 2 Marzo 2015, 02:55 am
Sigo sin comprender... Alguien ha hecho algo parecido... Algo como las notificaciones de facebook... pero que se envié la notificación apenas se envié un formulario


Bueno... pues he intentado TODA la mitad del día y no he conseguido algo que en verdad funcione.
El código que he hecho no ha funcionado y la verdad no es merecedero de que ustedes lo vean... No he encontrado algun ejemplo, tutorial o algo por el estilo para poder guiarme...

si alguien tiene este tipo de material respecto para que me sea ayuda para desarollar lo que tengo en mente.

 :-\

¿Quieres usar HTTP para recibir las notificaciones? Puedes simplemente enviar un correo y recibir la notificacion por ahi. Recibir notificaciones atraves de HTTP lo puedes hacer a traves de polling que es lo que te comentan. Por ejemplo puedes hacer una peticion al servidor cada X segundos a un recurso que te diga si hay nueva informacion o no. Basicamente:

Citar
Cliente: Hola servidor, ya tienes informacion?
Servidor: No.
Cliente: Hola servidor, ya tienes informacion?
Servidor: No.
Cliente: Hola servidor, ya tienes informacion?
Servidor: Si, enviaron un formulario de X hace Y tiempo.

Le estas preguntando al servidor constantemente si hay nueva informacion si o no. Algo asi (usa jquery):

Código
  1. setInterval(function() {
  2.  $.get({
  3.    url: 'pagina.php',
  4.    dataType: 'text',
  5.    success: function(data){
  6.      if(data != 'No'){
  7.        mostrarNotificacion(data);
  8.      }
  9.    }
  10.  });
  11. }, 5000);

mostrarNotificacion() es simplemente una funcion de javascript para el navegador por ejemplo:

Código
  1. function mostrarNotificacion(data) {
  2.  alert("Hey recibiste informacion!: " + data);
  3. }

Y tu codigo de servidor se ve asi:

Código
  1. <?php
  2. $data = hayInformacion();
  3. if($data){
  4.  echo 'No';
  5. } else {
  6.  echo $data;
  7. }

Tu funcion de hayInformacion puede ser tan sencilla como revisar si existe un archivo:

Código
  1. function hayInformacion() {
  2. if(file_exists('informacion.txt')){
  3.     //Carga informacion del archivo
  4.     $data = file_get_contents('informacion.txt');
  5.     //Borra archivo:
  6.     unlink('informacion.txt');
  7.  } else {
  8.    return false;
  9.  }
  10. }

Y ahora solo tienes que decirle al script que procesa tus formularios que agregue informacion al archivo (o que lo cree si existe).

Código
  1. <?php
  2. //Nuevo formulario:
  3. file_put_contents('informacion.txt', $informacionANotificar, FILE_APPEND);
  4. ?>

Este es un ejemplo muy sencillo de como hacer polling. Realmente no es muy eficiente y esto simplemente notifica el mensaje una vez a una sola persona, despues borra el mensaje. Por lo que si tienes a varios usuarios corriendo el mismo script solo algunos reciben la notificacion.


Título: Re: Notificaciones en php
Publicado por: ElInquisidor en 2 Marzo 2015, 15:21 pm
MinusFour Gracias, lo intentare haber si es posible... si no puedo me ire por el lado del correo que es mucho mas facil y no lo habia pensado antes :D pero con tu ayuda ya tengo un punto de donde partir...