2014-02-09 2 views
0

초보자는 사용자에게 두 개의 int를 입력 한 다음 합계를 추가하고 합계를 인쇄하는 간단한 양식으로 작업합니다. 나는 여러 번 지나갔고 내 수녀가 숫자를 잡아 내지 못하고 있거나 int가 제대로 초기화하고있는 것 같습니다. 나는 잘 모르겠다 - 나는 신참이고 혼란 스럽다. 어떤 도움을 (그리고 네, 구글과 php.net을 통해 답변을 검색했지만 나는 내가 충분히 내가 그것을 추측 할 정도로 잘 읽고 이해하는 수준이 아니에요) 감사합니다 감사합니다.양식이 값을 반환하지 않습니다 (myTotal = undefined var)

코드 :

<? 

//adder.php 

if (isset($_POST['num1'])) 
{ 
    $num1 = $_POST['num1']; 
    $num2 = $_POST['num2']; 

    $myTotal = $num1 + $Num2; 

    echo "<h2 align=center>You added <font color=blue>" . $num1 . "</font> and "; 
    echo "<font color=blue>" . $num2 . "</font> and the answer is <font color=red>" . $myTotal . "</font>!"; 

    unset($_POST['num1']); 
    unset($_POST['num2']); 
}else{ 
?> 

    <html> 
     <body> 
      <h1 align="center">Adder </h1> 
      <form action="<? print $_SERVER['PHP_SELF']; ?>"> 
      Enter the first number:<input type="text" name="Num1"><br> 
      Enter the second number:<input type="text" name="num2"><br> 
      <input type="submit" value="Add Em!!"> 
      </form> 
     </body> 
    </html> 

<?php 
echo "<br /><a href=" . $_SERVER['PHP_SELF'] . ">Reset page</a>";} 
?> 

답변

1

, 당신은 또한 단지 형태로 얻을 사용 기본적으로 방법을 게시 할 양식을 변경할 수 있습니다

if (isset($_GET['num1'])) 
{ 
    $num1 = $_GET['num1']; 
    $num2 = $_GET['num2']; 
    ... 
+0

고마워요. 이전에 해봤지만 작동하지 않았습니다. 오타/케이싱 문제가 있었기 때문에 지금은 깨달았습니다. 감사합니다 – Chezshire

+0

문제는 없습니다. 이 두 문장이 유용 할 수도 있습니다. 나는 항상 그들을 사용한다 : echo ("

Get Content :"); echo ("

" . print_r($_GET, 1) . "
"); echo ("
내용 게시 :"); echo ("
" . print_r($_POST, 1) . "
"); – rrtx2000

1

대소 문자 구분. 바로 여기 :

<input type="text" name="Num1"> 

그러나 PHP 스크립트에서 "num1"을 찾으십시오. 연관 배열의 키는 대소 문자를 구분합니다.

$thing['foo'];//and 
$thing['Foo'];//are two separate values. 

또한 양식이 기본 방법 인 GET으로 설정되어 있습니다.

action="POST" 

을 속성으로 추가하십시오. 문자열을 구분하기 위해 큰 따옴표를 사용하는 경우에는 문자열 제안을 사용하지 않아도됩니다. 큰 따옴표는 구문 분석기에게 변수가 문자열에있을 수 있으며 문자열을 파싱 할 수 있음을 알려줍니다.

+0

고맙다! 난독증을 앓고있는 사람들은 항상 잡기가 어렵습니다. 'Num1'을 'num1'로 설정했습니다. 그래도 나는 아직도 내 머리를 긁적이지만 그래도 작동하지 않는다. 고맙습니다. – Chezshire

+0

하하하 걱정할 필요가 없습니다. 이러한 일들은 항상 발생합니다. 코드를 살펴보고 더 이상 문제가 없는지 확인합니다. – Zarathuztra

+0

또 다른 케이스 문제 Num2가 있었는데 지금은 맞습니다. 내 vars는 URL 문자열을 인쇄 된 페이지로 변환하지 않는 것 같습니다. 그걸 잡아 주셔서 감사합니다! 다시 내 머리를 긁적. – Chezshire

1

PHP 배열 키는 대소 문자를 구분하고, HTML 양식 요소들이 HTML에서이 동일한 경우에 제출 :

if (isset($_POST['num1'])) 
        ^---small n 

      Enter the first number:<input type="text" name="Num1"><br> 
                  ^---big N 

잘못된 폼 요소를 확인하고 있기 때문에, 귀하의 추가 코드는 않을 것 운영. 당신은 POST를 사용하는

+0

지금은 문제를 해결했지만 여전히 작동하지 않습니다. 그래서 나는 아직도이 머리에 내 머리를 긁적입니다. 도와 주셔서 감사합니다. 한 번 더 가깝습니다. D : 감사합니다. – Chezshire

+1

PHP 변수도 대소 문자를 구분합니다. 추가로'$ Num2'가 있고 다른 곳에서는'$ num2'가 있습니다. –

+0

고마워요 - 코드를 다시 살펴 보았습니다. 내 손가락이 무거웠 던 것 같아서 모든 케이스를 들여다 보았습니다. 나는 num1과 num2를 모두 수정했고 myTotal도 확인했다고 생각한다.내가 코드를 실행하려고하면 'http : //localhost/scc/sccc_2014/_240php/06a_troublshooting/resolved.php? num1 = 2 & num2 = 3'이라는 URL 문자열이 표시되지만 페이지에는 인쇄되지 않습니다. 그것을 설명하는 방법을 모르겠다). – Chezshire

0

GET 사용해야합니다.

다음

당신이 프로를 볼 수 있습니다/단점

http://www.w3schools.com/tags/att_form_method.asp는 내가 언급 한 다른 대소 문자를 구분 실수를 수정했습니다. 나는 PHP도 배우고 있지만 도움이 될 수 있도록 함께 정리해 둔다.

<? 

//adder.php 

if (isset($_POST['num1'])) 
{ 
    $num1 = $_POST['num1']; 
    $num2 = $_POST['num2']; 

    $myTotal = $num1 + $num2; 

    echo "<h2 align=center>You added <font color=blue>" . $num1 . "</font> and "; 
    echo "<font color=blue>" . $num2 . "</font> and the answer is <font color=red>" . $myTotal . "</font>!"; 

    unset($_POST['num1']); 
    unset($_POST['num2']); 
}else{ 
?> 

    <html> 
     <body> 
      <h1 align="center">Adder </h1> 
      <form action="<? print $_SERVER['PHP_SELF']; ?>" method="post"> 
      Enter the first number:<input type="text" name="num1"><br> 
      Enter the second number:<input type="text" name="num2"><br> 
      <input type="submit" value="Add Em!!"> 
      </form> 
     </body> 
    </html> 

<?php 
echo "<br /><a href=" . $_SERVER['PHP_SELF'] . ">Reset page</a>";} 
?> 
관련 문제