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

三、php进行web开发

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变量,在一个页面进行登录和提交后的处理

 < 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.发送文件和邮件

上传文件: 表单中必须加上 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:发件人\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。

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

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

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

所以可以这么写
if(empty($_GET['page']))
{
$page=1;
}
else
{
$page=$_GET['page'];
if($page<1)$page=1;
if($page>=ceil($num/10))

   $page=ceil($num/10);
}

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

最后做的几个链接:
<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>

 

上一篇:php基础(二):php操作Mysql

下一篇:php Mvc框架

posted @ 2014-03-02 15:38  kinglong1984  阅读(5095)  评论(0编辑  收藏  举报