HTML表单无法向同文件PHP传数据,请求排查错误并指导
嘿,我帮你找出了代码里的核心问题,还有一些实用的优化建议,咱们一步步来解决:
1. 修复超全局变量的大小写错误
PHP的超全局变量是严格区分大小写的,你代码里写的$_post是小写的p,这是导致表单提交后PHP没反应的关键原因——正确的写法应该是大写的$_POST。另外你还笔误写了Yes is is,我顺便帮你改成了Yes it is。
错误代码行:
<?php if(isset($_post['submit'])){ echo "Yes is is working"; } ?>
修正后:
<?php if(isset($_POST['submit'])){ echo "Yes it is working"; } ?>
2. 表单action属性的灵活写法
既然你的PHP代码和HTML表单在同一个文件(test.php)里,完全不用硬写文件名,把action设为空字符串action="",或者用$_SERVER['PHP_SELF']动态获取当前文件路径会更灵活,避免后续改文件名时还要修改这里:
<form action="" method="post"> <!-- 或者更严谨的安全写法 --> <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
(加上htmlspecialchars()是为了防止XSS攻击,属于实用的安全小细节)
完整修正后的代码
<?php if(isset($_POST['submit'])){ echo "Yes it is working"; } ?> <!DOCTYPE html> <html> <head> <title>testing form</title> </head> <body> <br><br><br><br> <form action="" method="post"> <input type="text" name="name" placeholder="Enter Name"><br> <input type="text" name="location" placeholder="Enter location"><br> <input type="submit" name="submit"> </form> </body> </html>
测试步骤
- 把上面的代码保存为
test.php - 在浏览器中打开这个文件,随便输入点内容后点击提交按钮
- 页面顶部应该会显示
Yes it is working,这就说明表单数据已经成功传递给同一文件里的PHP代码啦
内容的提问来源于stack exchange,提问作者Maqsood Quraishi




