Я пытаюсь внедрить форму подписки на рассылку на моем сайте. Поскольку я довольно тупой в коде, я пытаюсь интегрировать следующий код в мой сайт, который я нашел здесь: http://www.designerfreesolutions.com/resources/ajaxsignup_php/index.php
HTML код:
<form onsubmit="return signup(this);return false;" method="post" name="subform" id="subform" action="optIn.php">
<div><span style="FONT-FAMILY: Arial; FONT-SIZE: 12pt; font-weight:bold;">Subscribe to our newsletter</span></div>
<div style="margin-top:20px">
<div>
<label style="display: inline-block;width:135px">Email:</label>
<input type="text" id="email" name="email" value="">
</div>
<div>
<label style="display: inline-block;width:135px">Name:</label>
<input type="text" name="name" id="name" value="">
</div>
<div>
<div style="display:inline-block;width:135px;"> </div>
<input type="submit" id="submit" name="submit" value="Sign up">
</div>
<div style="width:100%"><span id="Error" style="color:red;display:none;"></span></div>
<div id="myResponse" style="DISPLAY:none;"></div>
<div id="loading" style="display:none;"><img src="wait.gif" alt=""></div>
</div>
</form>
Я загрузил файл optIn.php так же, как и при загрузке, и изменил информацию о сервере / хосте, базе данных, имени пользователя, пароле:
<?php
//ini_set('display_errors', 0);
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
$email = trim(htmlspecialchars($_REQUEST["email"]));
$name = trim(htmlspecialchars($_REQUEST["name"]));
$pfileName = "mails.txt";
$MyFile = fopen($pfileName, "a");
$nline="\"".$email."\"" ."," ."\"".$name."\"" ."\r\n";
fwrite($MyFile, $nline);
fclose($MyFile);
die;
// *************** THE DATABASE CODE
//Attention: you may want to use stronger function here to
//purify the requested parameters and protect against injections.
//Example: $email = clean_this($_REQUEST["email"]);
$email = trim(htmlspecialchars($_REQUEST["email"]));
$name = trim(htmlspecialchars($_REQUEST["name"]));
// Lets connect to mySQL ==> replace with your own values for Server/Host, database, username, password
$pdbHost = "localhost";
$pdbUserName = "root";
$pdbPassword = "root";
$pdbName ="newsletters";
// You can use a different table (and fields for name and email).
// But change the table name and field names in the SQL queries below.
// connect to mySQL
$conlink = mysql_connect($pdbHost, $pdbUserName, $pdbPassword);
if(!$conlink) {die('<span class=errormessage>Unable to connect to '.$pdbHost.'</span><br>');}
mysql_select_db($pdbName, $conlink);
// Check if subscriber exists already
$SQL= "select email from mysubscribers where email='".$email."'";
$result = mysql_query($SQL);
if(!$result) {die('Problem in SQL: '.$SQL);} //just ccking if there was a problem with your query
if (mysql_num_rows($result)==0) { // it's a new email=> add it
$SQL2= "INSERT into mysubscribers (name, email) VALUES ('".$name."', '".$email."')";
mysql_query($SQL2);
}
mysql_close($conlink);
//Sample script for the table:mysubscribers in the database:newsletters
/*
CREATE TABLE `mysubscribers` (
`idEmail` mediumint(9) NOT NULL auto_increment,
`email` varchar(150) default NULL,
`name` varchar(150) default NULL,
PRIMARY KEY (`idEmail`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
*/
?>
Теперь, что бы я ни пытался, данные не вставляются в мою базу данных MySQL. Я создал таблицы, как указано в коде …
Кто-нибудь знает, что я делаю не так?
Более того, я хотел бы отправить подписчику письмо с подтверждением .. Если у кого-нибудь есть какой-нибудь код для меня, это было бы здорово …
Примечание: я не профессиональный программист .. Я пытаюсь помочь себе с некоторым доступным кодом, который я могу найти в Интернете: s
Спасибо за вашу помощь!
Анна
Код выхода на умереть команда. Вы должны удалить эти строки, если вы хотите хранить данные в MySQL
$email = trim(htmlspecialchars($_REQUEST["email"]));
$name = trim(htmlspecialchars($_REQUEST["name"]));
$pfileName = "mails.txt";
$MyFile = fopen($pfileName, "a");
$nline="\"".$email."\"" ."," ."\"".$name."\"" ."\r\n";
fwrite($MyFile, $nline);
fclose($MyFile);
die;
Для отправки электронной почты, вы должны попробовать некоторые библиотеки php, такие как PHPMailer
Других решений пока нет …