php利用session 用户登陆教程
if($_POST[submit]){
$username= str_replace(" ","",$_POST[username]);
$sql="select * from user_list where `username` = '$username'";
$query=mysql教程_query($sql);
$us=is_array($row=mysql_fetch_array($query));
$ps教程= $us ? md5($_POST[password].ALL_PS)== $row[password] : FALSE;
$pw=$ps?$_SESSION["code"]==$_POST[code]:FALSE;
if($ps){
$_SESSION[uid]=$row[uid];
$_SESSION[user_shell]=md5($row[username].$row[password].ALL_PS);
$_SESSION[times]=mktime();
if($pw){
echo "登陆成功";
}
else{
echo "验证码错误";
session_destroy();
}
}else{
echo "密码或者用户名错误";
session_destroy();
}
}
?>
<form action="" method="post">
用户名:<input type="text" name="username" style="height:23px" /><br>
密 码:<input type="password" name="password" style="height:23px" /><br>
验证码:<input type="code" name="code" size="10" style="height:23px" />
<img src="imgcode.php">
<br><br>
<input type="submit" name="submit" value="登陆"/>
</form>
数据库教程结构
--
-- 表的结构 `user_list`
--
CREATE TABLE `user_list` (
`uid` int(11) NOT NULL auto_increment,
`m_id` varchar(5) NOT NULL,
`username` varchar(25) NOT NULL,
`password` varchar(64) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 AUTO_INCREMENT=11 ;
--
-- 导出表中的数据 `user_list`
--
INSERT INTO `user_list` (`uid`, `m_id`, `username`, `password`) VALUES
(9, '1', 'admin', '75cf565ad38d0f837c43363e402b1a00'),
(10, '2', 'admin2', '75cf565ad38d0f837c43363e402b1a00');
$data = array();
$data[]= array("01" ,"02", "18" , "29" , "31" , "32");
$data[]= array("02" ,"09", "11" , "22" , "24" , "27");
$data[]= array("07" ,"16", "26" , "27" , "29" , "31");
$data[]=array("04", "05", "07", "10", "13", "25");
$data[]=array("02", "04", "05", "08", "19", "22");
$data[]=array("03", "04", "15", "25", "26", "30");
$data[]=array("01", "03", "06", "12", "16", "32");
$data[]=array("01", "05", "14", www.111cn.net, "17", "22");
// 判断表格中3个以上的连续
function checkAll($sourceArr2D) {
$count = sizeof($sourceArr2D);
for($i=0; $i<$count; $i++){
check_h($sourceArr2D[$i], $i);//找寻水平方向
if($i>0) {
check_v($sourceArr2D, $i);// 找寻竖直方向
check_l($sourceArr2D, $i);// 找寻/方向
check_r($sourceArr2D, $i);// 找寻方向
}
}
}
// 判断水平方向
$h = array();// 保存水平方向上的搜寻结果
function check_h($arr, $rownum) {
//sort($arr, SORT_NUMERIC);
global $h;
$flag = false;
for($i=2; $i<6; $i++){
if( $arr[$i-2]==$arr[$i]-2 ){ // 因为数组内数字不重复且有序故可取巧
if(!$flag) {
$h[$rownum] = array($arr[$i-2], $arr[$i-1], $arr[$i]);
$flag = true;
}else{
array_push($h[$rownum], $arr[$i]);
}
}
}
}
// 判断竖直方向
$v = array();// 保存竖直方向上的搜寻结果
function check_v($sourceArr2D, $rownum) {
global $v;
for($i=0; $i<6; $i++){
$val = $sourceArr2D[$rownum][$i];
if( in_array($rownum.'.'.$val, $v) ){
continue;
}
if( in_array($val,$sourceArr2D[$rownum-1]) && in_array($val,$sourceArr2D[$rownum+1]) ){
array_push($v, ($rownum-1).'.'.$val, $rownum.'.'.$val, ($rownum+1).'.'.$val);
$tmp = $rownum + 2;
while( ($tmp < sizeof($sourceArr2D)) && in_array($val, $sourceArr2D[$tmp]) ){
array_push($v, $tmp.'.'.$val);
$tmp++;
}
}
}
}
// 判断/方向
$l = array();// 保存/方向上的搜寻结果
function check_l() {
}
// 判断方向
$r = array();// 保存方向上的搜寻结果
function check_r() {
}
// 结束定义,开始应用
checkAll($data);
echo '<br /><br />水平方向上的找寻:';
print_r($h);
echo '<br /><br />竖直方向上的找寻:';
print_r($v);
echo '<br /><br />/方向上的找寻:';
print_r($l);
echo '<br /><br />方向上的找寻:';
print_r($r);
x,是要处理的浮点型数据
prec,保存几位小数
提示和注释
注释:PHP 默认不能正确处理类似 "12,300.2" 的字符串。
注释:prec 参数是在 PHP 4 中被引入的。。
*/
//实例浮点数的截断函数,返回值仍为浮点数。
$foo = round(3.4); // $foo == 3.0
$foo = round(3.5); // $foo == 4.0
$foo = round(3.6); // $foo == 4.0
$foo = round(3.6, 0); // equivalent with above
$foo = round(1.95583, 2); // $foo == 1.96
$foo = round(1241757, -3); // $foo == 1242000
//round实例二
echo(round(0.68));
echo(round(0.40));
echo(round(0.3));
echo(round(-3.30));
echo(round(-4.90));
/*
1
0
0
-3
-5
*/
//返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值
<?php教程
$arr=array(
0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
);
?>
如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;
后来在php手册中发现,count函数还有第二个参数,解释如下:
count函数有两个参数:
0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,
所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:
<?php
if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )
{
.....
} else {
.....
}
?>
你可以使用这样的代码来测试该函数:
<?php
$arr=array(
0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),
1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')
);
echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo "<br/>";
echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>
好了,到此为止,已经解决php中获取二维或多维数组的第一维长度的问题!
方法一
<?php教程
echo strtotime('last Monday');
echo '<br />';
echo strtotime('next Sunday');
?>
方法二
<?
02 function getMonSun(){
03 $curTime=time();
04
05 $curWeekday = date('w');
06
07 //为0是 就是 星期七
08 $curWeekday = $curWeekday?$curWeekday:7;
09
10
11 $curMon = $curTime - ($curWeekday-1)*86400;
12 $curSun = $curTime + (7 - $curWeekday)*86400;
13
14 $cur['Mon'] = $curMon;
15 $cur['Sun'] = $curSun;
16
17 return $cur;
18 }
19 $cur = getMonSun();
20
21 echo date('Y-m-d',$cur['Mon']);
22 echo "rn";
23 echo date('Y-m-d',$cur['Sun']);
24 ?>
方法三
<?
02 function getMonSun(){
03 $curTime=time();
04
05 //求出当前是星期几:
06 $curWeekday = date('w');
07
08 //如果是周一则减上7*86400周二减上6*86400,依此类推得到周一的时间戳:
09 switch ($curWeekday) {
10 case 0:
11 $curMon = $curTime-7*86400;
12 $curSun = $curTime;
13 break;
14 case 1:
15 $curMon = $curTime;
16 $curSun = $curTime+6*86400;
17 break;
18 case 2:
19 $curMon = $curTime-1*86400;
20 $curSun = $curTime+5*86400;
21 break;
22 case 3:
23 $curMon = $curTime-2*86400;
24 $curSun = $curTime+4*86400;
25 break;
26 case 4:
27 $curMon = $curTime-3*86400;
28 $curSun = $curTime+3*86400;
29 break;
30 case 5:
31 $curMon = $curTime-4*86400;
32 $curSun = $curTime+2*86400;
33 break;
34 case 6:
35 $curMon = $curTime-5*86400;
36 $curSun = $curTime+1*86400;
37 break;
38 }
39 $cur['Mon'] = $curMon;
40 $cur['Sun'] = $curSun;
41
42 return $cur;
43 }
44 $cur = getMonSun();
45 echo date('Y-m-d',$cur['Mon']);
46 echo "rn";
47 echo date('Y-m-d',$cur['Sun']);
48 ?>
相关文章
PHP session_start()很慢问题分析与解决办法
本文章来给各位同学介绍一下关于PHP session_start()很慢问题分析与解决办法,希望碰到此问题的同学可进入参考。 最近在做东西的时候发现一个问题 有一个接口挂...2016-11-25- php 获取用户IP与IE信息程序 function onlineip() { global $_SERVER; if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP');...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
- 当来访者浏览器语言是中文就进入中文版面,国外的用户默认浏览器不是中文的就跳转英文页面。 <?php $lan = substr( $HTTP_ACCEPT_LANGUAGE,0,5); if ($lan == "zh-cn") print("<meta http-equiv='refresh' c...2015-11-08
PHP分布式框架如何使用Memcache同步SESSION教程
本教程主要讲解PHP项目如何用实现memcache分布式,配置使用memcache存储session数据,以及memcache的SESSION数据如何同步。 至于Memcache的安装配置,我们就不讲了,以前...2016-11-25- 【问题描述】:同一用户在同一时间多次登录如果不能检测出来,是危险的。因为,你无法知道是否有其他用户在登录你的账户。如何禁止同一用户多次登录呢? 【解决方案】 (1) 每次登录,身份认证成功后,重新产生一个session_id。 s...2015-11-24
- 这篇文章主要介绍了C#中的session用法 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 一个用Javascript检测用户输入密码强度的效果代码,以下代码主要是从以下四个方面检测用户输入的密码的强度的,有兴趣的朋友可以自己添加或修改成自己想要的形式! 1. 如果输入的密码位数少于5位,那么就判定为弱。 2. 如果...2015-10-23
Python3使用Selenium获取session和token方法详解
这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下...2021-02-17- 这是注册程序是一款当用户输入完用户名是,就会自动去数据库中查询用户要注册的用户名是否己经被注册了,如果是返回提示否则提示可以注册。 conn.php文件 代...2016-11-25
- 这篇文章主要给大家介绍了关于微信小程序用户授权最佳实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-08
- session和cookie是网站浏览中较为常见的两个概念,也是比较难以辨析的两个概念,但它们在点击流及基于用户浏览行为的网站分析中却相当关键。基于网上一些文章和资料的参阅,及作者个人的应用体会,对这两个概念做一个简单的阐述...2013-09-11
- session在php中是一个非常重要的东西,像我们用户登录一般都使用到session这个东西,相对于cookie来说session 要安全很多,同时我们购物车经常使用session来做临时的记录保存哦。使用session保存页面登录信息1、数据库连接...2015-10-21
- cookie 的用途之一是存储用户在特定网站上的密码和 id。另外,也用于存储起始页的首选项。在提供个人化查看的网站上,将要求阁下的网络浏览器利用阁下计算机硬驱上的少量...2016-11-25
- 前段时间发布了一个微信小程序的简单登录,但遇到一个问题,怎么确保用户每个页面都已经登陆了呢,这篇文章主要给大家介绍了关于微信小程序如何保证每个页面都已经登陆的相关资料,需要的朋友可以参考下...2021-11-05
- 这篇文章主要介绍了Vue使用axios引起的后台session不同操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
- 知识归纳因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。 如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排 基本观点越精确的匹配越优先...2015-11-08
- PHP的session功能,一直为许多的初学者为难。就连有些老手,有时都被搞得莫名其妙。本文,将这些问题,做一个简单的汇总,以便大家查阅。 1. 错误提示 引用 代...2016-11-25
- 这篇文章主要介绍了sqlserver添加sa用户和密码的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-05-07
- 要设置php生存有效时间我们可以利用session_set_cookie_params函数或修改php.ini文件哦,下面小编来介绍一下。 第一种方法:session_set_cookie_params 函数原型 voi...2016-11-25