PHP自练项目之发送短信内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>多用户留言系统--写短信</title>
<?php
require ROOT_PATH.'includes/title.inc.php';
?>
<script type="text/javascript" src="js/code.js"></script>
<script type="text/javascript" src="js/message.js"></script>
</head>
<body> <div id="message">
<h3>写短信</h3>
<form method="post" action="?action=write">
<input type="hidden" name="touser" value="<?php echo $_html['touser']?>" />
<dl>
<dd><input type="text" value="TO:<?php echo $_html['touser']?>" class="text" /></dd>
<dd><textarea name="content"></textarea></dd>
<dd>验 证 码:<input type="text" name="code" class="text yzm" />
<img src="code.php" id="code" />
<input type="submit" class="submit" value="发送短信" /></dd>
</dl>
</form>
</div>
</body>
</html>
模版页面中的内容
<?php
session_start();
//定义个常量,用来授权调用includes里面的文件
define('IN_TG',true);
//定义个常量,用来指定本页的内容
define('SCRIPT','message');
//引入公共文件
require dirname(__FILE__).'/includes/common.inc.php';
//判断是否登录了
if (!isset($_COOKIE['username'])) {
_alert_close('请先登录!');
}
//写短信
if($_GET['action']=='write'){
//为了防止恶意注册,跨站攻击
_check_code($_POST['code'],$_SESSION['code']);
if(!!$_rows = _fetch_array("SELECT tg_uniqid FROM tg_user WHERE tg_username='{$_COOKIE['username']}' LIMIT 1")){
//唯一标示符
_uniqid($_rows['tg_uniqid'], $_COOKIE['uniqid']);
include ROOT_PATH.'includes/register.func.php';
//接收
$_clean=array();
$_clean['touser']=$_POST['touser'];
$_clean['fromuser']=$_COOKIE['username'];
$_clean['content']=_check_content($_POST['content']);
//print_r($_clean);
$_clean=_mysql_string($_clean);
//写入数据库
_query("INSERT INTO tg_message(
tg_touser,
tg_fromuser,
tg_content,
tg_date
)
VALUES
(
'{$_clean['touser']}',
'{$_clean['fromuser']}',
'{$_clean['content']}',
NOW()
)
)");
//新增成功
if(_affected_rows()==1){
_close();
_session_destroy();
_alert_back("短信发送成功");
}else{
_close();
_session_destroy();
_alert_back("短信发送失败");
}
}else{
_alert_close("非法登录");
} }
//获取数据
if (isset($_GET['id'])) {
if (!!$_rows = _fetch_array("SELECT tg_username FROM tg_user WHERE tg_id='{$_GET['id']}' LIMIT 1")) {
$_html = array();
$_html['touser'] = $_rows['tg_username'];
$_html = _html($_html);
} else {
_alert_close('不存在此用户!');
}
} else {
_alert_close('非法操作!');
}
?>
显示的相关操作(数据库自己去创建)
相关修改的参数,在全局环境变量中(globals)和register.fnc.php
function _mysql_string($_string) {
if(!GPC){
//return mysql_real_escape_string($_string);
if(is_array($_string)){
foreach ($_string as $_key=>$_value){
$_string[$_key]=_mysql_string($_value);
}
}else{
return mysql_real_escape_string($_string);
}
}
return $_string;
} function _check_content($_string){
if(mb_strlen($_string,'Utf-8')<10||mb_strlen($_string,'Utf-8')>200){
_alert_back("短信内容不得小于10位,或大于200个数");
}
return $_string;
}
相关的JS
window.onload=function(){
code();
var fm=document.getElementsByTagName('form')[0];
fm.onsubmit=function(){
//验证码验证
if(fm.code.value.length!=4){
alert("验证码必须是4位");
fm.code.focus();
return false;
}
if(fm.content.value.length<10||fm.content.value.length>200){
alert("短信内容不得小于10,大于200!");
fm.content.focus();
return false;
}
};
};
PHP自练项目之发送短信内容的更多相关文章
- java + maven 实现发送短信验证码功能
如何使用java + maven的项目环境发送短信验证码,本文使用的是榛子云短信 的接口. 1. 安装sdk 下载地址: http://smsow.zhenzikj.com/doc/sdk.html ...
- quartz-job实现实时或定时发送短信任务
存放调度器(Job 和 Trigger)信息的xml配置文件: 这是某个指定的要实现的定时任务: <!-- 每天给项目经理发送短信避免短信服务挂了 定时每天08:30执行--> <j ...
- Linux系统中调用短信猫发送短信(笔记)
1, 拷贝底层串口依赖的librxtxSerial.so到JDK安装路径cp librxtxSerial.so /usr/java/{0}/jre/lib/{1} # {0}: JDK的基础目录,例如 ...
- 微信小程序如何发送短信验证码,无需搭建服务器
自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzi ...
- 移动MAS短信平台发送短信
MAS短信平台发送短信分为两种方式 参考文档下载 一.sdk调用 using mas.ecloud.sdkclient; using System; namespace 短信发送 { class Pr ...
- java发送短信验证码的功能实现
总结一下发送短信验证码的功能实现 (题外话:LZ是在腾讯云买的第三方(山东鼎信)短信服务平台的接口,1块钱20次的套餐来练手,哈哈,给他们打个广告,有需要的可以去购买哈,下面是购买链接短信服务平台购买 ...
- WPF MVVM下做发送短信小按钮
最近做一个项目,因为涉及到注册,因此需要发送短信,一般发送短信都有一个倒计时的小按钮,因此,就做了一个,在此做个记录. 一.发送消息 没有调用公司的短信平台,只是模拟前台生成一串数字,将此串数字输出一 ...
- android: 接收和发送短信
8.2 接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持.每个 A ...
- IOS程序开发中-跳转到 发送短信界面 实现发短信
前言:我发现我标题取的不好,谁帮我取个承接上下文的标题?评论一下,我改 项目需求:在程序开发中,我们需要在某个程序里面发送一些短信验证(不是接收短信验证,关于短信验证,传送门:http://www.c ...
随机推荐
- IC封装
1.QFN •QFN—Quad Flat No-lead Package 四方无引脚扁平封装 2.SOIC •SOIC—Small Outline IC 小外形IC封装 3.TSSOP •TSSOP— ...
- axis1客户端调用webservice的通用代码
1.axis1 作为web service 客户端时,调用web service 服务端的通用代码 String url = "http://www.webxml.com.cn/webser ...
- [置顶] C#扩展方法 扩你所需
通过前面的学习,了解到:使用扩展方法,可以向现有类型“添加”方法.本文将使用扩展方法来对系统类型,自定义类型及接口进行方法扩展,一睹扩展方法的风采. 1.使用扩展方法来扩展系统类型 String是c# ...
- css学习笔记四
广州天气变冷了,css学习笔记还是要总结. 总结: 1:几米页面静态页面主要是一列结构头部banner图,mainbody部分放文字内容和图书图片,底部是页面的版权信息 2:腾讯软件中心静态页面制作( ...
- 非线性规划问题的matlab求解
函数:[x, fval] = fmincon(FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON) 返回的x:是一个向量——在取得目标函数最小时各个xi的取值: 返回的f ...
- #pragma的用法
在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作.#pragma指令对每个编译器给出了一个方法,在保持与C和 C++语言完全 ...
- 2014-07-23 利用ASP.NET自带控件实现单文件上传与下载
效果图 上传文件页面: 下载文件页面: 1.母版页site.Master <%@ Master Language="C#" AutoEventWireup="tr ...
- Bootstrap 源码解析
前言 Bootstrap 是个CSS库,简单,高效.很多都可以忘记了再去网站查.但是有一些核心的东西需要弄懂.个人认为弄懂了这些应该就算是会了.源码看一波. 栅格系统 所谓的栅格系统其实就是一种布局方 ...
- 新建一个类并绑定一个activity
1.新建一个类(.java 文件),继承Android.app.Activity 2.新建一个activity 文件 3.重写onCreate 方法,设置绑定activity 文件 @Override ...
- Servlet url-pattern优先级
完全匹配>目录匹配>扩展名匹配