php很多方面适合新手Word下载.docx
《php很多方面适合新手Word下载.docx》由会员分享,可在线阅读,更多相关《php很多方面适合新手Word下载.docx(46页珍藏版)》请在冰豆网上搜索。
修改php.ini的SMTP=ip//ip是不带验证功能的smtp服务器(网上很难找到)
php发送邮件的最好解决方法是用socket直接发送到对方email服务器而不用转发服务器
【6】初装的mysql如果没有设置密码,应该使用
updatemysql.usersetpassword="
yourpassword"
whereuser="
root"
修改密码
【7】headeralreadysent
这个错误通常会在你使用HEADER的时候出现,他可能是几种原因:
1,你在使用HEADER前PRING或者ECHO了2.你当前文件前面有空行3.你可能INCLUDE了一个文件,该文件尾部有空行或者输出也会出现这种错误。
!
【8】更改php.ini后没有变化
重新启动webserver,比如IIS,Apache等等,然后才会应用最新的设置
【9】php在2003上面安装(ISAPI的安装方法恳请高手指教)
PHP4的php4isapi.dll好像和2003有些冲突,只能用CGI模式安装
步骤一,先下在一个安装程序,我是装的是:
php-4.2.3-installer.exe,你也可以去找最新的版本,在安装php-4.2.3-installer.exe之前保证你的IIS6.0启动了,并能够访问。
安装好以后,在默认网站-->
应用程序配置
步骤二:
点击web服务扩展-->
新建web服务扩展.
步骤三:
扩展名-->
php,然后添加
步骤四:
找到php.exe的路径添加上去。
步骤五:
确定就可以了!
步骤六:
选择php的服务扩展,然后点击允许。
【10】
有时候sql语句不起作用,对数据库操作失败
最简便的调试方法,echo那句sql,看看变量的值能得到不
【11】include和require的区别
两者没有太大的区别,如果要包含的文件不存在,include提示notice,然后继续执行下面的语句,require提示致命错误并且退出
据我测试,win32平台下它们都是先包含后执行,所以被包含文件里最好不要再有include或require语句,这样会造成目录混乱。
或许*nux下情况不同,暂时还没测试
如果一个文件不想被包含多次可以使用include_once或require_once##读取,写入文档数据
functionr($file_name){
$filenum=@fopen($file_name,"
r"
);
@flock($filenum,LOCK_SH);
$file_data=@fread($filenum,filesize($file_name));
@fclose($filenum);
return$file_data;
}
functionw($file_name,$data,$method="
w"
){
$filenum=@fopen($file_name,$method);
flock($filenum,LOCK_EX);
$file_data=fwrite($filenum,$data);
fclose($filenum);
【12】isset()和empty()的区别
两者都是测试变量用的
但是isset()是测试变量是否被赋值,而empty()是测试一个已经被赋值的变量是否为空
如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示
如果一个变量被赋空值,$foo="
或者$foo=0或者$foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。
要注销一个变量,可以用unset($foo)或者$foo=NULL
【13】mysql查询语句包含有关键字
php查询mysql的时候,有时候mysql表名或者列名会有关键字
这时候查询会有错误。
例如表名是order,查询时候会出错
简单的办法是sql语句里表名或者列名加上`[tab键上面]来加以区别
例如select*from`order`
【14】通过HTTP协议一次上传多个文件的方法
有两个思路,是同一个方法的两种实现。
具体程序还需自己去设计
1,在form中设置多个文件输入框,用数组命名他们的名字,如下:
<
formaction="
method=post>
inputtype=filename=usefile[]>
/form>
这样,在服务器端做以下测试
echo"
pre>
;
print_r($_FILES);
/pre>
1,在form中设置多个文件输入框,但名字不同,如下:
inputtype=filename=usefile_a>
inputtype=filename=usefile_b>
inputtype=filename=usefile_c>
在服务器端做同样测试:
PHP_登录_注册_用户_模块_PHP用户登录注册模块实现
简介摘要:
PHP用户登录模块实现项目包含的功能脚本:
login.php//登录reg.php//注册用户user_add.php//注册校验脚本user_login_check.php//登录校验脚本image.php//验证码图片生成脚本流程:
设计数据库:
包含用户uid,用户名,密码,昵
PHP用户[yonghu]登录[denglu]模块[mokuai]实现
项目[xiangmu]包含的功能脚本[jiaoben]:
login.php//登录[denglu]
reg.php//注册[zhuce]用户[yonghu]
user_add.php//注册[zhuce]校验[xiaoyan]脚本[jiaoben]
user_login_check.php//登录[denglu]校验[xiaoyan]脚本[jiaoben]
image.php//验证[yanzheng]码图片生成脚本[jiaoben]
流程:
设计数据[shuju]库[shujuku]:
包含用户[yonghu]uid,用户[yonghu]名[yonghuming],密码[mima],昵称,性别,邮箱,注册[zhuce]时间
sql语句[yuju]如下
createtableusers(uidbigint(20)notnullauto_incrementprimarykeyuniquekey,usernamevarchar(100)defaultnull,userpasswordvarchar(100)defaultnull,nicknamevarchar(100)defaultnull,sextinyint
(1)default0,emailvarchar(100)defaultnull,regtimetimestamp(14)default0);
注册[zhuce]模块[mokuai]:
reg.php填写注册[zhuce]信息[xinxi],通过js脚本[jiaoben]判断所填写信息[xinxi]是否合法
如果合法,那么提交[tijiao]表单,通过user_add.php进行用户[yonghu]的注册[zhuce]
user_add.php脚本[jiaoben]实现的功能如下:
判断输入[shuru]的信息[xinxi]是否合法,这个js可以实现,但是为了浏览[liulan]器[liulanqi]兼容这里用php再实现一遍js的功能
如果合法并且以前没有注册[zhuce]过,那么可以注册[zhuce],否则提示[tishi]错误[cuowu]信息[xinxi]
登录[denglu]模块[mokuai]:
login.php填写登录[denglu]信息[xinxi],js判断输入[shuru]信息[xinxi]是否合法
如果合法提交[tijiao]表单,通过user_login_check.php登录[denglu]
user_login_check.php实现功能如下:
判断输入[shuru]信息[xinxi]是否合法,与js功能相同
如果合法并且用户[yonghu]名[yonghuming]密码[mima]都对的话保存session变量[bianliang],允许用户[yonghu]登录[denglu]
验证[yanzheng]码模块[mokuai]:
防止恶意注册[zhuce]生成验证[yanzheng]码,生成的是png格式的5位数字[shuzi]验证[yanzheng]码
需要用到session变量[bianliang],服务器[fuwuqi]需要安装[anzhuang]gd库
具体注意事项:
1、javaScript脚本[jiaoben]
scriptlanguage="
javascript"
>
functionIsDigit(cCheck)
{
return(('
0'
=cCheck)&
(cCheck<
='
9'
));
}
functionIsAlpha(cCheck)
return((('
a'
z'
))||(('
A'
Z'
)));
functionIsValid()
varstruserName=reg.UserName.value;
for(nIndex=0;
nIndex<
struserName.length;
nIndex++)
cCheck=struserName.charAt(nIndex);
if(!
(IsDigit(cCheck)||IsAlpha(cCheck)))
returnfalse;
returntrue;
functionchkEmail(str)
returnstr.search(/[\w\-]{1,}@[\w\-]{1,}\.[\w\-]{1,}/)==0?
true:
false;
functiondocheck()///////////////Thisplacehasaveryimportantproblem.MFcan'
tdoaswoexpect!
if(reg.UserName.value=="
)
alert("
请填写用户[yonghu]名[yonghuming]"
elseif(!
IsValid())
用户[yonghu]名[yonghuming]只能使用数字[shuzi]和字母"
elseif(reg.UserPassword.value=="
请填写密码[mima]"
elseif(reg.UserPassword.value!
=reg.CUserPassword.value)
两次密码[mima]输入[shuru]不一样"
elseif(reg.NickName.value=="
请填写昵称"
elseif(reg.Email.value=="
请填写邮箱地址[dizhi]"
elseif(!
chkEmail(reg.Email.value))
请填写有效[youxiao]的邮箱地址[dizhi]!
elsereturntrue;
/script>
响应[xiangying]js脚本[jiaoben]的方法[fangfa]:
formname="
reg"
action="
user_login_check.php"
method="
post"
target="
_self"
onSubmit="
returndocheck()"
在提交[tijiao]表单时候响应[xiangying](有的浏览[liulan]器[liulanqi]在docheck()返回错误[cuowu]的时候任然继续提交[tijiao]表单,这就是为什么要在表单处理脚本[jiaoben]里任然继续使用php进行输入[shuru]信息[xinxi]再次验证[yanzheng]的原因)
登陆时候可以只验证[yanzheng]用户[yonghu]名[yonghuming]和密码[mima]
2、数据[shuju]库[shujuku]连接[lianjie][shujukulianjie]
$strSql="
$database_username="
$database_password="
ssklzs"
$database_name="
userlog"
$s_UserName=$_POST["
UserName"
];
$s_UserPassword=$_POST["
UserPassword"
select*fromuserswhereusernamelike'
.$s_UserName."
'
anduserpasswordlike'
.$s_UserPassword."
//$strSql="
insertintousers(username,userpassword,nickname,sex,email,regtime)values('
'
.$s_NickName."
.$s_Sex."
.$s_Email."
now())"
//now()当前系统[xitong]时间
//连接[lianjie]数据[shuju]库[shujuku]
$link=mysql_connect("
localhost"
$database_username,$database_password)ordie("
CouldnotconnectMySQL:
.mysql_error());
mysql_select_db($database_name,$link)ordie("
Cannotuseuserlog:
$result=mysql_query($strSql);
//sql执行[zhihang]完毕
if($row=mysql_fetch_object($result)){·
·
else{·
3、session变量[bianliang]设置[shezhi]
session是不同php脚本[jiaoben]间参数[canshu]进行传递的通道[tongdao]
session变量[bianliang]大致需要两个,一个用来保存验证[yanzheng]码,一个用来记录登录[denglu]的用户[yonghu]
一般情况[qingkuang]下php.ini文件[wenjian]的session.auto_start=0表示session没有自动开启,所以在使用session时候需要将此数值设为1
注意session变量[bianliang]的初始化[chushihua]和注销[zhuxiao]
4、返回按钮
echo("
inputtype='
button'
name='
btn'
value='
返回'
onClick='
window.history.go(-1)'
/>
PHP&
MySQL初级教程
制做插件前如果还不会PHP和MySQL就先看一看吧~
1.PHP简介
PHP是一种易于学习和使用的服务器端脚本语言。
只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。
本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。
我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。
PHP是能让你生成动态网页的工具之一。
PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。
PHP代表:
超文本预处理器(PHP:
HypertextPreprocessor)。
PHP是完全免费的,不用花钱,你可以从PHP官方站点()自由下载。
PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。
你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。
PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。
怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。
安装过程很简单。
1.1历史
三年前,RasmusLerdorf为了创建他的在线简历而创造了"
个人主页工具"
(PersonalHomePageTools)。
这是一种非常简单的语言。
其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。
在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。
PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。
AndyGutmans和ZeevSuraki是Zend的主要作者。
可以去Zend站点()了解更多。
PHP的应用在个人性质的web工程中增长显著。
根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。
1.2PHP的先进之处
应用PHP有许多好处。
当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。
但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!
或者A这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。
最起码我就没有感觉出来!
好了,让我们来看看PHP有那些优点:
-学习过程
我个人更喜欢PHP的非常简单的学习过程。
与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。
只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。
之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。
PHP的语法与C,Perl,ASP或者JSP。
对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。
相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。
你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。
由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。
-数据库连接
PHP可以编译成具有与许多数据库相连接的函数。
PHP与MySQL是现在绝佳的组合。
你还可以自己编写外围的函数取间接存取数据库。
通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。
PHPLIB就是最常用的可以提供一般事务需要的一系列基库。
-可扩展性
就像前面说的那样,PHP已经进入了一个高速发展的时期。
对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。
-面向对象编程
PHP提供了类和对象。
基于web的编程工作非常需要面向对象编程能力。
PHP支持构造器、提取类等。
-可伸缩性
传统上网页的交互作用是通过CGI来实现的。
CGI程序的伸缩性不很理想,因为它为每一个谠诵械腃GI程序开一个独立进程。
解决方法就是将经常用来编写