一个index.html,我在index.php文件include(“index.html”),这样写的
index.html里有个input,现在主要是input这里无法理解
index.php:
<?php
if(empty($_POST)){
include(“index.html”);
}else{
$catname['cat']=$_POST['cat'];
....后面代码省略
}
既然开始判断post为空,加载index.html,
else就是不为空,不为空没说加载index.html
没有加载index.html,就没有input,就没有$catname['cat']=$_POST['cat'];
但例子却是可以运行的,没报错。怎么理解啊?
?>
<p>当你post的时候,index.html已经在网页上显示出来了</p>
可以这样理解啊?我自己认为是if为空,就加载,否则else就不加载
get显示表单,
post获取数据,插入数据库。 两者都有输入输出,这里只不过get的时候注重输出,post注重输入。 你post的时候如果输入数据符合要求,那么写入数据库,提示用户保存成功,然后跳转页面,基本没有输出。当用户输入数据不符合要求,就要include给他重填。
input表单在index.html里,if如果post空加载带有input的index.html,不为空就没说加载index.html,input就不能传数据了
<p>if 这段是为了展示input 表单;</p>
else是为了处理表单提交;
<p>你是不了解前后端交互逻辑,input是在index.html里渲染好了,然后post到后端,$_POST是从http的请求头里提取的,而不是从浏览器渲染的input里直接获取。</p>
所以你最好复习一下,浏览器(前端)和服务器(后端)之间的交互逻辑吧。
回复 <a class="referer" target="_blank">@超爱代码语言</a> : 在你展示的代码里,$catname['cat']=$_POST['cat'];和 include与否何来因果关系?
不是那个意思,是这样的if($a>5){
echo ,9;}else{ echo 10; } 如果$a=8,结果肯定是9,不会9和10都输出
<p>当你第一次运行index.php 是 $_POST是没有值得 所以渲染index.html文件 </p>
这时浏览器拥有input框和from
当你提交表单时from的action应该是提交到index.php文件
这是你第二次运行index.php 这时$_POST有值 运行else
<p>你不会打印$catname吗? 不用纠结那么多,报错也有多种,即使不存在$_POST['cat'],也就是报warning,程序一样可以运行啊。</p>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。