<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[Tmd.me【黑刀部落】]]></title> 
<link>http://www.heidao.com.cn/2008/index.php</link> 
<description><![CDATA[黑刀技术网、自由、免费、致力深入研究各种电脑技术……]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[Tmd.me【黑刀部落】]]></copyright>
<item>
<link>http://www.heidao.com.cn/2008/read.php/.htm</link>
<title><![CDATA[【本文转自冯健博客】十天学会PHP——冯健]]></title> 
<author>管管 &lt;admin@tmd.me&gt;</author>
<category><![CDATA[编程开发源码]]></category>
<pubDate>Fri, 04 Dec 2009 08:48:55 +0000</pubDate> 
<guid>http://www.heidao.com.cn/2008/read.php/.htm</guid> 
<description>
<![CDATA[ 
	【本文转自冯健博客 www.kucg.com 】十天学会PHP —— 冯健<br/><br/>　　以前写了十天学会ASP，十天学会ASP.NET什么的，现在想想再写个PHP吧，也算比较全了。 PHP的调试方法我这里就不说了，外面很多文章都有介绍，也有很多不同的组合。我这里暂时是以 Apache web server 和 MY SQL 作为WEB服务器和数据库，在php-4.3.3下的环境做的程序。当然要简单的构建和访问查看数据库 PHPMYADMIN 不可少。<br/><br/>　　至于表单设计什么的，我这里也不想多说了，在《十天学会ASP》中已经有介绍。<br/><br/>　　下面简单介绍一下PHP的语法。<br/><br/>　　1、嵌入方法：<br/><br/>　　类似ASP的&lt;%，PHP可以是&lt;?php或者是&lt;?，结束符号是?&gt;，当然您也可以自己指定。<br/><br/>　　2、引用文件：<br/><br/>　　引用文件的方法有两种：require 及 include。<br/>　　<br/>　　require 的使用方法如 require(&quot;MyRequireFile.php&quot;); 。这个函数通常放在 PHP 程序的最前面，PHP 程序在执行前，就会先读入 require 所指定引入的文件，使它变成 PHP 程序网页的一部份。常用的函数，亦可以这个方法将它引入网页中。<br/><br/>　　include 使用方法如 include(&quot;MyIncludeFile.php&quot;); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时，才将它读进来。这种方式，可以把程序执行时的流程简单化。 <br/><br/>　　3、注释方法：<br/><br/>　　&lt;?php <br/>　　echo &quot;这是第一种例子。&amp;amp;#92;n&quot; ; // 本例是 C++ 语法的注释 <br/>　　/* 本例采用多行的 <br/>　　注释方式 */ <br/>　　echo &quot;这是第二种例子。&amp;amp;#92;n&quot; ; <br/><br/>　　echo &quot;这是第三种例子。&amp;amp;#92;n&quot; ; # 本例使用 UNIX Shell 语法注释 <br/>　　?&gt; <br/><br/>　　4、变量类型：<br/><br/>　　$mystring = &quot;我是字符串&quot; ; <br/>　　$NewLine = &quot;换行了&amp;amp;#92;n&quot; ; <br/>　　$int1 = 38 ; <br/>　　$float1 = 1.732 ; <br/>　　$float2 = 1.4E+2 ; <br/>　　$MyArray1 = array( &quot;子&quot; , &quot;丑&quot; , &quot;寅&quot; , &quot;卯&quot; ); <br/><br/>　　这里引出两个问题，首先PHP变量以$开头，第二PHP语句以;结尾，可能ASP程序员会不适应。这两个遗漏也是程序上大多错误所在。<br/><br/>　　5、运算符号： <br/><br/>　　数学运算： 符号 意义&nbsp;&nbsp;<br/>　　+&nbsp;&nbsp;加法运算&nbsp;&nbsp;<br/>　　-&nbsp;&nbsp;减法运算&nbsp;&nbsp;<br/>　　*&nbsp;&nbsp;乘法运算&nbsp;&nbsp;<br/>　　/&nbsp;&nbsp;除法运算&nbsp;&nbsp;<br/>　　%&nbsp;&nbsp;取余数&nbsp;&nbsp;<br/>　　++&nbsp;&nbsp;累加&nbsp;&nbsp;<br/>　　--&nbsp;&nbsp;递减&nbsp;&nbsp;<br/><br/>　　字符串运算：<br/><br/>　　运算符号只有一个，就是英文的句号。它可以将字符串连接起来，变成合并的新字符串。类似ASP中的&amp;amp;amp;<br/>　　&lt;?<br/><br/>　　$a = &quot;PHP 4&quot; ; <br/>　　$b = &quot;功能强大&quot; ; <br/>　　echo $a.$b; <br/>　　?&gt; <br/>　　这里也引出两个问题，首先PHP中输出语句是echo，第二类似ASP中的&lt;%=变量%&gt;，PHP中也可以&lt;?=变量?&nbsp;&nbsp;&nbsp;&nbsp;&gt;。<br/><br/>　　逻辑运算：<br/><br/>　　符号 意义&nbsp;&nbsp;<br/>　　&lt;&nbsp;&nbsp;小于&nbsp;&nbsp;<br/>　　&gt;&nbsp;&nbsp;大于&nbsp;&nbsp;<br/>　　&lt;=&nbsp;&nbsp;小于或等于&nbsp;&nbsp;<br/>　　&gt;=&nbsp;&nbsp;大于或等于&nbsp;&nbsp;<br/>　　==&nbsp;&nbsp;等于&nbsp;&nbsp;<br/>　　!=&nbsp;&nbsp;不等于&nbsp;&nbsp;<br/>　　&amp;&amp;&nbsp;&nbsp;而且 (And)&nbsp;&nbsp;<br/>　　and&nbsp;&nbsp;而且 (And)&nbsp;&nbsp;<br/>　　&amp;#124;&amp;#124;&nbsp;&nbsp;或者 (Or)&nbsp;&nbsp;<br/>　　or&nbsp;&nbsp;或者 (Or)&nbsp;&nbsp;<br/>　　xor&nbsp;&nbsp;异或 (Xor)&nbsp;&nbsp;<br/>　　!&nbsp;&nbsp;不 (Not)&nbsp;&nbsp;<br/><br/>　　今天就说到这里，明天说一下流程控制。<br/><br/>　　学习目的：掌握php的流程控制 <br/><br/>　　1、if..else 循环有三种结构 <br/><br/>　　第一种是只有用到 if 条件，当作单纯的判断。解释成 &quot;若发生了某事则怎样处理&quot;。语法如下： <br/><br/>　　if (expr) { statement } <br/><br/>　　其中的 expr 为判断的条件，通常都是用逻辑运算符号当判断的条件。而 statement 为符合条件的执行部分程序，若程序只有一行，可以省略大括号 {}。 <br/>　　<br/>　　范例：本例省略大括号。 <br/><br/>　　&lt;?php <br/>　　if ($state==1)echo &quot;哈哈&quot; ; <br/>　　?&gt; <br/><br/>　　这里特别注意的是，判断是否相等是==而不是=，ASP程序员可能常犯这个错误，= 是赋值。 <br/><br/>　　范例：本例的执行部分有三行，不可省略大括号。 <br/><br/>　　&lt;?php <br/>　　if ($state==1) { <br/>　　echo &quot;哈哈 ; <br/>　　echo &quot;&lt;br&gt;&quot; ; <br/>　　} <br/>　　?&gt; <br/><br/>　　第两种是除了 if 之外，加上了 else 的条件，可解释成 &quot;若发生了某事则怎样处理，否则该如何解决&quot;。语法如下 <br/><br/>　　if (expr) { statement1 } else { statement2 } 范例：上面的例子来修改成更完整的处理。其中的 else 由于只有一行执行的指令，因此不用加上大括号。 <br/>　　&lt;?php <br/>　　if ($state==1) { <br/>　　echo &quot;哈哈&quot; ; <br/>　　echo &quot;&lt;br&gt;&quot;;<br/>　　} <br/>　　else{<br/>　　echo &quot;呵呵&quot;;<br/>　　echo &quot;&lt;br&gt;&quot;; <br/>　　} <br/>　　?&gt; <br/><br/>　　第三种就是递归的 if..else 循环，通常用在多种决策判断时。它将数个 if..else 拿来合并运用处理。 <br/><br/>　　直接看下面的例子 <br/><br/>　　&lt;?php <br/>　　if ( $a &gt; $b ) { <br/>　　echo &quot;a 比 b 大&quot; ; <br/>　　} elseif ( $a == $b ) { <br/>　　echo &quot;a 等于 b&quot; ; <br/>　　} else { <br/>　　echo &quot;a 比 b 小&quot; ; <br/>　　} <br/>　　?&gt; <br/><br/>　　上例只用二层的 if..else 循环，用来比较 a 和 b 两个变量。实际要使用这种递归 if..else 循环时，请小心使用，因为太多层的循环容易使设计的逻辑出问题，或者少打了大括号等，都会造成程序出现莫名其妙的问题。 <br/><br/>　　2、 for 循环就单纯只有一种，没有变化，它的语法如下 <br/><br/>　　for (expr1; expr2; expr3) { statement } <br/><br/>　　其中的 expr1 为条件的初始值。expr2 为判断的条件，通常都是用逻辑运算符号 (logical operators) 当判断的条件。expr3 为执行 statement 后要执行的部份，用来改变条件，供下次的循环判断，如加一..等等。而 statement 为符合条件的执行部分程序，若程序只有一行，可以省略大括号 {}。 <br/><br/>　　下例是用 for 循环写的的例子。 <br/><br/>　　&lt;?php <br/>　　for ( $i = 1 ; $i &lt;= 10 ; $i ++) { <br/>　　echo &quot;这是第&quot;.$i.&quot;次循环&lt;br&gt;&quot; ; <br/>　　} <br/>　　?&gt; <br/><br/>　　3、 switch 循环，通常处理复合式的条件判断，每个子条件，都是 case 指令部分。在实作上若使用许多类似的 if 指令，可以将它综合成 switch 循环。<br/><br/>　　语法如下 <br/><br/>　　switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; } <br/><br/>　　其中的 expr 条件，通常为变量名称。而 case 后的 exprN，通常表示变量值。冒号后则为符合该条件要执行的部分。注意要用 break 跳离循环。 <br/><br/>　　&lt;?php <br/>　　switch ( date ( &quot;D&quot; )) { <br/>　　case &quot;Mon&quot; : <br/>　　echo &quot;今天星期一&quot; ; <br/>　　break; <br/>　　case &quot;Tue&quot; : <br/>　　echo &quot;今天星期二&quot; ; <br/>　　break; <br/>　　case &quot;Wed&quot; : <br/>　　echo &quot;今天星期三&quot; ; <br/>　　break; <br/>　　case &quot;Thu&quot; : <br/>　　echo &quot;今天星期四&quot; ; <br/>　　break; <br/>　　case &quot;Fri&quot; : <br/>　　echo &quot;今天星期五&quot; ; <br/>　　break; <br/>　　default: <br/>　　echo &quot;今天放假&quot; ; <br/>　　break; <br/>　　} <br/>　　?&gt; <br/><br/>　　这里需要注意的是break;别遗漏了，default，省略是可以的。 <br/><br/>　　很明显的，上述的例子用 if 循环就很麻烦了。当然在设计时，要将出现机率最大的条件放在最前面，最少出现的条件放在最后面，可以增加程序的执行效率。上例由于每天出现的机率相同，所以不用注意条件的顺序。 <br/><br/>　　今天就说到这里，明天开始说数据库的使用。<br/><br/>　　学习目的：学会构建数据库<br/><br/>　　在ASP中，如果是ACCESS数据库你可以直接打开ACCESS来编辑MDB文件，如果是SQL SERVER你可以打开企业管理器来编辑SQL SERVER数据库，但是在PHP中，MY SQL的命令行编辑可能会令初学者感到很麻烦，不要紧，你下载一个PHPMYADMIN安装一下，以后建立编辑数据库可以靠它了。<br/><br/>　　下面说一下它的使用。<br/><br/>　　进入了phpmyadmin后，我们首先需要建立一个数据库，Language (*) 这里选择中文简体，然后在左边的 创建一个新的数据库 这里填写数据库名字，点击创建即可。<br/><br/>　　然后在左边下拉菜单中选择那个已经创建的数据库。在下面的 <br/><br/>　　在数据库 shop 中创建一个新表 : <br/>　　名字 : <br/>　　字段数 :<br/><br/>　　中填写表名字和大致你认为的字段数（不够或者多了都不要紧，以后可以再添加或者缺省），按执行。<br/>　　然后就可以开始建立表了。<br/><br/>　　第一栏是字段的名字；第二栏选择字段类型：<br/>　　我们常用的是以下几个：<br/>　　1）VARCHAR，文本类型<br/>　　2）INT，整数类型<br/>　　3）FLOAT，浮点数类型<br/>　　4）DATE，日期型<br/>　　5）大家或许会问，自动添加的ID在哪里？这个只要选择INT类型，在后面的额外中选择 auto_increment 就可以了。<br/><br/>　　建立了表以后，可以在左边看到你建立的表，点击以后，你可以：<br/>　　1）按右边的结构：查看修改表结构<br/>　　2）按右边的浏览：查看表中的数据<br/>　　3）按右边的SQL：运行SQL语句<br/>　　4）按右边的插入：插入一行记录<br/>　　5）按右边的清空：删除表中所有记录<br/>　　6）按右边的删除：删除表<br/><br/>　　还有一个很重要的功能就是导入和导出，当我们本机做好了程序和数据库的时候，需要在服务器上也有一个本地镜像，如果是ASP的ACCESS简单了，直接上传MDB文件即可，如果是SQL SERVER也可以连接远端服务器进行导入。那么MY SQL中你可以导出所有的SQL语句，到了远端服务器的PHPMYADMIN上，创建数据库后按SQL，粘帖你刚才复制下来的所有本级生成的SQL语句即可。<br/><br/>　　今天就说到这里，明天继续说数据库操作。<br/><br/>　　文本关键字：程序设计/PHP/技巧<br/><br/>　　学习目的：学会连接数据库<br/><br/>　　PHP简直就是一个函数库，丰富的函数使PHP的某些地方相当简单。建议大家down一本PHP的函数手册，总用的到。<br/><br/>　　我这里就简单说一下连接MYSQL数据库。<br/><br/>　　1、mysql_connect<br/><br/>　　打开 MySQL 服务器连接。 <br/>　　语法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整数 <br/><br/>　　本函数建立与 MySQL 服务器的连接。其中所有的参数都可省略。当使用本函数却不加任何参数时，参数 hostname 的默认值为 localhost、参数 username 的默认值为 PHP 执行行程的拥有者、参数 password 则为空字符串 (即没有密码)。而参数 hostname 后面可以加冒号与端口号，代表使用哪个端口与 MySQL 连接。当然在使用数据库时，早点使用 mysql_close() 将连接关掉可以节省资源。 <br/><br/>　　2、 mysql_select_db <br/><br/>　　选择一个数据库。 <br/>　　语法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整数<br/><br/>　　本函数选择 MySQL 服务器中的数据库以供之后的资料查询作业 (query) 处理。成功返回 true，失败则返回 false。 <br/><br/>　　最简单的例子就是：<br/>　　$conn=mysql_connect (&quot;127.0.0.1&quot;, &quot;&quot;, &quot;&quot;);<br/>　　mysql_select_db(&quot;shop&quot;);<br/>　　连接机MY SQL数据库，打开SHOP数据库。在实际应用中应当加强点错误判断。<br/><br/>　　今天就说到这里，明天再说一下数据库的读取。<br/><br/>　　学习目的：学会读取数据<br/><br/>　　先看两个函数：<br/>　　1、mysql_query <br/>　　送出一个 query 字符串。 语法: int mysql_query(string query, int [link_identifier]); 返回值: 整数<br/><br/>　　本函数送出 query 字符串供 MySQL 做相关的处理或者执行。若没有指定 link_identifier 参数，则程序会自动寻找最近打开的 ID。当 query 查询字符串是 Update、Insert 及 Delete 时，返回的可能是 true 或者 false；查询的字符串是 Select 则返回新的 ID 值，当返回 false 时，并不是执行成功但无返回值，而是查询的字符串有错误。 <br/><br/>　　2、mysql_fetch_object 返回类资料。 语法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 类 <br/><br/>　　本函数用来将查询结果 result 拆到类变量中。若 result 没有资料，则返回 false 值。<br/><br/>　　看一个简单的例子：<br/>　　&lt;? <br/>　　$exec=&quot;select * from user&quot;; <br/>　　$result=mysql_query($exec);<br/>　　while($rs=mysql_fetch_object($result))<br/>　　{<br/>　　echo &quot;username:&quot;.$rs-&gt;username.&quot;&lt;br&gt;&quot;; <br/>　　}<br/>　　?&gt; <br/>　　<br/>　　当然，表user中有一个username的字段，这就类似asp中的<br/>　　&lt;%<br/>　　exec=&quot;select * from user&quot;<br/>　　set rs=server.createobject(&quot;adodb.recordset&quot;) <br/>　　rs.open exec,conn,1,1<br/>　　do while not rs.eof<br/>　　response.write &quot;username:&quot;&amp;amp;amp;rs(&quot;username&quot;)&amp;amp;amp;&quot;&lt;br&gt;&quot;<br/>　　rs.movenext <br/>　　loop <br/>　　%&gt; 　　<br/><br/>　　当然先要连接数据库，一般我们 require_once(&#039;conn.php&#039;);而conn.php里面就是上一次说的连接数据库的代码。<br/><br/>　　小小的两条命令可以完成读取数据的工作了，今天说到这里下一次说数据的添加删除修改。<br/><br/>　学习目的：学会添加删除修改数据<br/><br/>　　mysql_query($exec);<br/>　　单这个语句就可以执行所有的操作了，不同的就是$exec这个sql语句<br/><br/>　　添加：$exec=&quot;insert into tablename (item1,item2) values (&#039;&quot;.$_POST[&#039;item1&#039;].&quot;&#039;,&quot;.$_POST[&#039;item1&#039;].&quot;)&quot;;<br/><br/>　　删除：$exec=&quot;delete from tablename where...&quot;;<br/><br/>　　修改：$exec=&quot;update tablename set item1=&#039;&quot;.$_POST[&#039;item1&#039;].&quot;&#039; where ...&quot;;<br/><br/>　　说到这里就要说一下表单和php变量传递，如果表单中的一个 &lt;input name=&quot;item1&quot; type=&quot;text&quot; id=&quot;item1&quot;&gt;<br/><br/>　　表单以POST提交的，那么处理表单文件就可以用$_POST[&#039;item1&#039;]得到变量值，同样以GET提交的就是$_GET[&#039;item1&#039;]<br/><br/>　　是不是很简单？但是通常$exec会有问题，因为可能您的SQL语句会很长，您会遗漏.连接符，或者&#039;来包围字符型字段。<br/><br/>　　我们可以注释mysql_query($exec);语句用echo $exec;代替来输出$exec以检查正确性。如果您还不能察觉$exec有什么错误的话，可以复制这个sql语句到phpmyadmin中执行，看看它的出错信息。还有需要注意的是，我们不要使用一些敏感的字符串作为字段名字，否则很可能会出现问题，比如说date什么的。变量的命名，字段的命名遵循一点规律有的时候对自己是一种好处，初学者并不可忽视其重要性。<br/><br/>　　今天就说到这里，大家可以DOWN一个SQL语句的参考手册，再研究研究。明天继续说SESSION。<br/>　　学习目的：学会SESSION的使用<br/><br/>　　SESSION的作用很多，最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION；<br/>　　<br/>　　然后就可以使用SESSION变量了，比如说要赋值就是：$_SESSION[&#039;item&#039;]=&quot;item1&quot;;要得到值就是$item1=$_SESSION[&#039;item&#039;];，很简单吧。这里我们可能会使用到一些函数，比如说判断是不是某SESSION变量为空，可以这么写：empty($_SESSION[&#039;inum&#039;])返回true or false。<br/><br/>　　下面综合一下前面所说的我们来看一个登陆程序，判断用户名密码是否正确。<br/>　　<br/>　　登陆表单是这样：login.php<br/>　　&lt;table width=&quot;100%&quot; height=&quot;100%&quot; border=&quot;0&quot; align=&quot;center&quot; cellpadding=&quot;0&quot; 　　cellspacing=&quot;0&quot;&gt;<br/>　　&lt;tr&gt;<br/>　　&lt;form action=&quot;checklogin.php&quot; method=&quot;post&quot;&gt;&lt;td align=&quot;center&quot; valign=&quot;middle&quot;&gt;&lt;table 　　width=&quot;400&quot; border=&quot;0&quot; cellpadding=&quot;5&quot; cellspacing=&quot;1&quot; class=&quot;tablebg&quot;&gt;<br/>　　&lt;tr class=&quot;tdbg&quot;&gt;<br/>　　&lt;td colspan=&quot;2&quot;&gt;&lt;div align=&quot;center&quot;&gt;Administrators Login&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;/tr&gt;<br/>　　&lt;tr class=&quot;tdbg&quot;&gt;<br/>　　&lt;td&gt;&lt;div align=&quot;center&quot;&gt;Username&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;td&gt;&lt;div align=&quot;center&quot;&gt;<br/>　　&lt;input name=&quot;username&quot; type=&quot;text&quot; id=&quot;username&quot;&gt;<br/>　　&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;/tr&gt;<br/>　　&lt;tr class=&quot;tdbg&quot;&gt;<br/>　　&lt;td&gt;&lt;div align=&quot;center&quot;&gt;Password&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;td&gt;&lt;div align=&quot;center&quot;&gt;<br/>　　&lt;input name=&quot;password&quot; type=&quot;password&quot; id=&quot;password&quot;&gt;<br/>　　&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;/tr&gt;<br/>　　&lt;tr class=&quot;tdbg&quot;&gt;<br/>　　&lt;td colspan=&quot;2&quot;&gt;&lt;div align=&quot;center&quot;&gt;<br/>　　&lt;input type=&quot;submit&quot; name=&quot;Submit&quot; value=&quot;Submit&quot;&gt;<br/>　　&lt;input type=&quot;reset&quot; name=&quot;Submit2&quot; value=&quot;Clear&quot;&gt;<br/>　　&lt;/div&gt;&lt;/td&gt;<br/>　　&lt;/tr&gt;<br/>　　&lt;/table&gt;&lt;/td&gt;&lt;/form&gt;<br/>　　&lt;/tr&gt;<br/>　　&lt;/table&gt;<br/><br/>　　处理文件是这样<br/>　　&lt;?<br/>　　require_once(&#039;conn.php&#039;);<br/>　　session_start();<br/>　　$username=$_POST[&#039;username&#039;];<br/>　　$password=$_POST[&#039;password&#039;];<br/>　　$exec=&quot;select * from admin where username=&#039;&quot;.$username.&quot;&#039;&quot;;<br/>　　if($result=mysql_query($exec))<br/>　　{<br/>　　if($rs=mysql_fetch_object($result))<br/>　　{<br/>　　if($rs-&gt;password==$password)<br/>　　{<br/>　　$_SESSION[&#039;adminname&#039;]=$username;<br/>　　header(&quot;location:index.php&quot;);<br/>　　}<br/>　　else<br/>　　{<br/>　　echo &quot;&lt;script&gt;alert(&#039;Password Check Error!&#039;);location.href=&#039;login.php&#039;;&lt;/script&gt;&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>　　}<br/>　　else<br/>　　{<br/>　　echo &quot;&lt;script&gt;alert(&#039;Username Check Error!&#039;);location.href=&#039;login.php&#039;;&lt;/script&gt;&quot;;<br/>　　}<br/>　　}<br/>　　else<br/>　　{<br/>　　echo &quot;&lt;script&gt;alert(&#039;Database Connection Error!&#039;);location.href=&#039;login.php&#039;;&lt;/script&gt;&quot;;<br/>　　}<br/><br/>　　?&gt;<br/><br/>　　conn.php是这样：<br/>　　&lt;?<br/>　　$conn=mysql_connect (&quot;127.0.0.1&quot;, &quot;&quot;, &quot;&quot;);<br/>　　mysql_select_db(&quot;shop&quot;); <br/>　　?&gt; <br/><br/>　　由于 $_SESSION[&#039;adminname&#039;]=$username;我们可以这样写验证是否登陆语句的文件：　　checkadmin.asp<br/>　　&lt;?<br/>　　session_start();<br/>　　if($_SESSION[&#039;adminname&#039;]==&#039;&#039;)<br/>　　{<br/>　　echo &quot;&lt;script&gt;alert(&#039;Please Login First&#039;);location.href=&#039;login.php&#039;;&lt;/script&gt;&quot;;<br/>　　}<br/>　　?&gt; <br/><br/>　　呵呵，今天说到这里，明天说一下怎么弄一个分页。<br/><br/>　　学习目的：做一个分页显示<br/><br/>　　关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page，还需要总共的记录数$num<br/><br/>　　对于$page如果没有我们就让它=0，如果有&lt;0就让它也=0，如果超过了总的页数就让他=总的页数。<br/><br/>　　$execc=&quot;select count(*) from tablename &quot;;<br/>　　$resultc=mysql_query($execc);<br/>　　$rsc=mysql_fetch_array($resultc);<br/>　　$num=$rsc[0];<br/><br/>　　这样可以得到记录总数<br/>　　ceil($num/10))如果一页10记录的话，这个就是总的页数<br/><br/>　　所以可以这么写<br/>　　if(empty($_GET[&#039;page&#039;]))<br/>　　{<br/>　　$page=0;<br/>　　}<br/>　　else<br/>　　{<br/>　　$page=$_GET[&#039;page&#039;];<br/>　　if($page&lt;0)$page=0;<br/>　　if($page&gt;=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的，所以要-1<br/>　　} <br/><br/>　　这样$exec可以这么写 $exec=&quot;select * from tablename limit &quot;.($page*10).&quot;,10&quot;;<br/>　　//一页是10记录的<br/><br/>　　最后我们需要做的就是几个连接：<br/>　　&lt;a href=&quot;xxx.php?page=0&quot;&gt;FirstPage&lt;/a&gt; <br/>　　&lt;a href=&quot;xxx.php?page=&lt;?=($page-1)?&gt;&quot;&gt;PrevPage&lt;/a&gt; <br/>　　&lt;a href=&quot;xxx.php?page=&lt;?=($page+1)?&gt;&quot;&gt;NextPage&lt;/a&gt; <br/>　　&lt;a href=&quot;xxx.php?page=&lt;?=ceil($num/10)-1?&gt;&quot;&gt;LastPage&lt;/a&gt;<br/><br/>　　这是一个大致的思路，大家可以想想怎么来优化？今天说到这里，明天说一下一些注意的问题。<br/><br/>学习目的：注意事项<br/><br/>　　因为我是先学ASP的，所以再做PHP的时候会发现很多地方需要适应。<br/><br/>　　1、注意不要漏了分号<br/>　　2、注意不要漏了变量前的$<br/>　　3、使用SESSION的时候注意不要遗漏session_start();<br/><br/>　　如果发生错误的时候，可以采用以下方法：<br/>　　1、如果是SQL语句出错，就注释了然后输出SQL语句，注意也要注释调后续的执行SQL语句<br/>　　2、如果是变量为空，大多是没有传递到位，输出变量检查一下，检查一下表单的id和name<br/>　　3、如果是数据库连接出错，检查是否正确打开MY SQL和是否遗漏了连接语句<br/>　　4、注意缩进，排除括号不区配的错误<br/><br/>　　在做大网站的时候，我的思路是先构建数据库，确定每一个字段的作用，和表之间的关系。然后设计后台界面，从添加数据开始做起，因为添加是否成功可以直接到数据库里面验证，做好了添加再做显示的页面，最后才是两者的结合。一般来说后台就包括添加删除修改和显示，后台没有问题了，前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。<br/><br/>　　好了，今天说到这里，明天说一下如果用PHP上传文件和发邮件。<br/><br/><br/>　　学习目的：学会用PHP上传文件和发邮件<br/><br/>　　上传文件表单必须加上 enctype=&quot;multipart/form-data&quot; 和 &lt;input type=&quot;file&quot; name=&quot;file&quot;&gt;<br/>　　<br/>　　下面看一下代码：<br/><br/>　　$f=&amp;$HTTP_POST_FILES[&#039;file&#039;];<br/>　　$dest_dir=&#039;uploads&#039;;//设定上传目录<br/>　　$dest=$dest_dir.&#039;/&#039;.date(&quot;ymd&quot;).&quot;_&quot;.$f[&#039;name&#039;];//我这里设置文件名为日期加上文件名避免重复<br/>　　$r=move_uploaded_file($f[&#039;tmp_name&#039;],$dest);<br/>　　chmod($dest, 0755);//设定上传的文件的属性<br/><br/>　　上传的文件名为date(&quot;ymd&quot;).&quot;_&quot;.$f[&#039;name&#039;] ，可以在以后插入到数据库的时候用到，PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f[&#039;tmp_name&#039;],$dest);这是关键<br/><br/>　　至于发邮件就更加简单，可以使用mail()函数mail(&quot;收件人地址&quot;,&quot;主题&quot;,&quot;正文&quot;,&quot;From:发件人&#92;r&#92;nReply-to:发件人的地址&quot;);<br/><br/>　　不过mail()需要服务器的支持，在WINDOWS下还需要配置SMTP服务器，一般来说外面的LINUX空间都行。<br/>　　<br/>　　好像上传文件和发邮件比ASP简单很多，只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。<br/><br/>　　十天学会PHP说到这里了，我的三大系列文章都用《十天学会》作为名字，想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天，但是精通决不是十天啊，还需要大家自己去研究。<br/>Tags - <a href="http://www.heidao.com.cn/2008/go.php/tags/php%25E5%25AD%25A6%25E4%25B9%25A0/" rel="tag">php学习</a>
]]>
</description>
</item><item>
<link>http://www.heidao.com.cn/2008/read.php/.htm#blogcomment</link>
<title><![CDATA[[评论] 【本文转自冯健博客】十天学会PHP——冯健]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.heidao.com.cn/2008/read.php/.htm#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>