从ASP转到PHP,请大家多多关照,散分 phpx.com先来这里下手册。呵呵。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下本PHP手册看看我从ASP转PHP花了一周时间 思维,用法基本相同,就是感觉语法有点变化,有asp基础上手php是很快的! 恭喜!let's PHP it ! 哈,我也是ASP的,现在也来学学PHP,昨天开始学的!希望能快点转过来。 dream_php:手册是参考的自己先照些资料写写小段代码反复推敲一下然后自己写一个东东来试手,最有效是写留言本 我也才开始学php不久,现在在研究discuz4.0 PHP學了會也不知道怎麼學了簡單點的東西是可以寫出來,但看到高手們說PHP不用類就不要學PHP,現在還不知道怎麼用PHP好 语言相通,PHP还有手册好支撑更重要的是算法和数据结构要明白,这才是程序的精髓 嘿嘿 同路同路 www.phpe.net 可以帮不少忙 hehe ,导师要用PHP做项目,我以前也是ASP的 php手册,看了前面的语法部分就可以自己写写看了函数库可以在使用中熟悉 我也是这样,以前是ASP的,毕业设计是PHP,只能硬着头皮去做手册帮了我不少忙,基本是一样的,只是一些函数不同而已,老是要查 唉,眼看ASP的心情一天比一天差,哈哈哈哈,我也转, 一些ASP转PHP的日记,希望对你有帮助2006.01.12开始后台编写,对于一个刚接触PHP和mysql语法的我,实在是有点困难,12日早上看了一个早上的语法,写了一个数据连接,接下来,下午,开始对mysql进行设计,还有开始做首页对数据库进行连接。遇到一个很大的麻烦就是mysql语句,一个mysql与SQL不同的地方差点很大的地方Select n_id,n_title,n_time from news where n_class='1' order by n_id limit 8而在SQL是用Select top 8 n_id,n_title,n_time from news where n_class='1' order by n_id最后找了好多资料才找到这个语句。晚上,对站点的后台进行编写开始登陆进行编写写了好多ASP,知道获取一个浏览器的值要用request,居然在PHP里不知道要怎么用,用了我好多时间去找,最后终于找到了一个$_GET[str]夜已深,听着音乐提神,周围是多无点声音,虽然有点困,但很值得。终于写好了一个后台登陆界面,在我平时以我写ASP经验,这个代码肯定很不安全,也许我可以现在做到这样已经比较好了,希望以后可以再来修补。12日总结,虽然没有写出一个成样的系统,但至少熟悉了PHP的语言还有一些语法,本来老师的要求是要做出一个整合的系统,但我想能有这些基础做下面的东西也不再难。万事开头难!实现动态main.phpadmin/index.php2006.01.13开始做新闻发布系统,第一个难点在于发布照片上,由于PHP有整合图片上转的程序,但操作起来却比较难,出错的机率也太多, 如图片的名称,还有图片的类型,以ASP开发经验,很多是可以骗过类型,上传木马,不知道PHP是否有这个漏洞。终于把session实现了,原来要用session_start();开启session。电脑突然重启,找不到硬盘,我以为硬盘挂掉了,好怕,以为我这两天做的东西都没了,结果我把数据线重新插好,居然起来了。终于写PHP有点上手了,今天下午做了好几个栏目,还差完善一个发布的系统,就整个新闻发布系统就算告一段落,心有点闷,出去走走,散散心。2006.01.14继续完善新闻系统,整个发布系统就只有一个照片发布,就可以完善了。今天做到了一个计时,timer,在ASP中就是两个时间差,但是PHP里好像是其中的一个类,但要调用这个类出来却不知道要怎么做,好像一个INC的一个文件。找了几个资料,却还是不知道要怎么做,先放在一边,过段时间可能会明白。2006.01.17在宿舍住得不是很开心,以前高中的同学叫我搬过来广东工业大学住几天,他包车,过年一起回家,于是搬过来广工住。过来了,可是由于没有网可以上,网上的资料也查不到,只能单单靠我之前下载了一本PHP手册,一边看着手册一边写,今天主要从图片上传开始做,终于在手册里看到一段关于上传程序的代码,我想应该可以利用得到,下面是那段代码: 您可以如下建立一个特殊的表单来支持文件上传: 例子 18-1. 文件上传表单<form enctype="multipart/form-data" action="_URL_" method="POST"><input type="hidden" name="MAX_FILE_SIZE" value="30000">Send this file: <input name="userfile" type="file"><input type="submit" value="Send File"></form>以上范例中的“_URL_”应该替换成指向一个 PHP 文件的真实 URL。MAX_FILE_SIZE 隐藏域(单位为字节)必须先于文件输入域,其值为接收文件的最大尺寸。同时,要保证您的文件上传表单中要有 enctype="multipart/form-data",否则文件上传将不能工作。 <?php// 在 4.1.0 以前的 PHP 中,需要用 $HTTP_POST_FILES 代替 $_FILES。// 在 4.0.3 以前的 PHP 中,需要用 copy() 和 is_uploaded_file() 来代替 move_uploaded_file()。$uploaddir = '/var/www/uploads/';$uploadfile = $uploaddir. $_FILES['userfile']['name'];print "<pre>";if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) { print "File is valid, and was successfully uploaded. Here's some more debugging info:\n"; print_r($_FILES);} else { print "Possible file upload attack! Here's some debugging info:\n"; print_r($_FILES);}print "</pre>";?> 终于写了一个上午,把上传程序写好了,不过还是少了一个扩展,因为我只做了一个图片上传,如果其它类型还是要修改,一个好的程序是可以重新应用的。以后做到软件下载的时候再来修改。2006.01.20这几天在广工玩了几天,昨天给其他成员汇报了一下进度,把程序也发给了他们,昨天上了一下网,顺便也找了一下资料,找了一个MD5加密,还有一个验证码,还有数据分页,今天起来试,结果没有一个可运行的,然后找了又找,终于发现原来MD5加密,PHP里有内定函数,直接拿出来用就行了,不像ASP,什么都要自已写。开始着手写分页的代码。MYSQL有一个好处就是select * from page order by id limit start,end可以从第几条记录读取和结束,这个使分页代码写起来简单很多。比较难的就是分页的数字问题,基本上写了我一个上午,假如有101条数据,每一页有10条数据,共有11页,然面用共数来除以10,得出10.1,intval($num/$limit)取整之后再加一,所以有一个问题,如果是100第数据,那么就刚好是10页,如果加一,那么就会出错。($num/$limit)==intval($num/$limit)?intval($num/$limit):(intval($num/$limit)+1)判断出是否是整数,如果不是那么就加一,如果是那么就不加一。2006.01.23终于回家里了,今天把所有的页面的分页都做好了。2006.01.25开始做新闻编辑功能,把发布的页面改成编辑功能就可以了,数据从数据库里读如来,然后value值等于那个数据就可以了。但是在那里从DVBBS分离出来的编辑有点问题,最后在改一下javascript就可以了。2006.01.26今天做一个数据删除,在checkbox上有点问题,因为发送过去的数据里PHP的$_POST只能接收一个数据,所在不能做到批量删除,所以就要用到数组。比如chk[],再读出数组有几个值,再一个一个的删除。2006.01.27今天开始做会员注册,在以往做ASP的经验,注册这一块要花很大的功夫,比如用户名验证,是否有'或/等等非法字符,因为我也不大懂PHP语法,一直在找有没有比较简洁和高效的方法,最后自已写了一个好笨的方法,看下面代码<?phpfunction strcode($str){ $l = strlen( $str ); for( $i=0; $i<$l; $i++ ) { if( substr( $str, $i, 1 ) == "'" ) { echo "非法字符"; exit(0); } } return( $str );}$str1="'";$str2=strcode($str1);echo $str2?>这就是一个检验是否有'的代码,实际上这个代码很不高效,移殖性也不好,还是想想有没有其它比较好的方法。2006.02.17又回到学校了,开始写代码了今天对以前的代码进行一下优化<?phpfunction strcode($str){ $patten = "[^'\"]+$"; $result = ereg($patten, $str); if(!$result){ echo"出现非法字符"; }}?>这个就是对上面那个function进行优化,用了正则表达式,这样可以大大的加快了程的空间和时间的复杂度,写了几个小时,以前没有正式的写过正则表达式,这次一边看一边写,算是知道了一点点了。2006.02.18今天基本把注册模块做好了,写了好多验证,大多数是正则表达式,验证用户是否输入不非法字符,还有对一些数据进行验证,可能我以前做ASP习惯了,如果是其他动态网页初学者可能不会做到这一点,就随便可以让用户注册就行了,反正也不会报错。但我觉得如果不做好这一点可能网页不够安全。 if(empty($name)) { $msg=$msg."<font color=red>名字</font>不能为空<br>"; $flag=false; } else { if (!strcode($name)) { $msg=$msg."<font color=red>名字</font>出现非法字符,不能出现<font color=red>'\"%&\$</font>等字符<br>"; $flag=false; } if (strlen($name)>16) { $msg=$msg."<font color=red>名字</font>不能超过16个字符(8个中文)<br>"; $flag=false; } }这就是一段对名字进行验证的代码2006.02.17~2006.02.22这几天真的时间很紧,一直写程序,没有时间来整理日记,今天就对这段日子进行总结一下。 base64乱码 请教图片上文字水印的位置问题 我有个框架能不能使target="_blank"失效 一个分页问题,请高手指教 php 怎么才能读取CPU的ID和内存的ID 不要提phpsysinfo,那个我看不懂.最好能直接出ID值来 php中如何用js做全选?? session怎么样用啊 PHP书籍怎么就这么少? ->等同于什么? 关于PHP文件转第变量的问题,很严重的问题 PHP我用ODBC连MSSQL ODBC是怎么读数据库? PHP可以实现ASP中Server.Transfer方法吗?
我从ASP转PHP花了一周时间
希望能快点转过来。
手册是参考的
自己先照些资料写写小段代码
反复推敲一下
然后自己写一个东东来试手,最有效是写留言本
更重要的是算法和数据结构要明白,这才是程序的精髓
函数库可以在使用中熟悉
手册帮了我不少忙,基本是一样的,只是一些函数不同而已,老是要查
2006.01.12
开始后台编写,对于一个刚接触PHP和mysql语法的我,实在是有点困难,12日早上看了一个早上的语法,写了一个数据连接,接下来,下午,开始对mysql进行设计,还有开始做首页对数据库进行连接。
遇到一个很大的麻烦就是mysql语句,一个mysql与SQL不同的地方差点很大的地方
Select n_id,n_title,n_time from news where n_class='1' order by n_id limit 8
而在SQL是用Select top 8 n_id,n_title,n_time from news where n_class='1' order by n_id
最后找了好多资料才找到这个语句。
晚上,对站点的后台进行编写
开始登陆进行编写
写了好多ASP,知道获取一个浏览器的值要用request,居然在PHP里不知道要怎么用,用了我好多时间去找,最后终于找到了一个$_GET[str]
夜已深,听着音乐提神,周围是多无点声音,虽然有点困,但很值得。
终于写好了一个后台登陆界面,在我平时以我写ASP经验,这个代码肯定很不安全,也许我可以现在做到这样已经比较好了,希望以后可以再来修补。
12日总结,虽然没有写出一个成样的系统,但至少熟悉了PHP的语言还有一些语法,本来老师的要求是要做出一个整合的系统,但我想能有这些基础做下面的东西也不再难。万事开头难!
实现动态
main.php
admin/index.php2006.01.13
开始做新闻发布系统,第一个难点在于发布照片上,由于PHP有整合图片上转的程序,但操作起来却比较难,出错的机率也太多, 如图片的名称,还有图片的类型,以ASP开发经验,很多是可以骗过类型,上传木马,不知道PHP是否有这个漏洞。
终于把session实现了,原来要用session_start();开启session。
电脑突然重启,找不到硬盘,我以为硬盘挂掉了,好怕,以为我这两天做的东西都没了,结果我把数据线重新插好,居然起来了。
终于写PHP有点上手了,今天下午做了好几个栏目,还差完善一个发布的系统,就整个新闻发布系统就算告一段落,心有点闷,出去走走,散散心。2006.01.14
继续完善新闻系统,整个发布系统就只有一个照片发布,就可以完善了。今天做到了一个计时,timer,在ASP中就是两个时间差,但是PHP里好像是其中的一个类,但要调用这个类出来却不知道要怎么做,好像一个INC的一个文件。找了几个资料,却还是不知道要怎么做,先放在一边,过段时间可能会明白。2006.01.17
在宿舍住得不是很开心,以前高中的同学叫我搬过来广东工业大学住几天,他包车,过年一起回家,于是搬过来广工住。过来了,可是由于没有网可以上,网上的资料也查不到,只能单单靠我之前下载了一本PHP手册,一边看着手册一边写,今天主要从图片上传开始做,终于在手册里看到一段关于上传程序的代码,我想应该可以利用得到,下面是那段代码:
您可以如下建立一个特殊的表单来支持文件上传: 例子 18-1. 文件上传表单<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>以上范例中的“_URL_”应该替换成指向一个 PHP 文件的真实 URL。MAX_FILE_SIZE 隐藏域(单位为字节)必须先于文件输入域,其值为接收文件的最大尺寸。同时,要保证您的文件上传表单中要有 enctype="multipart/form-data",否则文件上传将不能工作。
<?php
// 在 4.1.0 以前的 PHP 中,需要用 $HTTP_POST_FILES 代替 $_FILES。
// 在 4.0.3 以前的 PHP 中,需要用 copy() 和 is_uploaded_file() 来代替 move_uploaded_file()。$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir. $_FILES['userfile']['name'];
print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
print "File is valid, and was successfully uploaded. Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print_r($_FILES);
}
print "</pre>";
?>
终于写了一个上午,把上传程序写好了,不过还是少了一个扩展,因为我只做了一个图片上传,如果其它类型还是要修改,一个好的程序是可以重新应用的。以后做到软件下载的时候再来修改。2006.01.20
这几天在广工玩了几天,昨天给其他成员汇报了一下进度,把程序也发给了他们,昨天上了一下网,顺便也找了一下资料,找了一个MD5加密,还有一个验证码,还有数据分页,今天起来试,结果没有一个可运行的,然后找了又找,终于发现原来MD5加密,PHP里有内定函数,直接拿出来用就行了,不像ASP,什么都要自已写。
开始着手写分页的代码。
MYSQL有一个好处就是select * from page order by id limit start,end
可以从第几条记录读取和结束,这个使分页代码写起来简单很多。
比较难的就是分页的数字问题,基本上写了我一个上午,假如有101条数据,每一页有10条数据,共有11页,然面用共数来除以10,得出10.1,intval($num/$limit)取整之后再加一,所以有一个问题,如果是100第数据,那么就刚好是10页,如果加一,那么就会出错。
($num/$limit)==intval($num/$limit)?intval($num/$limit):(intval($num/$limit)+1)
判断出是否是整数,如果不是那么就加一,如果是那么就不加一。2006.01.23
终于回家里了,今天把所有的页面的分页都做好了。2006.01.25
开始做新闻编辑功能,把发布的页面改成编辑功能就可以了,数据从数据库里读如来,然后value值等于那个数据就可以了。但是在那里从DVBBS分离出来的编辑有点问题,最后在改一下javascript就可以了。2006.01.26
今天做一个数据删除,在checkbox上有点问题,因为发送过去的数据里PHP的$_POST只能接收一个数据,所在不能做到批量删除,所以就要用到数组。比如chk[],再读出数组有几个值,再一个一个的删除。2006.01.27
今天开始做会员注册,在以往做ASP的经验,注册这一块要花很大的功夫,比如用户名验证,是否有'或/等等非法字符,因为我也不大懂PHP语法,一直在找有没有比较简洁和高效的方法,最后自已写了一个好笨的方法,看下面代码
<?php
function strcode($str)
{
$l = strlen( $str );
for( $i=0; $i<$l; $i++ )
{
if( substr( $str, $i, 1 ) == "'" )
{
echo "非法字符";
exit(0);
}
}
return( $str );
}$str1="'";
$str2=strcode($str1);
echo $str2
?>
这就是一个检验是否有'的代码,实际上这个代码很不高效,移殖性也不好,还是想想有没有其它比较好的方法。2006.02.17
又回到学校了,开始写代码了
今天对以前的代码进行一下优化
<?php
function strcode($str)
{
$patten = "[^'\"]+$";
$result = ereg($patten, $str);
if(!$result){
echo"出现非法字符";
}
}
?>
这个就是对上面那个function进行优化,用了正则表达式,这样可以大大的加快了程的空间和时间的复杂度,写了几个小时,以前没有正式的写过正则表达式,这次一边看一边写,算是知道了一点点了。2006.02.18
今天基本把注册模块做好了,写了好多验证,大多数是正则表达式,验证用户是否输入不非法字符,还有对一些数据进行验证,可能我以前做ASP习惯了,如果是其他动态网页初学者可能不会做到这一点,就随便可以让用户注册就行了,反正也不会报错。但我觉得如果不做好这一点可能网页不够安全。
if(empty($name))
{
$msg=$msg."<font color=red>名字</font>不能为空<br>";
$flag=false;
}
else
{
if (!strcode($name))
{
$msg=$msg."<font color=red>名字</font>出现非法字符,不能出现<font color=red>'\"%&\$</font>等字符<br>";
$flag=false;
}
if (strlen($name)>16)
{
$msg=$msg."<font color=red>名字</font>不能超过16个字符(8个中文)<br>";
$flag=false;
}
}
这就是一段对名字进行验证的代码2006.02.17~2006.02.22
这几天真的时间很紧,一直写程序,没有时间来整理日记,今天就对这段日子进行总结一下。