2011-01-28 1 views
-2

등록 양식을 만들었습니다. 이제 DB에 레코드를 추가하기 위해 POST 메서드로 다른 PHP 파일에 데이터를 전송합니다. 여기서는 유효성 검사를하고 레코드를 추가합니다. POST/GET으로 데이터를 보내고 가져 오지 않고 같은 파일에서 처리 할 수 ​​있습니까? 그렇지 않다면, 그 이유는 무엇입니까?Get/Post 메서드를 사용하지 않고 동일한 파일의 PHP 만 사용하여 양식을 제출하고 DB에 레코드를 추가 할 수 있습니까?

EDIT : 동일한 PHP 파일로 전송도 보내고 리소스를 잃는 것입니다. 나는 GET/POST에 의한 전송과 동일한 Get/POST에 의한 시간 낭비를 피하고자하기 때문에이 질문을한다. 그리고 그것이 가능하지 않다면, 왜 PHP가 허용하지 않는지 이해하고 싶습니다.

+0

내가 왜 투표가 끝났는지 알 수 있었으면 좋겠습니다. – Narek

+1

메신저는 "어리석은"질문 때문에 downvoted를 얻는다고 추측합니다. 모든 언어의 웹 응용 프로그램은 클라이언트 서버 응용 프로그램입니다. 결국 어떤 목적 으로든 서버와 데이터를 송수신해야합니다. 그것의 작동 방식, 기간. 나는 아래쪽 투표에 동의하지 않는다. 그 질문은 (초보자를 위해서 지식 스눕을 시작하지 않는다면) ... 그러나 당신의 요점은 이것이 당신이 지금 쯤 알게 될 것이라고 제안하는 것 같다. 피할 수없는 것처럼 보인다. :-) – prodigitalson

답변

3

호처럼 그 주위에 방법이 될 수 없습니다.

사용자가 켜져있는 전체 페이지를 다시로드하지 않으려면 AJAX를 통해 데이터를 처리하고 해당 데이터를 추가하는 PHP 파일에 데이터를 제출할 수 있습니다. 그렇게하면 사용자는 절대로 페이지를 떠나지 않습니다.

+0

그것의 PHP가 아니 .... 그 어떤 클라이언트 서버/응용 프로그램에서, 당신은 원시 HTTP 스트림이나 뭔가 대신 http 게시물 또는 뭐든간에 사용하고있을 수도 있지만 ...하지만 당신은 여전히 ​​데이터를 앞뒤로 보낼 두 사람을 닮았다. 이유는 무엇이든간에 의사 소통을해야하기 때문이다. – prodigitalson

0

가능합니다. 예 :

<?php 
if(true === isset($_POST['submit']) // check if submit-button was clicked 
{ 
    // do some validation here... 

    // If validation successes add record into db here... 
} 
else // no post data sent so output the form 
{ 
    // output the form here... 
} 
0

예. 쉽습니다. 양식은 자기 자신에게 다시 게시 할 수 있습니다. 이것은 form 태그에 action 값을 지정하지 않아도 쉽게 수행 할 수 있습니다.

<form method='POST'> 

페이지 상단에 내용이 표시되기 전에 if 문을 포함하여 양식이 제출되었는지 확인하십시오.

if (isset ($_POST['post'])) { // 'post' is the name of the submit button 
    $error = false; 
    // Do validation 

결과에 따라 검증을 수행하고 그에 따라 행동하십시오.
할 일이 많으면 다른 파일에 넣고 포함 시키십시오. 모두가 잘 모든 테스트

if ($error === false) { 
     Header ("Location: confirmation.php"); 
     exit; 
    } 
} 

테스트가 실패하면 사용

을 통과하는 경우

include "formValidation.php"; 

모든 포스트 데이터를 유지하는 페이지에 체류하고 오류를 표시합니다.

if (isset ($error) && !empty ($error)) { 
    echo "<div class='error'>$error</div>"; 
} 
0

예는 폼 태그 가능한 세트를

조치 = "동일한 페이지"

이다. 같은 페이지에서 모든 양식 속성에 액세스 할 수 있습니다.

1

예. 은 $ _POST가 설정되어있는 경우 당신의 형태로

"조치"당신의 PHP 페이지 검사의 시작 부분에 다음

$_SERVER['PHP_SELF'] 

를 넣어 여부 당연히

if(isset($_POST)) 
{ 
    // actions to be taken after form submission 
} 

당신은 숨겨진 입력을 추가 할 수 있습니다 태그를 사용하여 $ _POST를 검사합니다. 예를 들어, 귀하의 형태로

<input type="hidden" name="formSubmit" value="yes" /> 

은 수표 당신은 항상 클라이언트에서 서버로 데이터를 전송해야

if(isset($_POST['formSubmit'])) 
{ 
     // actions to be taken after form submission 
}