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 Mvc框架