Foros del Web » Programando para Internet » PHP »

cancelar suscripcion por correo

Estas en el tema de cancelar suscripcion por correo en el foro de PHP en Foros del Web. tengo este codigo que me sirve para las personas que quieran suscribirse a la pagina ingrese su correo y se me guarda en un bd ...
  #1 (permalink)  
Antiguo 14/04/2014, 11:10
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
cancelar suscripcion por correo

tengo este codigo que me sirve para las personas que quieran suscribirse a la pagina ingrese su correo y se me guarda en un bd

Código PHP:
<?php
//print_r($_POST);
require_once("../conexion/conexion.php");
$correo=$_POST['suscor']; 
//session_start();

$query = @mysql_query('SELECT * FROM boletin WHERE correo="'.$_POST["suscor"].'"');
if(
$existe = @mysql_fetch_object($query))
{
    echo 
"<script type=''>
    alert('El correo ya esta registrado');
    window.location='../index.php';
</script>"
;
return 
false;
}

$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers "From: [email protected]";
$mailsend mail($correo"Gracias por suscribirse""Si por algun motivo, no deseas seguir
recibiendo informacion, haz clic en
el siguiente enlace: "
,$headers); 
?>

<?php 
if ($mailsend){
    
?>
    <script>
        alert('<?php echo "Gracias por suscribirse"?>');
        location.href='../index.php';
    </script>
    <?php
$sql
="insert into boletin
values
('$con','"
.$_POST["susnom"]."','".$_POST["suscor"]."')";
$res=mysql_query($sql,$con) or die ("error en la query: " mysql_error());
?>
 <?php
}else {
    
?>
    <script>
        alert('<?php echo "Su datos no fueron enviados, intente nuevamente"?>');
        location.href='../index.php'
    </script>
    <?php
}
?>
pero el problema si no quieren recibir mas notificaciones de la pagina no tengo la idea concreta para crearlo haber si me pueden dar un ayuda saludos
  #2 (permalink)  
Antiguo 14/04/2014, 11:49
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 10
Respuesta: cancelar suscripcion por correo

En cada boletin que envias por correo electronico poner al final un enlace tipo

Si no desea recibir mas correos pinche aquí: www.tupagina.com/[email protected]&id=id_ de_correo_en_bd

Y ese enlace que haga una sentencia mysql que borre la entradadonde coincide tanto correo como id, así no teiens a nadie que te vaya borrando correos, luego mostrar un html en el que se confirma que el correo fue eliminado de las bases de datos.

Es una idea..
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #3 (permalink)  
Antiguo 14/04/2014, 11:58
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

voy a ponerla en practica ami ;) gracias
  #4 (permalink)  
Antiguo 14/04/2014, 12:22
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

Cita:
Iniciado por Qazser Ver Mensaje
En cada boletin que envias por correo electronico poner al final un enlace tipo

Si no desea recibir mas correos pinche aquí: http://www.tupagina.com/desuscribir....e_correo_en_bd

Y ese enlace que haga una sentencia mysql que borre la entradadonde coincide tanto correo como id, así no teiens a nadie que te vaya borrando correos, luego mostrar un html en el que se confirma que el correo fue eliminado de las bases de datos.

Es una idea..
mira esto amigo
Código PHP:
$res=mysql_query("SELECT * FROM boletin WHERE correo='$suscor'"); 
$row mysql_fetch_row($res); 
$headers "MIME-Version: 1.0\r\n"
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers "From: [email protected]";
$mailsend mail($correo"Gracias por suscribirse""Si por algun motivo, no deseas seguir
recibiendo informacion, haz clic en
el siguiente enlace: http://mipagina.cl/suscribirse/delete.php?correo=$correo&id_bo=26 "
,$headers); 
ya muy bien me borra el correo de la base de datos pero como vez le puse id_bo=26 para probar y me funciono como lo haria para rescatar ese id_bo?? sin que tener poner el numero
  #5 (permalink)  
Antiguo 14/04/2014, 12:41
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 10
Respuesta: cancelar suscripcion por correo

Se supone que no se podrá rescatar posteriormente =/ si alguien quiere suscribirse de nuevo se suele crear una entrada nueva y ya, el id se pierde y se sigue contando.....

Sin embargo, si lo que te importa es guardar el ID a pesar de que el usuario se ha desuscrito, te propongo la siguiente idea:

una columna activado en la base de datos, cuando creas la columna pon valor por defecto='1'

así no tienes que ponerlo en el insert del programa, pero cuando envias los correos debes enviarlo solo a correos con activado='1'.

ahora en el borrar suscripcion, enves de hacer un delete, haces un update actualizando activado a 0.

Asi nunca borras un correo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #6 (permalink)  
Antiguo 14/04/2014, 12:49
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

pero me borro el correo del id id_bo=26 por que yo se lo puse pero
quiero rescartar el id automaticamente para borrarlo
  #7 (permalink)  
Antiguo 14/04/2014, 13:53
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 10
Respuesta: cancelar suscripcion por correo

No entiendo lo que me quieres decir, lo siento =/
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #8 (permalink)  
Antiguo 14/04/2014, 14:00
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

necesito rescatar el id para poderse borrar automaticamente

el siguiente enlace: http://mipagina.cl/suscribirse/delete.php?correo=$correo&id_bo= ",$headers);

en id_bo me falta rescatar el id
  #9 (permalink)  
Antiguo 14/04/2014, 14:12
Avatar de h2swider  
Fecha de Ingreso: julio-2007
Ubicación: Ciudad de Buenos Aires
Mensajes: 932
Antigüedad: 17 años, 4 meses
Puntos: 194
Respuesta: cancelar suscripcion por correo

Creo que lo que quiere es poner el id en el mail y no sabe como hacerlo...

algo como

Código PHP:
Ver original
  1. $mailsend = mail($correo, "Gracias por suscribirse", "Si por algun motivo, no deseas seguir
  2. recibiendo informacion, haz clic en
  3. el siguiente enlace: http://mipagina.cl/suscribirse/delete.php?correo=$correo&id_bo={$row['id_bo]}",$headers);
__________________
Codifica siempre como si la persona que finalmente mantedra tu código sea un psicópata violento que sabe donde vives
  #10 (permalink)  
Antiguo 14/04/2014, 14:19
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 10
Respuesta: cancelar suscripcion por correo

Creo que ya te entiendo...No sabes como conseguir el id para ponerlo como variable en el enlace de borrado? es eso?

En este caso, en el php en el que tu creas y envias los mensajes masivos, cuando seleccionas cada correo a quien se lo vas a llevar incluye el id en el select, entonces lo tienes en el array y puedes meterlo en el enlace mediante variable junto al correo.

CREO que es lo que me quieres decir

EDIT: @h2swider se me adelantó mientras redactaba lo mio, eso es lo que quise decir, usa su ejemplo
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos
  #11 (permalink)  
Antiguo 14/04/2014, 14:30
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

eso mismo xd ya voy a poner a prueba entonces para rescatar el id
  #12 (permalink)  
Antiguo 14/04/2014, 14:36
 
Fecha de Ingreso: diciembre-2013
Mensajes: 81
Antigüedad: 11 años
Puntos: 1
Respuesta: cancelar suscripcion por correo

Código PHP:
Ver original
  1. <?php
  2. //print_r($_POST);
  3. require_once("../conexion/conexion.php");
  4. $correo=$_POST['suscor'];
  5. $id_bo = $correo;
  6. //session_start();
  7.  
  8. $query = @mysql_query('SELECT * FROM boletin WHERE correo="'.$_POST["suscor"].'"');
  9. if($existe = @mysql_fetch_object($query))
  10. {
  11.     echo "<script type=''>
  12.     alert('El correo ya esta registrado');
  13.     window.location='../index.php';
  14. </script>";
  15. return false;
  16. }
  17. $consulta=mysql_query('SELECT * FROM boletin WHERE correo="'.$_POST["suscor"].'"');
  18. while($row=mysql_fetch_array($consulta)){  
  19. $id_bo=$row['id_bo'];
  20. }
  21. $headers = "MIME-Version: 1.0\r\n";
  22. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  23. $headers = "From: [email protected]";
  24. $mailsend = mail($correo, "Gracias por suscribirse", "Si por algun motivo, no deseas seguir
  25. recibiendo informacion, haz clic en
  26. el siguiente enlace: http://pagina.cl/suscribirse/delete.php?correo=$correo&id_bo={$row['id_bo']}",$headers);
  27. ?>
  28.  
  29. <?php
  30. if ($mailsend){
  31.     ?>
  32.     <script>
  33.         alert('<?php echo "Gracias por suscribirse"; ?>');
  34.         location.href='../index.php';
  35.     </script>
  36.     <?php
  37. $sql="insert into boletin
  38. values
  39. ('$con','".$_POST["susnom"]."','".$_POST["suscor"]."')";
  40. $res=mysql_query($sql,$con) or die ("error en la query: " . mysql_error());
  41. ?>
  42.  <?php
  43. }else {
  44.     ?>
  45.     <script>
  46.         alert('<?php echo "Su datos no fueron enviados, intente nuevamente"; ?>');
  47.         location.href='../index.php'
  48.     </script>
  49.     <?php
  50. }
  51. ?>

al correo solo me llega esto

http://pagina.cl/suscribirse/delete....ail.com&id_bo=


en el id_bo= (no sale nada )
  #13 (permalink)  
Antiguo 14/04/2014, 15:16
 
Fecha de Ingreso: abril-2014
Ubicación: Canarias!
Mensajes: 150
Antigüedad: 10 años, 8 meses
Puntos: 10
Respuesta: cancelar suscripcion por correo

Unos consejos,

-no hagas 2 veces la misma query
-NO uses @, ignorar una advertencia nunca es algo bueno si quieres ser un programador, intenta hacer un código limpio sin errores y no necesitas arrobas para ocultar fallos.
-Quita mysql error cuando no tienes un eror en la query, si algo surge no lo debe ver el usuario final.
-No uses mysql_fetch_array porque te da 2 array con lo mismo, con mysql_fetch_assoc te devuelve 1 solo array, mucho mas ligero
-Las funciones mysql son obsoletas y no son recomendadas, investiga y usa mysqli.

Con respecto a esto:
Código PHP:
$consulta=mysql_query('SELECT * FROM boletin WHERE correo="'.$_POST["suscor"].'"');
while(
$row=mysql_fetch_array($consulta)){  
$id_bo=$row['id_bo'];

Solo vas a esperar 1 fila de esta Query,porque un correo no puede estar dentro varias veces...entonces puede someterse bajo un microoptimizacion para quedar así:
Código PHP:
$consulta=mysql_query('SELECT * FROM boletin WHERE correo="'.$_POST["suscor"].'" LIMIT 1');
$row=mysql_fetch_array($consulta)
$id_bo=$row['id_bo']; 
Finalmente prueba reemplazar esto
Código PHP:
el siguiente enlacehttp://pagina.cl/suscribirse/delete.php?correo=$correo&id_bo={$row['id_bo']}",$headers); 
por esto
Código PHP:
el siguiente enlacehttp://pagina.cl/suscribirse/delete.php?correo=$correo&id_bo=$id_bo",$headers); 
__________________
Pautas php:
No usar libreria mysql, usa mysqli; Separar siempre los controladores de la vista; Procedual es feo, ama los objetos

Etiquetas: cancelar, correo, html, mysql, select, sql, suscripcion
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 23:31.