php的web编程基础
HTTP协议
互联网使用的是TCP/IP协议 ,浏览www使用的是HTTP协议(超文本传输协议:HyperText Transfer Protocol),此协议建立在TCP/IP协议之上.
HTTP协议定义了这个请求/响应过程中请求和响应的格式,及维护HTTP链接的内容.
创建HTML表单
在HTML中使用标签<form>和<\form>创建一个表单。<form>两个主要属性:action:处理这些数据的程序地址
<form action=“login.php”>
method:以何种HTTP方式传递数据。如:post(将表单数据放到HTTP数据的正文部分传递),get(将表单数据加到action所指的地址之后传递)。
访问和获取HTML表单数据
php中的两个预定义变量$_GET 和 $_POST ,他们都是php的全自动变量,可以在php程序中直接使用。
用POST方式传输数据。
$_POST是一个数组,每个元素类似一个键值对。
获取表单数据
$user_name= $_POST[‘user_name’]
获取 $_POST中的“user_name”的值,并赋值给一个变量。
在表单中出现多选框的时候,需要注意:用数组方式命名,并为其value赋值。
用php验证数据的有效性
php中的session
session是指用户进入网站到浏览器关闭的这段时间(或过程)。通过session记录用户的有关信息,以供用户以此身份向服务器发起请求时,服务器能够做出正确的判断,区分不同用户的请求。
php中是通过注册一些session全局变量,在不同的页面使用这些变量。这样可以通过session完成用户身份认证,程序状态和页面之间数据传递等功能。
在使用session的页面中需要使用session_start()函数,他表示开始或返回一个已经存在的session,这个函
数要在浏览器有任何输出之前调用。
//文件名:function_session.php
<?php
session_start();
$_SESSION['user']="张三";
$_SESSION['explain']="这是function_session.php中的session变量";
echo "这个页面已经通过session保存了一些变量";
echo " <br> <a href='use_session.php'>进入use_session.php </a>";
?>
//文件名:use_session.php
<?php
session_start();
echo $_SESSION['user']."<br>";
echo $_SESSION['explain']."<br>";
echo "<a href='function_session.php'>返回function_session.php</a>" ;
?>
注意:这里的浏览器需要支持cookie
php中的文件上传
这里还是利用了<form>表单
<form enctype="multipart/form-data" action="somefile.php" method="POST">
示例:
在php程序中使用全局变量 $_FILES 处理文件上传, $_FILES是一个数组,包含很多要上传的文件的信息:
.html 文件用于制作表单
.php文件用于处理数据
//文件名:upload_file.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传表单</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="upload_file.php">
上传文件: <input type="file" name="myfile" value="" placeholder="">
<input type="submit" name="" value="上传">
</form>
</body>
</html>
//文件名:upload_file.php
<?php
//将文件移到服务器的根目录小的upload目录下,需要事先建好upload目录
$upload_path=$_SERVER['DOCUMENT_ROOT']."/20191023"."/upload/";
echo $upload_path."<br>";
$dest_file=$upload_path.basename($_FILES['myfile']['name']);
echo $dest_file;
//将临时文件移至目标文件夹
if(move_uploaded_file($_FILES['myfile']['tmp_name'], $dest_file))
{
echo "文件已上传至服务器根目录下的20191023文件夹的目录的upload目录下";
}
else{
echo "上传时发生一个错误".$_FILES['myfile']['error'];
}
?>