十天学会php(3)

笑开颜439

笑开颜439

2016-02-19 11:37

有一种朋友不在生活里,却在生命力;有一种陪伴不在身边,却在心间。图老师即在大家的生活中又在身边。这么贴心的服务你感受到了吗?话不多说下面就和大家分享十天学会php(3)吧。

第七天学习目的:学会SESSION的使用

SESSION的作用很多,最多用的就是站点内页面间变量传递。在页面开始我们要session_start();开启SESSION;
然后就可以使用SESSION变量了,比如说要赋值就是:$_SESSION['item']="item1";要得到值就是$item1=$_SESSION['item'];,很简单吧。这里我们可能会使用到一些函数,比如说判断是不是某SESSION变量为空,可以这么写:empty($_SESSION['inum'])返回true or false。

下面综合一下前面所说的我们来看一个登陆程序,判断用户名密码是否正确。
登陆表单是这样:login.php
table width="100%" height="100%" style="text-align:center" cellpadding="0" cellspacing="0"
tr
form action="checklogin.php" method="post"td style="text-align:center" valign="middle"table width="400" cellpadding="5" cellspacing="1" class="tablebg"
tr class="tdbg"
td colspan="2"div style="text-align:center"Administrators Login/div/td
/tr
tr class="tdbg"
tddiv style="text-align:center"Username/div/td
tddiv style="text-align:center"
input name="username" type="text" id="username"
/div/td
/tr
tr class="tdbg"
tddiv style="text-align:center"Password/div/td
tddiv style="text-align:center"
input name="password" type="password" id="password"
/div/td
/tr
tr class="tdbg"
td colspan="2"div style="text-align:center"
input type="submit" name="Submit" value="Submit"
input type="reset" name="Submit2" value="Clear"
/div/td
/tr
/table/td/form
/tr
/table

处理文件是这样
?
require_once('conn.php');
session_start();
$username=$_POST['username'];
$password=$_POST['password'];
$exec="select * from admin where username='".$username."'";
if($result=mysql_query($exec))
{
  if($rs=mysql_fetch_object($result))
  {
    if($rs-password==$password)
    {
      $_SESSION['adminname']=$username;
      header("location:index.php");
    }
    else
    {
      echo "scriptalert('Password Check Error!');location.href='login.php';/script";
    }
  }
  else
  {
  echo "scriptalert('Username Check Error!');location.href='login.php';/script";
  }
  }
else
{
echo "scriptalert('Database Connection Error!');location.href='login.php';/script";
}?

conn.php是这样:
?
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("shop");
?

由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登陆语句的文件:checkadmin.asp
?
session_start();
if($_SESSION['adminname']=='')
{
echo "scriptalert('Please Login First');location.href='login.php';/script";
}
?

呵呵,今天说到这里,明天说一下怎么弄一个分页。第八天学习目的:做一个分页显示

关键就是用到了SQL语句中的limit来限定显示的记录从几到几。我们需要一个记录当前页的变量$page,还需要总共的记录数$num

对于$page如果没有我们就让它=0,如果有0就让它也=0,如果超过了总的页数就让他=总的页数。

$execc="select count(*) from tablename ";
$resultc=mysql_query($execc);
$rsc=mysql_fetch_array($resultc);
$num=$rsc[0];

这样可以得到记录总数
ceil($num/10))如果一页10记录的话,这个就是总的页数

所以可以这么写
if(empty($_GET['page']))
{
$page=0;
}
else
{
$page=$_GET['page'];
if($page0)$page=0;
if($page=ceil($num/10))$page=ceil($num/10)-1;//因为page是从0开始的,所以要-1
}

这样$exec可以这么写 $exec="select * from tablename limit ".($page*10).",10";
//一页是10记录的

最后我们需要做的就是几个连接:
a href="xxx.php?page=0"FirstPage/a
a href="xxx.php?page=?=($page-1)?"PrevPage/a
a href="xxx.php?page=?=($page+1)?"NextPage/a
a href="xxx.php?page=?=ceil($num/10)-1?"LastPage/a

这是一个大致的思路,大家可以想想怎么来优化?今天说到这里,明天说一下一些注意的问题。
第九天学习目的:注意事项

因为我是先学ASP的,所以再做PHP的时候会发现很多地方需要适应。

1、注意不要漏了分号
2、注意不要漏了变量前的$
3、使用SESSION的时候注意不要遗漏session_start();

如果发生错误的时候,可以采用以下方法:
1、如果是SQL语句出错,就注释了然后输出SQL语句,注意也要注释调后续的执行SQL语句
2、如果是变量为空,大多是没有传递到位,输出变量检查一下,检查一下表单的id和name
3、如果是数据库连接出错,检查是否正确打开MY SQL和是否遗漏了连接语句
4、注意缩进,排除括号不区配的错误

在做大网站的时候,我的思路是先构建数据库,确定每一个字段的作用,和表之间的关系。然后设计后台界面,从添加数据开始做起,因为添加是否成功可以直接到数据库里面验证,做好了添加再做显示的页面,最后才是两者的结合。一般来说后台就包括添加删除修改和显示,后台没有问题了,前台也没有什么大问题。前台还需要注意安全性和容错还有就是输出格式。

好了,今天说到这里,明天说一下如果用PHP上传文件和发邮件。
第十天学习目的:学会用PHP上传文件和发邮件

上传文件表单必须加上 enctype="multipart/form-data"
和 input type="file" name="file"
下面看一下代码:

$f=&$HTTP_POST_FILES['file'];
$dest_dir='uploads';//设定上传目录
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性

上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键

至于发邮件就更加简单,可以使用mail()函数

mail("收件人地址","主题","正文","From:发件人rnReply-to:发件人的地址");

不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。

十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
学习目的:学会用PHP上传文件和发邮件

上传文件表单必须加上 enctype="multipart/form-data"
和 input type="file" name="file"
下面看一下代码:

$f=&$HTTP_POST_FILES['file'];
$dest_dir='uploads';//设定上传目录
$dest=$dest_dir.'/'.date("ymd")."_".$f['name'];//我这里设置文件名为日期加上文件名避免重复
$r=move_uploaded_file($f['tmp_name'],$dest);
chmod($dest, 0755);//设定上传的文件的属性

上传的文件名为date("ymd")."_".$f['name'] ,可以在以后插入到数据库的时候用到,PHP实际上是把你上传的文件从临时目录移动到指定目录。move_uploaded_file($f['tmp_name'],$dest);这是关键

至于发邮件就更加简单,可以使用mail()函数

mail("收件人地址","主题","正文","From:发件人rnReply-to:发件人的地址");

不过mail()需要服务器的支持,在WINDOWS下还需要配置SMTP服务器,一般来说外面的LINUX空间都行。
好像上传文件和发邮件比ASP简单很多,只要调用函数就可以了。ASP还需要用到服务器的不同组件比如FSO、JMAIL什么的。

十天学会PHP说到这里了,我的三大系列文章都用《十天学会》作为名字,想告诉大家的是ASP,PHP,ASP.NET入门都可以是十天,但是精通决不是十天啊,还需要大家自己去研究。
展开更多 50%)
分享

猜你喜欢

十天学会php(3)

Web开发
十天学会php(3)

十天学会php(2)

Web开发
十天学会php(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

十天学会php(1)

Web开发
十天学会php(1)

十天学会php之第十天

PHP
十天学会php之第十天

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

十天学会php之第六天

PHP
十天学会php之第六天

十天学会php之第三天

PHP
十天学会php之第三天

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

设计模式之构建(Builder)模式 建造房子实例分析

设计模式之构建(Builder)模式 建造房子实例分析

PHP 中的类

PHP 中的类
下拉加载更多内容 ↓