Foros del Web » Programando para Internet » PHP »

activar noticia con la funcion email()

Estas en el tema de activar noticia con la funcion email() en el foro de PHP en Foros del Web. He estado mirando en google pero la verdad que sigo sin aclararme con mi problema. Hos cuento tengo un formulario donde pido los siguientes datos, ...
  #1 (permalink)  
Antiguo 08/06/2011, 06:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
activar noticia con la funcion email()

He estado mirando en google pero la verdad que sigo sin aclararme con mi problema. Hos cuento tengo un formulario donde pido los siguientes datos, email noticia y titulo de la noticia. cuando le doy a enviar guardo esos datos en mi tabla de db y acontinuacion muestro en pantalla en otro script. Hasta aqui bien.

Mi problema es el siguiente: yo no quiero mostrar los datos en pantalla hasta que no lo active el cliente atraves de un correo que le envie a traves de la function email().

alguien sabria explicarme los pasos que tengo que seguir para conseguir esta dinamica.
  #2 (permalink)  
Antiguo 08/06/2011, 06:56
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: activar noticia con la funcion email()

no entiendo bien, quieres que nada más vean esa pagina los que han confirmado su cuenta con un mail, no entiendo bien lo que quieres
  #3 (permalink)  
Antiguo 08/06/2011, 07:12
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: activar noticia con la funcion email()

Crea una tabla en la cual el estado de la noticia sea stand by, mientras no se realiza la aprobación de esta, y cuando la realices la puedes pasar a otra tabla o bien cambiar su estado de stand by a chequeada
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #4 (permalink)  
Antiguo 08/06/2011, 07:26
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: activar noticia con la funcion email()

claro, puedes mandar el mail con un codigo de activacion..
cuando abre la url que mandas en el mail se cambia el estado de la noticia de ese id y codigo
  #5 (permalink)  
Antiguo 08/06/2011, 07:41
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

gracias por contestar pero aun no me quedo muy claro eso de pasar de una tabla a otra en fin si tengo estos campos en la tabla1 :
noticia, titulo_noticia,email,imagen.

que tengo que crear otra tabla con los mismos campos perdonar pero no entendi bien el mecanismo si me lo podeis aclarar diculparme por no entenderos a la primera
  #6 (permalink)  
Antiguo 08/06/2011, 07:43
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: activar noticia con la funcion email()

no hagas eso de la otra tabla, a la que tienes ahora crea un campo que se llame estado(int)
cuando creas la noticias lo guardas como 0

y solo muestras las que tengan estado = 1
y entonces cuando mandes el mail como te decia arriba, le cambias el estado de 0 a 1, te funcionario como un activar noticia
  #7 (permalink)  
Antiguo 08/06/2011, 07:55
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: activar noticia con la funcion email()

En su tabla debe tener un campo ID que identifique cada noticia (AUTO INCREMENTAL) y crear un campo ESTADO_NOTICIA entonces cuando los usuarios creen la noticia inserta un cero (0) en ese campo lo cual quiere decir que la noticia esta esperando activación.

Después de que hagas eso mandas el correo de activación con el campo que identifica la noticia osea el AUTO INCREMENTAL y con el enlace de activación así:

http://www.tudominio.com/tupagina.ph...UTOINCREMENTAL

cuando el usuario lo presione en la pagina de activaciones haces un update a esa tabla cambiando el campo ESTADO_NOTICIA a uno (1) que quiere decir que esta activada asi:

Código PHP:
Ver original
  1. $id = $_GET['id'];
  2. sentencia = "UPDATE tu_tabla SET ESTADO_NOTICIA = 1 WHERE id_noticia = $id";
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #8 (permalink)  
Antiguo 08/06/2011, 08:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

bien entonces el enlace que mando por emai tienes que ser que balla al script donde hago la activacion osea tiene que redirigir aqui por ejemplo:
correo email enlace
Código PHP:
Ver original
  1. http://midonomio.com/activar_noticia.php
y luego en el script llamodo activar_noticia.php:
solo tengo que hacer el update asin:
Código PHP:
Ver original
  1. $id = $_GET['id'];
  2.       sentencia = "UPDATE tu_tabla SET ESTADO_NOTICIA = 1 WHERE id_noticia = $id_noticia";
siempremente seria esto pero claro entonces en mi tabla solo se guardara en el campo ESTADO_NOCICIA=0 hasta que el usuario mande en enlace que entonces si que se guardara todos los datos en la tabla osea que el codigo que tengo donde muestro las noticias seguira igual es asin en resumen no se guarda nada en la tabla hasta que se hace el update.

pero si yo antes guardaba los datos en la tabla directamente ahora eso que tengo que ha
cer quitarlo ya que los grabo con el update del enlace que envio por la function email().
no se si hos estoy liando pero quiero entenderlo bien gracias de todas formas
  #9 (permalink)  
Antiguo 08/06/2011, 08:37
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: activar noticia con la funcion email()

Cita:
pero si yo antes guardaba los datos en la tabla directamente ahora eso que tengo que ha
cer quitarlo ya que los grabo con el update del enlace que envio por la function email().
no se si hos estoy liando pero quiero entenderlo bien gracias de todas formas
Puedes guardarlo, como te comente en un comienzo luego indificar el campo donde estará stand by la noticia(0) lo modificas a ver noticia(1) , y en tu query que recoje las noticias le colocas la condicion en el where

Código PHP:
Ver original
  1. WHERE noticia='ver'

Ya con eso te debiese funcionar
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #10 (permalink)  
Antiguo 08/06/2011, 08:37
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: activar noticia con la funcion email()

no entendí si entendiste jaja, es que la explicación que diste no la entendi, pero con lo que te hemos dicho andarás bien, agregale el campo nuevo a tu tabla (1), modifica tu consulta insert para que insert para que guarde 0 en ese campo(2) y haz la consulta del update(3)
  #11 (permalink)  
Antiguo 08/06/2011, 08:40
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: activar noticia con la funcion email()

amigo esto esta mal:

$id = $_GET['id'];
sentencia = "UPDATE tu_tabla SET ESTADO_NOTICIA = 1 WHERE id_noticia = $id_noticia";

Si tu recoges una variable por GET que se llama $id como vas a hacer esta comparacion ?

WHERE id_noticia = $id_noticia

debe ser:

WHERE id_noticia = $id
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #12 (permalink)  
Antiguo 08/06/2011, 08:53
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

perdona tenias razon es where_noticia=$id

bueno ahora no tengo tiempo luego con calma me lo mirare y hos dire que tal me fue un saludo y mucha gracias por vuestra colaboracion espero que si tengo alguna duda sobre este tema me sigais ayudando saludos y gracias de verdad a todos. en realidad quiero aprenderlo hacer de las dos formas que me aveis comentado un saludo
  #13 (permalink)  
Antiguo 08/06/2011, 08:56
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 10 meses
Puntos: 209
Respuesta: activar noticia con la funcion email()

ok, suerte ..., estamos en la red
  #14 (permalink)  
Antiguo 08/06/2011, 10:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

amigos segun entendi hice algo asin espero que me podais corregir

Código PHP:
Ver original
  1. //aqui guardo los datos del formulario con el campo estado_noticia=0.
  2. $conexion=mysql_connect("localhost","root","");
  3. mysql_select_db("db",$conexion);
  4. $ssql="INSERT INTO tabla_noticias(estado_noticia,noticias,archivo,email)values ('".$_POST['noticia']."','".$FILES['archivo']['name']."','".$_POST['correo']."')";
  5.       if (mysql_query($ssql,$conexion)){
  6.       }else{
  7.         echo 'hubo un error';
  8.       }
  9. //envio el correo con la funcion email() de php.
  10.  $registros=mysql_query ("SELECT * FROM tabla_noticias order by id_noticia desc",$conexion);
  11.    while($row=mysql_fetch_assoc($registros)){
  12.       $destino=$row['correo'];
  13.       $asunto='activacion de noticia';
  14.       $mensaje='clickea este enlace para activar tu noticia<br>
  15.     http://www.tudominio.com/activar_noticia.php';
  16.      if(mail($destinatario,$asunto,$mensaje)){
  17.     echo ("MENSAJE ENVIADO");
  18. }else{
  19.     echo ("ENVIO FALLIDO");
  20. }
  21.     }
este es el script para la activacion de la noticia
Código PHP:
Ver original
  1. //este es el script activar_noticia.php donde hara la activacion de la noticia
  2. $id = $_GET['id'];
  3. $sentencia = "UPDATE tabla_noticias SET estado_noticia = 1 WHERE id_noticia = $id";

como dije antes espero que alguien me pueda corregir y ademas ahora como tendria que hacer la consulta para mostrar en pantalla las noticias activadas?

Última edición por tripoli; 08/06/2011 a las 16:51
  #15 (permalink)  
Antiguo 10/06/2011, 07:59
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

como tendria que hacer la consulta para mostrar en pantalla una vez he hecho el update de la noticia osea el ESTADO_NOTICIA=1 pero la consulta para mostrar en pantalla como seria?
  #16 (permalink)  
Antiguo 10/06/2011, 08:06
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: activar noticia con la funcion email()

Código PHP:
Ver original
  1. $sql="SELECT noticia FROM tabla_noticia WHERE estado_noticia=1";

Solo eso tripoli, adaptalo a tus necesidades y nos avisas, saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #17 (permalink)  
Antiguo 10/06/2011, 09:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

bUllan9ebrio gracias por contestar pero cuando le doy al enlace para activar la noticia me da este error Undefined index: id in C:\wamp\www\email-pruebas\activar_noticia.php on line 2. y claro todavia tengo que probar mostrar resultados en pantalla
Código PHP:
Ver original
  1. $id = $_GET['id'];
  2.  $sentencia = "UPDATE tabla_noticia SET activar_noticia = 1 WHERE id = $id";
  3.  $conexion=mysql_connect("localhost","root","");
  4.          mysql_select_db("db",$conexion);
  5.          if (mysql_query($sentencia,$conexion)){
  6.             echo'Su noticia fue publicada con exito';
  7.           }else{
  8.             echo 'hubo un error y no se pudo publicar su noticia';
  9.          }
el enlace de activacion que envio por correo creo que lo puse mal ya que no le puse el identificador de la noticia el autoincremente lo hice asin:

http://localhost/email-pruebas/activar_noticia.php

si el campo se que identifica la noticia se llama id_noticia como tendria que hacerlo?



alguna ayuda?

Última edición por tripoli; 10/06/2011 a las 10:12
  #18 (permalink)  
Antiguo 10/06/2011, 11:42
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: activar noticia con la funcion email()

No es lo mejor pero algo asi :

Código PHP:
Ver original
  1. http://localhost/email-pruebas/activar_noticia.php?id=<?php echo $id; ?>
  2. //debieses enviarlo asi
  3. //para que llegue a tu correo esto
  4. http://localhost/email-pruebas/activar_noticia.php?id=1

Cosa de pinchar el link y activarlo, y lo recibirias por $_GET['id']; pero podrias encriptar el id por que , que pasa si el usuario empieza a modificar ese id??? se activarian las demas noticias
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #19 (permalink)  
Antiguo 12/06/2011, 06:45
 
Fecha de Ingreso: mayo-2011
Mensajes: 187
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: activar noticia con la funcion email()

bUllan9ebrio como tendria que encriptar el id? la verdad que no me sale ni sin encriptar bueno muestro codigo porsi alguien me quiere dar una explicacion para realizar el codigo correcto.
el campo identificador se llama id_noticia pero no se aplicarlo al correo que que envio con la aplicacion muestro codigo por si alguien me ayuda
Código PHP:
Ver original
  1. $ssql="INSERT INTO tabla_noticia(titulo,noticia,archivo)values ('".$_POST['titulo']."','".$_POST['noticia']."','".$_FILES['archivo']['name']."')";
  2. $conexion=mysql_connect("localhost","root","");
  3.          mysql_select_db("db",$conexion);
  4.          if (mysql_query($ssql,$conexion)){
  5.            
  6.       $destino=$_POST['email'];
  7.       $asunto='activacion de noticia';
  8.       $mensaje='clickea este enlace para activar tu noticia<br>
  9.     http://localhost/email-pruebas/activar_noticia.php';
  10.      if(mail($destino,$asunto,$mensaje)){
  11.  
  12.        echo 'tu noticia no esta activada debes abrir tu email para activarla';
  13.      }else{
  14.             echo 'No se pudo subir el anuncio hubo un error';
  15.             }
  16.  }
  17.          }
la verdad que tampoco me sale como tendria que hacer la activacion de la noticia en el script activar_noticia.php

Última edición por tripoli; 12/06/2011 a las 07:08

Etiquetas: email, funcion, noticia
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 07:22.