php函数调用直接作为html表单动作

时间:2014-09-04 12:51:42

标签: php html html-form

我发现遵循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是否有任何缺点?

2 个答案:

答案 0 :(得分:1)

不会将PHP函数作为HTML表单操作调用。

实际上PHP函数将在服务器将表单发送到浏览器之前执行,因此表单的操作将是foo函数打印的值。如果有的话。

只需打开从服务器收到的网页源代码,您就不应再看到PHP代码了。

答案 1 :(得分:0)

这不会起作用。在将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更好的方法是使用CURL或其他 url-catch-and-pointing-to-controller 系统,例如:使用框架