关于(三)的一点补充:
在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>";
?>
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:一个网上理财站点的设计(三)
下一篇:一个网上理财站点的设计(五)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】
更多相关文章
|
|