PHP函数调用直接为HTML表单操作
我发现下面的HTML表单代码PHP函数调用直接为HTML表单操作
<form action="<?php foo(bar)?>" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="submit">
</form>
正常工作时foo(bar)
是在当前范围内可用的功能。
我对php和html非常陌生,无法在线找到此功能的任何文档。使用<?php foo(bar)?>
而不是调用脚本文件foo.php
有什么缺点吗?
PHP函数不会被称为HTML表单动作。
实际上PHP函数将在之前执行服务器将表单发送到您的浏览器,因此表单的行为将是由foo函数打印的值(如果有的话)。
只需打开从服务器收到的网页源代码,就不会再看到PHP代码。
这不行。在将HTML发送到浏览器之前,服务器正在执行PHP。
但这里有一个想法:
<?php
function foo($bar)
{
echo $bar;
}
if (isset($_POST['func'])){
foo($_POST['file']);
}
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="hidden" name="func" id="file" value="foo">
<input type="submit" name="submit" value="submit">
</form>
但IMO一个更好的办法是使用卷曲或其他网址醒目和指向到控制器系统,例如像与框架
谢谢你的解决方案pc-shooter。 – Philiphorst 2014-09-04 13:17:40
似乎还没有足够的声誉。对不起 – Philiphorst 2014-09-04 13:46:12
哦,是的,没有看到。所以继续提问;-) – 2014-09-04 13:48:21
谢谢分形理论澄清。经过一番调查发现,我的代码实际上并没有工作,正如你所建议的。 – Philiphorst 2014-09-04 13:14:53