Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

一个网上理财站点的设计(四)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

关于(三)的一点补充:

  在regist.php的源程序中,我们使用了这么一个函数:

mail($email,"欢迎",$name.":

  你已成功地在网上理财站点登录。

  用户名:".$user."

  口令:".$password,"From:".$mailaddress);

  以下是php4gb内对这个函数的解释:

  该函数的语法是:mail(string to, string subject, string message, string [additional_headers]),本函数寄出电子邮件到指定的邮件地址 to,subject 表示主题,message 为信件内容。额外的选项 additional_headers 可省略,表示其它的邮件文件头。

  在这里,我们要补充说明三点:

  1、对于第一个参数to,你可以采用$email1,$email2……的格式以完成抄送的要求。

  2、在引用参数message时,你应该尽量避免用单引号,而应该习惯于使用双引号,否则会造成诸如""这样的转义符失去作用。

  3、在一般情况下,我们并不会省略参数additional_headers,因为如果那样的话,邮件的from和reply都将指向php.ini中指定的那个唯一的email地址,除非你是使用的独立的服务器,这样做显然是不可行的。

  在今天的这个专题中,我们将完成用户登录的页面login_in.php。

  还是让我们先给出login_in.php的源程序:


<?php 
include ("connect.inc.php");
$query = "select name from my_user where user='".$user."' 
and password='".$password."'";
$res = mysql_query($query); 
$row = mysql_fetch_array($res); 
if ($row) 
{SetCookie("cookie_user", "$user"); 
SetCookie("cookie_password", "$password"); 
SetCookie("cookie_name",$row['name']); 
echo "<script language='javascript'>"; 
echo "parent.location.href='welcome.php'"; 
echo "</script>";}
?> 
<HTML>
<TITLE> 网上理财:用户登录 </TITLE>
<BODY>
<P ALIGN=CENTER><FONT FACE="隶书" SIZE="7" COLOR="#0000FF">
网上理财</FONT><BR>
<P ALIGN=LEFT>
<FONT FACE="宋体" SIZE="3" COLOR="#0000FF"><a href=index.php 
STYLE=Text-Decoration:none>首页</a>>><a href=login_in.php 
STYLE=Text-Decoration:none>用户登录</a></FONT>
<FORM NAME="login_in" ACTION="login_in.php" METHOD="POST">
<P ALIGN=center>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<TD BGCOLOR="#FFFFFF">
<Font Face=宋体 Size=2 Color="#0000FF" >用户名:</FONT>
</TD><TD BGCOLOR="#FFFFFF">
<INPUT TYPE=TEXT NAME="user" SIZE="15" MAXLENGTH="12" value="<
?php echo $user ?>">
</TD></TR>
<TR>
<TD BGCOLOR="#FFFFFF">
<Font Face=宋体 Size=2 Color="#0000FF" >密码:</FONT>
</TD><TD BGCOLOR="#FFFFFF">
<INPUT TYPE=password NAME="password" SIZE="15" MAXLENGTH="12" 
value="<?php echo $password ?>">
</TD></TR>
</TABLE>
<BR><INPUT TYPE=SUBMIT VALUE= 登录 >
</FORM>
</BODY>
</HTML>

  如果你对上一个专题中用户注册的源程序已经有了很好的理解的话,那么要理解这个程序我想是没有任何问题的。

  在这个专题中,我想着重谈谈PHP中MySQL的SELECT语句的使用。MySQL中的SELECT语句基本是标准的SQL格式,总的来说,有一多一少,多是多了一个limit子句,而这个子句对于我们的查询结果分页显示有着较为重要的作用。少是少了一个子查询,也就是说不支持SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);及SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);的格式。然而,在很多情况下,你可以重写查询,而通过连接可以找到一个比较巧妙的解决方法,向以上两句,你可以写成SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id及SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id IS NULL。

  在PHP中使用MySQL的SELECT语句有三种定式:

  首先,我们都是使用$query = "……";$res = mysql_query($query);

  而所谓三种定式,他们的差别这是在后面引用的PHP函数的不同。

  一、mysql_fetch_row

  二、mysql_fetch_array

  三、mysql_fetch_object

  这三个函数的作用其实是大同小异的,其区别只是返回参数的格式不同。三者都以select语句返回的一行为返回参数,如重复执行,将依次得到其他各行。这个功能有点象标准SQL中的光标。 mysql_fetch_row将查询结果拆到数组变量中,数组的索引是而且仅是数字索引;mysql_fetch_array将查询结果拆到数组变量中,数组的索引包括数字索引和文字索引;mysql_fetch_object将查询结果拆到类变量中。因此,我一般不使用mysql_fetch_row。因为那样会影响程序的可读性。

  通过test_01.php,你可以全面了解这三个函数的异同:


<?php 
include ("connect.inc.php");
$query = "select user,name,password from my_user";
$res = mysql_query($query); 
$row = mysql_fetch_row($res); 
echo "mysql_fetch_row:"."<br>";
echo "$"."row[0]=".$row[0]."<br>";
echo "$"."row[1]=".$row[1]."<br>";
echo "$"."row[2]=".$row[2]."<br>";
$row = mysql_fetch_array($res); 
echo "mysql_fetch_array:"."<br>";
echo "$"."row[0]=".$row[0]."<br>";
echo "$"."row[1]=".$row[1]."<br>";
echo "$"."row[2]=".$row[2]."<br>";
echo "$"."row['user']=".$row['user']."<br>";
echo "$"."row['name']=".$row['name']."<br>";
echo "$"."row['password']=".$row['password']."<br>";
$row = mysql_fetch_object($res); 
echo "mysql_fetch_object:"."<br>";
echo "$"."row->user=".$row->user."<br>";
echo "$"."row->name=".$row->name."<br>";
echo "$"."row->password=".$row->password."<br>";
?> 


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:一个网上理财站点的设计(三)   下一篇:一个网上理财站点的设计(五)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章