Estoy implementando un newsletter en una web y me encuentro con el siguiente problema:
El usuario introduce su nombre, email y ciudad para la suscripción en el siguiente formulario:
Código PHP:
$emailmanager = '[email protected]';
$scriptUrl = 'http://www.xxx.com/NL-confirm.php';
$urlok = 'NL-ok.htm';
$urlko = 'NL-ko.htm';
error_reporting(0);
set_magic_quotes_runtime (0);
if (get_magic_quotes_gpc()) {
foreach($_POST as $k=>$v)
$_POST[$k] = stripslashes($v);
foreach($_COOKIE as $k=>$v)
$_COOKIE[$k] = stripslashes($v);
}
$msg = '';
foreach($_POST as $k=>$v) {
if (strtolower($k) != "submit" && trim($v) != '')
$msg .= "$k:$v\n";
}
$id = md5($msg);
setcookie("sb$id",$msg,time()+86400,'','',0);
$email = trim($_POST['email_newsletter']);
$nombre = urlencode($_POST['nombre_newsletter']);
$ciudad = urlencode($_POST['ciudad_newsletter']);
$body = "¡Muchas gracias por subscribirse a mi canal!
Con el fin de confirmar su solicitud, por favor haga click
en el siguiente enlace o pege el link en su navegador
(Utilice el mismo navegador que utilizó para suscribirse)
$scriptUrl?email=$email&nombre=$nombre&ciudad=$ciudad&id=$id
Si usted no ha solicitado subscribirse a esta web,
por favor ignore este mensaje.
";
$Ok = ereg("^([a-zA-Z0-9_\.-]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email);
if ($Ok) {
mail($email,'Por vafor, confirme su subscripción',$body,'From: '.$emailmanager);
Header("Location: $urlok");
} else {
Header("Location: $urlko");
}
Código PHP:
$emailmanager = '[email protected]';
$urlok = 'confirm-ok.htm';
$urlko = 'confirm-ko.htm';
error_reporting(0);
set_magic_quotes_runtime (0);
if (get_magic_quotes_gpc()) {
foreach($_POST as $k=>$v)
$_POST[$k] = stripslashes($v);
foreach($_COOKIE as $k=>$v)
$_COOKIE[$k] = stripslashes($v);
}
$msg = $_COOKIE['sb'.$_GET['id']];
$email = trim($_GET['email']);
$Ok = ereg("^([a-zA-Z0-9_\.-]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email);
$nombre = $_GET['nombre'];
$ciudad = $_GET['ciudad'];
$headers = 'From: ' . $email . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: text/plain; charset=iso-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
if ($Ok && ($msg != '')) {
mail($emailmanager,'Subscribe',$msg,$headers);
Header("Location: $urlok");
} else {
Header("Location: $urlko");
}
El caso es que me interesa que en vez de enviarse los datos al email, se haga un insert en la tabla newsletter_tabla... claro, tendría que hacerlo automáticamente... pero no logro saber cómo hacerlo.
He puesto el insert en éste último archivo quedando así:
Código PHP:
$urlok = 'confirm-ok.htm';
$urlko = 'confirm-ko.htm';
error_reporting(0);
set_magic_quotes_runtime (0);
if (get_magic_quotes_gpc()) {
foreach($_POST as $k=>$v)
$_POST[$k] = stripslashes($v);
foreach($_COOKIE as $k=>$v)
$_COOKIE[$k] = stripslashes($v);
}
$msg = $_COOKIE['sb'.$_GET['id']];
$email = trim($_GET['email']);
$Ok = ereg("^([a-zA-Z0-9_\.-]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", $email);
$nombre = $_GET['nombre'];
$ciudad = $_GET['ciudad'];
$headers = 'From: ' . $email . "\n";
$headers .= 'MIME-Version: 1.0' ."\n";
$headers .= 'Content-Type: text/plain; charset=iso-8859-1' ."\n";
$headers .= 'Content-Transfer-Encoding: 8bit'. "\n\n";
if ($Ok && ($msg != '')) {
mysql_query("INSERT INTO newsletter_tabla (nombre_newsletter, email_newsletter, ciudad_newsletter, fecha_newsletter) VALUES ($nombre, $email, $ciudad, NOW())");
Header("Location: $urlok");
} else {
Header("Location: $urlko");
}
Alguna ayuda por favor???
Gracias