php 基础(三) :php进行web开发

作者:陆金龙    发表时间:2014-12-20 17:33   


本文是阅读电子书PHP学习资料汇总后,根据本人的心得整理而来。

1.Form表单

1) php表单传值

< form method="POST" action="login.php"> 
用户名:<input type="text" name="user" size="10"><br/>
密 码:<input type="text" name="pass" size="10"><br/>
<input type="submit">
< /form>

login.php中的处理

<?php 
$user=$_POST['user']; //如果是get请求$user=$_GET['user']; 
$pass=$_POST['pass'];
echo "您的用户名:".$user;
echo "您的密码:".$pass;
?>

也可以不用变量接收参数,变量$user和$pass在脚本 "login.php"中被自动创建,并且表单里用户输入的值也被赋给该变量

<?php
echo "您的用户名:".$user;
echo "您的密码:".$pass;
?>

2) 利用$submit判断是否表单提交

利用$submit变量,对一个页面进行登录和提交后的情况分别处理

 < input type="submit" name="submit" value="提交">  为submit元素设置name属性,这样在提交时即可传递$submit变量 

 示例如下:

<?
if (!$submit) 

    // 如果$submit不存在, 还没有提交。因此显示第一个页面。
?>

< html> 
< head>< /head>
< body>

< form method="GET" action="login.php"> 

用户名:<input type="text" name="user" size="10"><br/>
密 码:<input type="text" name="pass" size="10"><br/>
          <input type="submit" name="submit" value="登录" />

< /form> 
< /body>
< /html>
< ? 

else 
{

//处理登录

?>
< html> 
< head> < /head>
< body>

<?php 
echo "您的用户名:".$user;
echo "您的密码:".$pass;
?>

< /body> 
< /html>
< ? 

?>

2.发送文件和邮件

1)上传文件:type="file"的input标签

客户端:

form标签必须加上 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函数实际上是把上传的文件从临时目录移动到指定目录。 

2)发邮件:使用mail()函数

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

3.使用Session

SESSION最多用的是站点内页面间变量传递。在页面开始要session_start();开启SESSION;
赋值使用:$_SESSION['item']="item1";取值使用$item1=$_SESSION['item'];

示例:

登录页login.php中判断用户名密码是否正确。

<form action="checklogin.php" method="post">
    <input name="username" type="text" id="username">
    <input name="password" type="password" id="password">
    <input type="submit" name="Submit" value="Submit">
    <input type="reset" name="Submit2" value="Clear">
</form>

checklogin.php中处理
<?
require_once('conn.php');
session_start();

$exec="select * from user 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 "<script>alert('Password Check Error!');location.href='login.php';</script>";
  }
 }
 else
 {
  echo "<script>alert('Username Check Error!');location.href='login.php';</script>";
 }
 }
else
{
echo "<script>alert('Database Connection Error!');location.href='login.php';</script>";
}

?>

conn.php是这样:

<?
$conn=mysql_connect ("127.0.0.1", "", "");
mysql_select_db("mydatabase"); 
?>

由于 $_SESSION['adminname']=$username;我们可以这样写验证是否登录语句的文件:checkadmin.php

<?
session_start();//使用SESSION的时候注意不要遗漏session_start();
if($_SESSION['adminname']=='')
{
echo "<script>alert('Please Login First');location.href='login.php';</script>";
}
?>

4.数据分页展示

用SQL语句中的limit来限定查询记录的起始和终止位置。需要一个记录当前页的变量$page和总共的记录数$num和每页的记录$pagesize。

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

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

这样可以得到记录总数

ceil($num/$pagesize))  //这个就是总的页数

所以可以这么写

if(empty($_GET['page']))
{
 $page=1;
}
else
{
 $page=$_GET['page'];
 if($page<1)$page=1;
 if($page>=ceil($num/$pagesize))
    $page=ceil($num/$pagesize);
}

这样$exec这么写 $exec="select * from tablename limit ".(($page-1)*$pagesize).",$pagesize";

最后做的几个链接:

<a href="UserList.php?page=1">FirstPage</a> 
<a href="UserList.php?page=<?=($page-1)?>">PrevPage</a> 
<a href="UserList.php?page=<?=($page+1)?>">NextPage</a> 
<a href="UserList.php?page=<?=ceil($num/10)?>">LastPage</a>