mysql自带订阅功能_为博客提供订阅功能
原标题:为博客提供订阅功能
以“为博客增加订阅功能”为例,来介绍用ajax提交表单的方法。
前端html5+js
仅用于ExASIC最新文章通知,方便及时阅读。
订阅
退订
提交
button的类型是button,而不是submit,这样我们就可以调用自定义js函数submit_email()向后台提交email。
function submit_email(){
var email = document.getElementById("exampleInputEmail1").value;
var type_r1 = document.getElementById("inlineRadio1");
var type_r2 = document.getElementById("inlineRadio2");
var type;
if(type_r1.checked){
type = type_r1.value;
}else{
type = type_r2.value;
}
//check email rule
if(email.length > 150){
alert("请输入正确的邮箱格式");
return;
}
pat = /^[a-zA-Z0-9._\-]{3,100}@[a-zA-Z0-9._\-]+\.(com|cn|net|top|fun|org|tech|ren|dev|jp|us|au)$/;
if(pat.test(email) == false){
alert("请输入正确的邮箱格式");
return;
}
//ajax: ie7+, firefox, chrome, opera, safari (not support ie5, ie6)
var xmlhttp;
if(window.){
xmlhttp = new ();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
alert(xmlhttp.responseText); //display success or failure
}
}
xmlhttp.open("POST", "subscribe.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var arg = "email=" + email + "&type=" + type;
xmlhttp.send(arg);
} //end of if(window...
}
在submit_email()函数开头,先用getElementById().value获取用户的email和type。再用js正则来检查email是否符合电子邮箱的命名规则。然后用ajax方式向后台提交POST请求,把email和type发送给php服务器。最后按照php服务器的回复xmlhttp.responseText来显示订阅的结果。
效果如下:
后端php+mysql
$email = $_POST['email'];
$type = $_POST['type'];
//
//connect to database
//
$mysql_svr_name = "mysql_server";
$mysql_db_name = "db_name";
$mysql_db_user = "user";
$mysql_db_pwd = "pwd";
$conn = mysql_connect($mysql_svr_name, $mysql_db_user, $mysql_db_pwd);
if(!$conn){ die(mysql_error()); }
mysql_select_db($mysql_db_name, $conn);
mysql_query('set names utf8');
//query
$sql = "SELECT count(*) as total FROM `email` WHERE `email` = '" . $email . "' LIMIT 1";
$res_tmp = mysql_query($sql, $conn);
$res_row = mysql_fetch_array($res_tmp);
$count = $res_row['total'];
if($count == 0 && $type == 2){
echo "您要退订电子邮箱不存在";
}else if($count == 1 && $type == 1){
echo "您已经成功订阅ExASIC";
}else if($count == 0 && $type == 1){ //add
$sql = "INSERT INTO `email` (`email`) VALUES ('";
$sql .= $email;
$sql .= "')";
$res_tmp = mysql_query($sql, $conn);
if(mysql_affected_rows() == 1){
echo "恭喜,您已成功订阅ExASIC";
}else{
echo "内部错误,请稍后再试";
}
}else if($count == 1 && $type == 2){ //delete
$sql = "DELETE FROM `email` WHERE `email` = '" . $email . "'";
$res_tmp = mysql_query($sql, $conn);
if(mysql_affected_rows() == 1){
echo "您已成功退订ExASIC";
}else{
echo "内部错误,请稍后再试";
}
}else{
echo "内部错误,请稍后再试";
}
?>
先从$_POST[""]中用获得email和type,再查询数据库中是否已经存在记录。再根据实际情况进行增删操作。最后echo "msg",返回给前端。
总结
本文介绍了ajax的使用方法,并详细介绍了为博客增加订阅功能的实现过程。下面画出了代码的示意图,方便理解ajax。
责任编辑:
mysql自带订阅功能_为博客提供订阅功能相关推荐
- jsp mysql 博客系统_个人博客系统的设计与实现(JSP,MySQL)
个人博客系统的设计与实现(JSP,MySQL)(任务书,开题报告,中期检查表,文献综述,外文翻译,毕业论文15000字,程序代码,MySQL数据库) 本系统利用JSP开发技术,以MySQL作为后台数据 ...
- Diango博客--20.开启 Django 博客的 RSS 功能
1.Rss简介 博客提供 RSS 订阅应该是标配,这样读者就可以通过一些聚合阅读工具订阅你的博客,时时查看是否有文章更新,而不必每次都跳转到博客上来查看.现在我们就来为博客添加 RSS 订阅功能. R ...
- CSDN产品公告第3期:博客数据统计功能上线,OFFER大挑战等你来!
各位小主,咱们又见面了!在前两期的公告中,CSDN产品组已感受到大家对我们深沉的爱,再此谢谢大家的褒贬.服务好每一位用户,是我们一直不变的初心. 在过去一周,开发在产品的鞭策下,又带来了哪些功能呢? ...
- hexo next主题为博客添加分享功能
今天心血来潮,决定给博客添加分享功能,百度上首先是找到了使用shareSDK的分享功能,最后在实践的过程中发现它添加时步骤比较多,添加完成后效果比较丑(就是一个长条的浅蓝色按钮),而且点击后想要退出分 ...
- 作为程序员我给csdn博客添加打赏功能
作为程序员我给csdn博客添加打赏功能 前几天在专家微信群里提到c币太多,无法消费的问题,就提出了博客打赏功能. 目前我们csdn的c币除了兑换论坛积分,下载积分,c币商城,csdn学院外几乎没有可消 ...
- 为 hexo 博客添加本地搜索功能
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:我的大学到研究生自学 Java 之路,过程艰辛,不放弃,保持热情,最终发现我是这样拿到大厂 offer 的!个人 ...
- 基于python的个人博客系统的设计开题报告_个人博客设计实现开题报告
现在的毕业设计的开题报告是很难写吗,以个人博客设计为课题的开题报告怎么写?看下文是yjbys小编搜集整理的关于开题报告的相关资料,希望对大家有所帮助! 1本课题所涉及的问题在国内(外)的研究现状综述: ...
- 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间 如何控制Yahoo! Slurp蜘蛛的抓取频度 2009年08月13日 星期四 5:56 上周末豆瓣的阿北给我电话:最近你们雅 ...
- Javascript实现博客全文搜索功能
摘要 搜索是一个在购物网站.论文检索网站.社交网站等相关网站中被广泛使用的功能.为了不借助后台代码实现本人博客的搜索功能,本文使用Javascript代码对其进行简单实现.该搜索功能的亮点包括:使用纯 ...
最新文章
- UE5和Blender中的完整场景环境创建学习教程
- php判断数组是否存在字符串中,php判断数组元素中是否存在某个字符串的方法
- 你离高级工程师有多远
- 华为数据中心服务器数量,IDC 与华为联合发布《全闪存数据中心白皮书》,目前已有多个应用...
- python中二进制文件_Python学习基础篇 -6: Python中的文件操作
- 定义交货类型的装运点确定规则
- 我的学习之路_第二章_接口/多态
- HTML的target属性中_blank、_self、_parent、_top含义
- 状压dp之二之三 炮兵阵地/玉米田 By cellur925
- hrbp 牵着鼻子走_防止被下属牵着鼻子走的四个经典方法,学会了,下属就好管了...
- 关于ubuntu拒绝被ssh访问
- [转载]基于TFS实践敏捷-工作项跟踪
- 计算不确定度的小工具
- wine装通达信_linux下安装虚拟机,完美在linux系统下运行通达信软件
- 持久层框架JPA与Mybatis该如何选型
- PHP直播源码,直播系统源代码功能有哪些?
- 计算机函数公式 加法,excel怎样使用加法函数公式
- android 自定义控件实现3D画廊效果
- SAR影像辐射定标工程化实现之COSMO-Skymod
- python输入税前工资打印税后工资-python-计算个人所得税
热门文章
- Android学习之反编译工具的使用
- Linux学习笔记(四)之用户登录
- MyBatis多表查询(一对一,一对多,多对多)
- ProtoBuf3语法指南(Protocol Buffers)_上
- element-ui表单校验
- asp.net mvc 包含了一个 html 的助手类在哪里,c# - 在App_Code中使用@HTML的ASP.NET MVC Razor Helper - 堆栈内存溢出...
- C# 错误 175: 具有固定名称“System.Data.SQLite.EF6”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载
- 南通大学计算机学院何鹏,南通大学第一次自主评教授,加油!再评多点。
- d - 数据结构实验之查找四:二分查找_【数据结构】资料
- 前台setcookie之后从后台取出来_后台设置Cookie值,前台进行获取