2014-09-04 4 views
0

나는 foo(bar)는 현재 범위에서 사용할 수있는 기능이 때 HTML 양식 코드 다음PHP 함수 호출

<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> 

잘 작동 것으로 나타났습니다.

저는 PHP와 HTML에 익숙하며 온라인으로이 기능에 대한 문서를 찾을 수 없습니다. 스크립트 파일 foo.php을 호출하는 대신 <?php foo(bar)?>을 사용하는 데 단점이 있습니까?

답변

1

PHP 기능은 HTML 양식 작업으로 호출되지 않습니다.

실제로 서버가 브라우저에 양식을 전송하기 전에이 실행되므로 양식의 동작은 foo 기능에 의해 인쇄 된 값이됩니다.

서버에서받은 웹 페이지의 소스를 열면 더 이상 PHP 코드가 표시되지 않습니다.

+0

Fractaliste에 감사드립니다. 약간의 조사가 끝나면 내 코드가 실제로 작동하지 않는다는 것이 밝혀졌습니다. – Philiphorst

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을 끄는 앤 가리키는 - 컨트롤러, 예를 들어 같은 시스템 프레임 워크

+0

그 해결책에 대한 PC 사수 감사합니다. – Philiphorst

+0

아직 평판이 충분하지 않습니다. 죄송합니다 – Philiphorst

+0

오, 그래, 그것을 보지 못했습니다. 그래서 계속 질문을하십시오 ;-) –