使用函式:md5()给你的密码加把锁

 更新时间:2016年11月25日 15:16  点击:1833

其实这是一个简单的小技巧

使用DW2004建立用户登陆功能后(Application/User Authentication/Log in user)

得到以下代码:
... ... ... ...
... ... ... ...

if (isset($_POST['username'])) {
$loginUsername=$_POST['username'];
$password=md5($_POST['password']);注重原句为:$password=$_POST['password'];
$MM_fldUserAuthorization = "adclass";
$MM_redirectLoginSuccess = "loginok.php";
$MM_redirectLoginFailed = "sorry.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_conn, $conn);

... ... ... ...
... ... ... ...


只要套上 md5() 就加密了,不信? 赶紧打开数据库看看吧...

从默默自己向别人问怎么学PHP开始,到后来不少人又来问默默怎么学PHP,不管默默是新手,还是老鸟,似乎总是感觉摸不出一条清楚的脉络来,不过,默默既然学会了PHP,那么我走的这条路或多或少的有一定借鉴性。

  PHP的背景恐怕就不用默默赘言了,我相信大家选择一种语言,并不是看它的背景和悠久历史,更重要的是看它的实用性,华而不实的语言哪怕是再辉煌的历史,也毕将步向没落,可喜的是PHP经受住了考验,也因此,它确实是一种值得学习的语言。

  默默一直是服从别人的经验长大的,也因此在前辈们的经验里让默默少走了许多的弯路,更快的步入了正规,在此向那些我至尽不知道其名字的前辈们道声谢谢,在默默的眼里,帮助不分大小,只要是帮助,总会让默默的心里暖融融的,我想,前辈们帮助我,并不是为了得到我的一句谢谢,更多的是出于一种责任感和对默默的期望,所以我想,只有学好PHP,才能对得起前辈们的汗水。

  正如我所说的,默默也终于感觉到了一种责任感,默默不知道自己的经验到底能帮助新手多少,但是默默明白,现在到了履行责任的时候了,我有必要把自己的经验告诉给所有希望学好PHP的人,只有这样才能让中国的PHP不断的进步,不断的发展,在世界上占据一席之地。

  默默学习PHP的这段期间,感觉国内的PHP环境越来越成熟,规范也在逐渐的健全,PHPCHINA的成立,标志着与官方直接挂钩的PHP机构在中国正式落户了,在此献上迟到的掌声!

好的,切入正题:
我想在讲述自己的学习方式前,对那些期望能从我的文章中获得有用信息的人说一句心里话:默默的文章不会对您的学习起到实质性的作用,您能否成功,还得靠自己的,坚持,坚持,再坚持,就是步入成功的不二法门。

  我先把我自己学习PHP的过程做一下概括:
(1)熟悉HTML/CSS/JS等网页基本元素,完成阶段可自行制作完整的网页,对元素属性达到熟悉程度
(2)理解动态语言的概念,运做机制,熟悉PHP语法
(3)学习如何将PHP与HTML结合起来完成简单动态页面
(4)接触MYSQL,开始设计数据库程序
(5)不断巩固,摸透大部分PHP常用函数,并可理解OOP,MYSQL优化,以及模板
(6)完成一个功能齐全的动态站点

  我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单,即使是小吃部的烧饼也不是一下子就会做成的。

  我先解释一下我的学习思路

  首先,理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要把握了HTML,才能为今后制作网站打下基础。

  在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。

  HTML中的任何元素都要亲自实践,只有明白了什么元素会起到什么效果之后,你才会记忆深刻,而一味的啃书,绝对是不行的,我想大部分新手之所以觉得概念难学,大部分是一个字“懒”,懒是阻止进步的最大敌人,所以克服掉懒的习惯,才能更快的学好一样东西。

  也许您在学习PHP的时候只想尽快的开发一个网站,也就会想我做网站,干嘛要学什么网页这些小儿科?不难看出,眼高手低的新手不在少数,这种思想无疑于建造空中楼阁,你不建地基,何来的房顶呢?

  OK,把握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。

  我假设你目前已经可以完成一个静态页面了,当然,做的好看难看是另外一说,默默的第一个网页也没好看到哪去,但是“孩子”再丑,咱们做“爹妈”的也不能嫌弃不是?这究竟是咱的成果。

  那么咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?究竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相希奇也就不足为奇了。

  对于PHP的理解是新手最难迈过的一道门槛,不过你应该感到幸运的是PHP已经最大极限的为了新手而努力了,假如你学过其他的语言,也许会觉得PHP的确相当的简单,但是假如你之前什么都没学过,那么阿弥陀佛,硬着头皮琢磨吧。

  书过三遍自然熟,这个简单的道理告诉我们,即使你理解不了PHP,但是也必须先跟它混个脸熟,看,一遍遍的看,看的同时一边琢磨,一边按照它所教的打代码,即使你搞不清楚那些代码到底是干嘛的,但是起码你应该找找感觉。

  在一段挣扎之后,聪明的你,显然已经逐渐的开悟了,慢慢的理解了编程的概念,那么祝贺你,你已经迈出了成功的第一步。

  搞清楚HTML和PHP的概念,那么PHP和HTML混合编程应该不成问题,在这期间,你完全可以让PHP给你算算 一加一等于几,然后在浏览器输出,不要觉得幼稚,这的确是跟阿波罗登月一样,你打的是一小段代码,但是对于你的编程之路,可是迈出了一大步啊!兴奋吧?但是不得不再给你泼点冷水,您还是菜鸟一个。

  兴奋一段时间就必须继续努力了,接下来就是学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。

一个发送E-MAIL的脚本也许是你能够在Web 站点上找到的最普通的脚本之一了,虽然它很简单,一个邮件脚本有时会令程序员非常沮丧.PHP中有一个叫做mail()的函数,它只需要知道接收方的地址和信件主体就可以发送邮件,但是要让mail()按你的意思运行你还需要解决一些棘手的问题.

要使mail()能够运行,你必须有一个SMTP服务器以便PHP能够连接上去.不管这个服务器对邮件程序多么重要,大多数人对它如何运转没有一星半点的概念.在本教程中,我们将揭示SMTP的秘密并解决一些使用PHP发送邮件的常见问题.而本文中的另一些主题将包括循环遍历一个地址列表的方法以及同时以文本和HTML格式向接收者发送一个邮件的方法.

SMTP是简单邮件传输协议(Simple Mail Transfer Protocol)的缩写,而一个SMTP服务器是一台运行这种协议并发出邮件的计算机.运行这种协议实际上指的是运行诸如Sendmail和Qmail的程序--假如你使用的是一台非Windows计算机的话.在Windows平台上,作为Windows NT Service Pack一部分或是内建于Windows 2000内部的SMTP服务程序就是典型的这种程序.

我并不是说SMTP软件包就只有那些,但是它们是最普通的.假如你的Web站点使用了互联网服务提供者的主机软件包(Internet Service Provider's virtual hosting package)的一部分,那么SMTP服务程序就应该已经在这台计算机上安装了.假如你是一台位于ISP或是室内的计算机的系统治理员,那么你很有可能已经在这台计算机上安装了某种SMTP软件,用来处理从Web服务器发送邮件的过程.

但是,假如你是一个个人用户并只有一个开发用的Web服务程序运行在你的个人电脑上,你可能没有在自己的机器上运行SMTP软件.下面是一个非常简单但是准确的拇指定律:假如你是一个Windows用户而从没有看见SMTP服务器这样的字眼,那么你就没有运行这个程序.假如你确实没有,那么你有两种选择:安装,配置,和维护一个SMTP服务程序(假如你不知道那是怎么一回事的话就不推荐你使用这种方法)或是使用一个现存的SMTP服务器.
"假如一个服务器现在没有运行的话,我又怎么使用它呢?"你可能要问.假如你的计算机是通过拨号连接(或是DSL或电缆)连到互联网的话,你可以使用你ISP的外发邮件服务器.例如,假如你开发用的 计算机是一个Windows98的系统并使用56kbps modem通过EarthLink连接到互联网,那么你就可以使用mail.earthlink.net作为你的SMTP服务器.不论你对你的外发邮件服务器使用什么样的邮件客户端(Eudora, Outlook, Netscape Mail等等),它们都将和你的PHP代码使用你的SMTP服务器的过程一样.技巧就是使PHP知道一点点事实.

在php.ini治理配置文件里,有几个条目需要被设置以便mail()函数能够正常运行.在改变它们以前,搞清楚它们都是做什么用的.你可以使用phpinfo()函数通过创建一个文件来显示系统当前的配置情况,这个文件包括:

<? phpinfo() ?>

保存这个文件,将它放置到你的Web服务程序的文件根目录,然后通过你的浏览器访问它.你应该可以看到一个被美丽的格式化了的信息,显示你的配置情况.你要查看的条目如下:

SMTP
sendmail_from
sendmail_path
假如你没有使用windows,那么sendmail_path指令就是你唯一要担心的东西.假如你正在使用Windows,你就需要看看最后两个指令.

假如你使用的是Linux或是一个Unix变种,sendmail_path看起来应该象这样:

sendmail_path = /usr/sbin/sendmail

或者假如你使用Qmail:

sendmail_path = /var/qmail/bin/sendmail

在这条指令里,你还可以设置配置参数来指明队列缓冲选项或是显示的设置Return-Path头,如下所示:

sendmail_path = /usr/sbin/sendmail -t -fyou@yourdomain.com

作为一个非Windows用户,这就是你要做的一切了.假如你使用的是Windows,你有更多的事情要做.你还需要看一看SMTP和sendmail_from的值.不要被sendmail_from指令名字中的sendmail弄迷糊了.虽然你没有在Windows上使用名叫Sendmail的程序,但那只是指令的名字.不要被它吓到了.

在你的phpinfo()显示的结果里,看看SMTP和sendmail_from的缺省值--它们要么是空白,要么包含了胡乱的值.你应该把它们改成有意义的值.

假如你决心在这台电脑上运行一个SMTP服务程序,你在php.ini文件中的条目就应该如下:

SMTP = localhost

但是,假如你要使用你ISP(在这个例子中是EarthLink)的外发邮件服务器,那么php.ini中的邮件看起来应该如下:

SMTP = mail.earthlink.net

你也可以使用IP地址而不是域名,因为计算机不区分这两种条目.

第二条配置指令是sendmail_from,它应该被设置成From头中的电子邮件地址.它可以在脚本里被修改但是通常作为缺省值使用.下面就是这个配置指令的示例youraddress@yourdomain.com指的是你自己的邮件地址.

sendmail_from = youraddress@yourdomain.com

在做了这些配置上的改动以后,重启Web服务程序然后使用phpinfo()函数来验证这些修改.在这些工作完成以后,你就可以用PHP来发送电子邮件了.

mail()函数是非常简单的:只有五个参数,而其中的两个是可选的.这些参数是:

接收方地址
主题
信件内容
其它文件信息头(可选)
SMTP服务程序的其它配置选项(可选)

附加的头参数控制了诸如CC, BCC, Reply-To之类的邮件功能,或者其它遵循SMTP协议的功能.在这个例子中,我只使用From 和 Reply-To信息头.

一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。那么它们在操作和性能上存在什么差别,通常使用那种方法比较好。

下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间:

测试平台:
CPU:P-M 725
内存:512M
硬盘:40G 5400转
OS:Windows XP SP2
WEB:apache 2.0.54 php5.0.4

测试代码:

<?php

$arr = array();
for($i = 0; $i < 50000; $i ){
$arr[] = $i*rand(1000,9999);
}

function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec (float)$sec);
}
######################################
$time_start = GetRunTime();

for($i = 0; $i < count($arr); $i ){
$str .= $arr[$i];
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;

echo 'Used time of for:'.round($time_used, 7).'(s)<br><br>';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start = GetRunTime();

while(list($key, $val) = each($arr)){
$str .= $val;
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;

echo 'Used time of while:'.round($time_used, 7).'(s)<br><br>';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start = GetRunTime();

foreach($arr as $key => $val){
$str .= $val;
}

$time_end = GetRunTime();
$time_used = $time_end - $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br><br>';
######################################

?>

测试结果:

将三次测试结果求平均值:
分别对应for、while、foreach
0.1311650
0.1666853
0.1237440


经过反复多次测试,结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。foreach比while大约快20% ~ 30%左右。随后再把数组下标增加到500000、5000000测试结果也一样。但从原理上来看,foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循环结构。

所以,在通常应用中我更喜欢用foreach形式,简单,而且效率高。在PHP5下, foreach还可以遍历类的属性。

有时候我们需要知道两个日期相差几天,例如计算文章从发布之日起到当前的日平均点击数等,下面的这个例子提供了一个很好的思路

<?PHP
$Date_1="2003-7-15";//格式也可以是:$Date_1="2003-6-25 23:29:14";
$Date_2="1982-10-1";
$Date_List_1=explode("-",$Date_1);
$Date_List_2=explode("-",$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
Echo "偶已经奋斗了 $Days 天";
?>

[!--infotagslink--]

相关文章

  • iPhone输错密码导致手机锁定怎么办 iPhone输错密码手机锁定解决方法

    如果反复输错屏幕密码,手机就会进入锁定模式,也就是永久停用状态,只能抹掉数据以解除锁定状态和清除锁屏密码...2022-09-14
  • 图解PHP使用Zend Guard 6.0加密方法教程

    有时为了网站安全和版权问题,会对自己写的php源码进行加密,在php加密技术上最常用的是zend公司的zend guard 加密软件,现在我们来图文讲解一下。 下面就简单说说如何...2016-11-25
  • PHP操作MSSQL存储过程修改用户密码

    存储过程在数据库的应用中我们用到的非常的多了,下面我们来看一篇关于PHP操作MSSQL存储过程修改用户密码的例子,具体的如下所示。 mssql2008 存储过程 下面可以直接...2016-11-25
  • ps怎么使用HSL面板

    ps软件是现在很多人都会使用到的,HSL面板在ps软件中又有着非常独特的作用。这次文章就给大家介绍下ps怎么使用HSL面板,还不知道使用方法的下面一起来看看。 &#8195;...2017-07-06
  • js检验密码强度(低中高)附图

    最近一直在做通行证项目,里面的注册模块中输入密码需要显示密码强度(低中高)。今天就把做的效果给大家分享下,代码没有网上搜索的那么复杂,能够满足一般的需求。 html 代码如下: 复制代码 代码如下: <!DOCTYPE HTML> <htm...2014-06-07
  • JavaScript仿支付宝密码输入框

    那么今天我就用JavaScript代码来实现这个效果吧,那么首先介绍一下整个的思路,首先我们先将确定输入密码的位数,我的需求是5位,那么就用一个div标签包住5个input标签...2016-01-02
  • Plesk控制面板新手使用手册总结

    许多的朋友对于Plesk控制面板应用不是非常的了解特别是英文版的Plesk控制面板,在这里小编整理了一些关于Plesk控制面板常用的使用方案整理,具体如下。 本文基于Linu...2016-10-10
  • 使用insertAfter()方法在现有元素后添加一个新元素

    复制代码 代码如下: //在现有元素后添加一个新元素 function insertAfter(newElement, targetElement){ var parent = targetElement.parentNode; if (parent.lastChild == targetElement){ parent.appendChild(newEl...2014-05-31
  • jQuery 1.9使用$.support替代$.browser的使用方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support 。 在更新的 2.0 版本中,将不再支持 IE 6/7/8。 以后,如果用户需要支持 IE 6/7/8,只能使用 jQuery 1.9。 如果要全面支持 IE,并混合...2014-05-31
  • C#注释的一些使用方法浅谈

    C#注释的一些使用方法浅谈,需要的朋友可以参考一下...2020-06-25
  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • 使用GruntJS构建Web程序之构建篇

    大概有如下步骤 新建项目Bejs 新建文件package.json 新建文件Gruntfile.js 命令行执行grunt任务 一、新建项目Bejs源码放在src下,该目录有两个js文件,selector.js和ajax.js。编译后代码放在dest,这个grunt会...2014-06-07
  • 如何使用php脚本给html中引用的js和css路径打上版本号

    在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css、js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候,浏览器就可以从浏览器的缓存中获取css、...2015-11-24
  • MySQL日志分析软件mysqlsla的安装和使用教程

    一、下载 mysqlsla [root@localhost tmp]# wget http://hackmysql.com/scripts/mysqlsla-2.03.tar.gz--19:45:45-- http://hackmysql.com/scripts/mysqlsla-2.03.tar.gzResolving hackmysql.com... 64.13.232.157Conn...2015-11-24
  • 安装和使用percona-toolkit来辅助操作MySQL的基本教程

    一、percona-toolkit简介 percona-toolkit是一组高级命令行工具的集合,用来执行各种通过手工执行非常复杂和麻烦的mysql和系统任务,这些任务包括: 检查master和slave数据的一致性 有效地对记录进行归档 查找重复的索...2015-11-24
  • 使用jquery修改表单的提交地址基本思路

    基本思路: 通过使用jquery选择器得到对应表单的jquery对象,然后使用attr方法修改对应的action 示例程序一: 默认情况下,该表单会提交到page_one.html 点击button之后,表单的提交地址就会修改为page_two.html 复制...2014-06-07
  • php语言中使用json的技巧及json的实现代码详解

    目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
  • 基于JavaScript实现表单密码的隐藏和显示出来

    为了网站的安全性,很多朋友都把密码设的比较复杂,但是如何密码不能明显示,不知道输的是对是错,为了安全起见可以把密码显示的,那么基于js代码如何实现的呢?下面通过本文给大家介绍JavaScript实现表单密码的隐藏和显示,需要的朋友参考下...2016-03-03
  • PHP实现无限级分类(不使用递归)

    无限级分类在开发中经常使用,例如:部门结构、文章分类。无限级分类的难点在于“输出”和“查询”,例如 将文章分类输出为<ul>列表形式; 查找分类A下面所有分类包含的文章。1.实现原理 几种常见的实现方法,各有利弊。其中...2015-10-23
  • php类的使用实例教程

    php类的使用实例教程 <?php /** * Class program for yinghua05-2 * designer :songsong */ class Template { var $tpl_vars; var $tpl_path; var $_deb...2016-11-25