根服务器相关的信息,会放在 $_SERVER 这个超级全局变量里面,它也是一个关联类型的数组。在这个文件里,我们可以输出这个变量里的东西去看一下 ...
<?php print_r($_SERVER); ?>
(#查看源代码) , 在这个变量里面,你会看到,有主机名 ... Web 服务器的类型 ... 端口号 ... 文档的根目录等等 ... 下面,我们利用这里面的两个东西去做点事情 ... 一个是 SCRIPT_NAME ... 脚本的名字 .. 还有一个 REQUEST_METHOD .. 请求的类型 ...
(#返回)这里我们先去修改一下 form 标签里面的 action 属性的值 ... 可以让表单提交到它本身所在的这个脚本文件 ...
action="<?php $_SERVER['SCRIPT_NAME']; ?>"
然后我们可以去判断一下 ... 如果当前对这个脚本的请求使用的是 GET 方法 ... 就去显示这个表单 ... 如果用的是 POST 方法 ... 那么我们可以去显示出在表单元素里面填写的内容 ...
先开启一段 php 代码 .. .用 if 去判断一下 .. 判断的条件是 $_SERVER 这个数组里面的 REQUEST_METHOD 这个项目的值,是不是等于 GET... 如果用的是 GET 方法发出的请求,REQUEST_METHOD 的值应该就会是 GET... 如果用的是 POST 方法发生的请求,它的值就会是 POST ..
在这个 if 语句的后面,输入一个冒号 .. 然后关闭这行 php 代码 ...
<?php if($_SERVER[REQUEST_METHOD] == 'GET'): ?>
在这个表单结束的地方,再开始一段 php 代码 ... 用一个 endif ... 结束这个判断 ...
<?php endif; ?>
这几行代码的意思就是,如果当前使用的是 get 方法发生的请求 ...就会去显示这个表单 ...
POST
下面,再去设计一下,如果用的是 POST 方法发生的请求,去把在表单元素里面的填写的内容输出到屏幕上 ...
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST'): ?>
结束这个判断,用一个 endif;
<?php endif; ?>
在它们之间,我们还需要去判断一下,如果用户填写的用户名了邮件地址,才会去显示出他们填写的内容,如果没填写的话,就显示一条提示的文字 ...
判断用户是不是已经在表单元素里填写了内容,可以使用 strlen 这个函数 ... 它可以得到字符串的长度 ... if ... strlen ,$_POST['username'] ,检查一下 $_POST 里面的 username 这个项目的值的长度 ... 如果得到的结果大于0的话,就可以表示用户在这个元素上面填写了一点东西 ...
后面再用两个 && 符号 .. 去连接其它的条件 ... 再去看看 email 元素里面是不是也已经填写了内容 ...
<?php
if (strlen($_POST['username']) && strlen($_POST['email'])) {}
?>
如果这两个条件都是真的... 也就是 username 还有 email 的值的长度都大于 0 的话,这样就去显示它们里面的值 ... echo ... 输出点连接的文字 ... 您好 ... 再用一个点连接 username 的值 ... 然后再去输出 email 里面的值 ...
echo '您好:' . $_POST['username'] . ',您的邮件地址是:' . $_POST['email'];
再去设置一下,如果没有填写内容显示的一个提示的文字 ... else ... echo 输出 ... 请输入正确的用户名与邮件地址。
else {
echo '请输入正确的用户名与邮件地址。';
}
保存 .. 下面去浏览器上预览一下 ...
因为现在我们用的是 get 方法请求的这个页面 ... 所以会显示出这个表单 ... 先不输入内容 ... 直接点击提交 ... 会用 post 的方法把这个请求发送到当前这个脚本文件 ... 因为没有填写内容,所以 ... 提示 请输入正确的用户名与邮件地址 ...
再返回来 ... 输入用户名 ... 密码... 提交 ...
这次,会显示出我刚才输入的用户名还有邮件地址 ...