2010-05-01 10 views
7

내 문제에 대한 제안 사항이 있으십니까? 같은 시간에 게시하고 게시해야합니다. 사용자가 입력 한 내용을 출력해야하기 때문에 가져옵니다. 그리고 그 입력과 관련하여 mysql 데이터베이스에 액세스해야하기 때문에 게시하십시오.게시하고 동시에 PHP에서 가져 오기

<form name="x" method="get" action="x.php"> 
<input name="year" type="text"> 

<select name="general" id="general"> 
     <font size="3"> 
     <option value="YEAR">Year</option> 

</form> 

이 출력됩니다 사용자가 확인합니다 내용에 따라 MySQL의 내용 : 그것은 다음과 같이 보입니다

<form name="y" method="post" action"y.php"> 
<input name="fname" type="checkbox"> 
</form> 

그리고 다음과 같이 보일 것이다 결합이 두 형태의 조치를 :

<?php 

       if($_POST['general'] == 'YEAR'){ 
        ?> 
        <?php echo $_GET["year"]; ?> 
        <?php 
      $result2 = mysql_query("SELECT * FROM student 
    WHERE student.YEAR='$syear'"); 
    ?> 
    <table border='1'> 
      <tr> 

        <?php if ($ShowLastName) { ?><th>LASTNAME</th><?php } ?> 
        <?php if ($ShowFirstName) { ?><th>FIRSTNAME</th><?php } ?> 
     </tr> 

    <?php while ($row = mysql_fetch_array($result2)) { 
     if (!$result2) { 

    } 
     ?> 
      <tr> 
        <td><?php echo $row['IDNO']?> </td> 
        <td><?php echo $row['YEAR'] ?> </td> 
    <?php if ($ShowLastName) { echo('<td>'.$row['LASTNAME'].'</td>'); } ?></td> 
        <?php if ($ShowFirstName) { echo('<td>'.$row['FIRSTNAME'].'</td>'); } ?> 

이렇게하면 많은 오류가 발생합니다. mysql 데이터와 함께 사용자가 입력 한 값을 가져 오기 위해 내가해야 할 일은 무엇을 추천 할 수 있는가?

+0

정확히 왜'$ _GET'과'$ _POST '를 동시에 사용해야합니까? 당신이 지금까지 준 이유는 말이되지 않습니다. – outis

+0

사실 내 아이디어. 나는 동일한 것을 달성하기위한 대안이 무엇인지 묻고 있습니다 – user225269

+0

마침내이 질문과 이전 질문에 대한 답을 검토하고 가장 도움이되는 질문을 수락하거나 질문을 편집하여 질문 중 하나라도 귀하의 질문을 해결할 수없는 이유를 지적하십시오. 감사. – Gordon

답변

45

HTTP Request을 수행 할 때 verb (POST, GET, PUT, ...) 중 하나만 사용할 수 있습니다. 그러나

<form name="y" method="post" action="y.php?foo=bar"> 

을 할 수 있고, 전송 요청이 POST'ed 있었지만 다음 PHP는뿐만 아니라 $_GET['foo']을 채 웁니다.

그러나 문제는 두 개의 다른 스크립트로 지정되어 send two forms at once으로 보내려는 것보다 훨씬 더 많은 것으로 보입니다. 그것은 하나의 요청 내에서 불가능합니다.

+0

일부 JavaScript의 경우 제출하기 전에 조치를 수정할 수 있습니다. 이봐 요, 고마워! 고마워! – dpp

+0

좋은 방법입니까? 나는 웹 서비스 REST API를 만들기 위해 메소드 이름을''$ _GET''과 특정 메소드 params를''$ _POST''로 보내려하고있었습니다. 그러나 이것에 대한 권고 사항이 있는지 알고 싶었습니다. –

+0

@ JuanCarlosAlpizarChinchilla가 "메소드 이름을 보내십시오"라는 의미가 확실하지 않습니다. REST API는 대개 메소드 이름을 보내지 않습니다. 나는 동사에 대한 링크에서 이미 제시된 바깥의 기술에 대한 추천이나 반대에 대한 권고를 알고 있지 않다. – Gordon

4

GET 및 POST를 동시에 수행 할 수 없습니다.

두 양식을 하나로 결합하십시오.

예를 들어 양식을 하나의 '게시'양식으로 결합하십시오. 코드에서 $ _POST에서 필요한 것을 추출합니다.

'연도'와 '연도'가 같지 않아 샘플 코드도 작동해야합니다.

3

다른 답변을 통해 saig는 (는) 동시에 get 및 post 요청을 수행 할 수 없습니다. 그러나 get 또는 post 요청을 통해받은 변수를 읽으려고 PHP 코드를 통합하려는 경우 $_REQUEST

3

POST 및 GET (HEAD, FILE, DELETE 등)은 HTTP methods입니다. 당신은 (웹 스니퍼에서 요청 헤더의 예를) 동시에 두 방법을 보낼 수 없도록 브라우저가 요청의 앞에 그들 중 하나를 사용하여 서버에 HTTP 요청을 보내

GET/HTTP/1.1[CRLF] 
Host: web-sniffer.net[CRLF] 
Connection: close[CRLF] 
User-Agent: Web-sniffer/1.0.31 (+http://web-sniffer.net/)[CRLF] 
Accept-Encoding: gzip[CRLF] 
Accept-Charset: ISO-8859-1,UTF-8;q=0.7,*;q=0.7[CRLF] 
Cache-Control: no[CRLF] 
Accept-Language: de,en;q=0.7,en-us;q=0.3[CRLF] 
Referer: http://web-sniffer.net/[CRLF] 

큰에게 GETPOST과의 차이는 URL에서 응답을 검색하고 POST가 해당 URL에 일부 콘텐츠 데이터를 보내야한다는 것입니다. 양식을 제출할 때 데이터는 enctype 속성에 정의 된 표준 형식으로 수집되며 이번에는 URL로 전송됩니다.

또한 URL은 표준 방식으로 지정되며 문자열의 일부는 뒤에 있습니까? 문자는 QUERY STRING입니다.

서버가 데이터를 수신하면이 정보를 PHP에 전달하여 URL을 읽고 요청의 본문 (데이터) 및 다른 많은 것들을 읽습니다. 마지막으로 은이 데이터로 수퍼 글로벌 배열을 채워 사용자가 보낸 내용을 알려줍니다 ($_SERVER, $_GET$_POST 등).

중요 공지! 또한 PHP가 $ _GET 수퍼 글로벌을 URL의 쿼리 문자열로 채우고 요청 본문에있는 데이터로 $ _POST 수퍼 글로벌을 채우는 경우 $ _POST 및 $ _GET은 (는) HTTP과 관련이 없습니다.

<form method="post" action="http://myurl/index.php?mygetvar=1&mygetvar=2"> 
    <input name="year" type="text" /> 
    <imput type="submit" /> 
</form> 
2

내가이 시험하지 않았다하지만 가능한 해결책 : 당신이 $ _POST같은 시간에 $ _GET를 입력하려면

그래서, 당신은이 방법으로 양식을 보내야합니다 변수는 무관하지 얻을 포함 그 이전 버그 : 그것은 완전히 증거가 바보가 아닌 것

$request_uri = $_SERVER['REQUEST_URI']; 
$request_uri = str_replace("&", "?", $request_uri); 
$request_args = explode("?", $request_uri); 
foreach($request_args as $key => $val) { 
    if(strpos($val, "=") > 0) { 
     $nvp_temp = explode("=", $val); 
     $_GET[$nvp_temp[0]] = $nvp_temp[1]; 
    } 
} 

... 양식의 작업 값을 통해 GET 변수를 보내는 내가 헤더 ("위치")에 문제가 가로 질러 g는 $ _GET 아래에있는 서버에서 URL이 http://website.com/page?msg=0 인 것으로 보이지만 $ _SERVER [ 'REQUEST_URI'] 변수에있었습니다. 희망이 도움과 행운을 빕니다!

관련 문제