2011-04-07 4 views
0

안녕하세요! 나는 PHP의 초보자이다. 나는 학생의 학년을 입력 할 수있는 html을 사용하여 양식을 만들었다. 그런 다음 PHP 페이지가 통과하는지 여부를 알 수 있습니다. 내 문제는 html 페이지에서 답장을 어떻게 다시 보낼 수 있는가입니다. 예제 양식의 html 페이지에서 실패한 상태를 보내려면 어떻게해야합니까? 다음과 같이php HOW 양식과 동일한 페이지에 항목을 보내려면

내 코드는 다음과 같습니다 당신은 이메일로 보내 의미하는 경우

<HTML> 
    <BODY> 
    Please enter your grade (0-100 only): 
    <FORM ACTION="grade2.php" METHOD="POST"> 
    <table border = "1"> 
     <tr> 
      <td>Grade</td> 
      <td><input type="text" name="grade" /></td> 
     </tr> 
    </table> 
    <INPUT type="submit" name="submit" value="grade"> 
    </BODY> 
    </HTML> 


<?php 

$grade = $_POST['grade']; 
IF ($grade>=0 && $grade<=50){ 
    print "You failed"; 
} ELSE IF ($grade<=60){ 
    print "You Passed! But Study Harder!"; 
} ELSE IF ($grade<=70){ 
    print "Nice"; 
} ELSE IF ($grade<=80) { 
    print "Great Job"; 
} ELSE IF ($grade<=90){ 
    print "Excellent"; 
} ELSE IF ($grade<=100){ 
    print "God Like!"; 
} ELSE { 
    print "Invalid Grade!"; 
} 

?> 

답변

1

양식과 메시지가 모두 포함 된 PHP 페이지 하나만 사용하십시오. 예를 들어

<form action="grade.php" method="post"> 
    <!-- form elements, etc --> 
</form> 
<?php 
if (isset($_POST['grade'])) { 
    $grade = (double) $_POST['grade']; 
    // if statements, print message, etc 
} 
?> 
-1

, 메일() 함수를 사용합니다.

결과를 화면에 인쇄한다는 의미라면 echo를 사용하십시오.

<?php 

$grade = $_POST['grade']; 
IF ($grade>=0 && $grade<=50){ 
    echo "You failed"; 
} ELSE IF ($grade<=60){ 
    echo "You Passed! But Study Harder!"; 
} ELSE IF ($grade<=70){ 
    echo "Nice"; 
} ELSE IF ($grade<=80) { 
    echo "Great Job"; 
} ELSE IF ($grade<=90){ 
    echo "Excellent"; 
} ELSE IF ($grade<=100){ 
    echo "God Like!"; 
} ELSE { 
    echo "Invalid Grade!"; 
} 

?> 

이 표준인지 아닌지 또한, 나는 (나는 보통 그런 식으로 표시되지 않습니다) 모르겠지만, 당신의 IF/ELSE 문에서 모두 대문자를 가지고 정말 어떤 이유로 날 귀찮게.

+0

'print'와'echo'는 같은 기본 기능을 수행합니다 – Phil

+0

그래, 에코는 더 차갑다. – Thomas

1

내가 그 지금 나타나지 않도록 할 수 있습니다 볼 수있는 유일한 문제 인쇄 문이 <body> 태그 외부에 있다는 것입니다 (파일을 가정하는 것은 grade.php입니다).

파일

1

가의 맨 끝으로 이동

</BODY> 
</HTML> 

당신이 사용할 수있는 두 가지 방법입니다.

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 

를하거나 빈 액션 경기장을 떠나지 :

당신은 스크립트 파일 이름을 에코 할 수 있습니다. 그러면 페이지가 다시로드됩니다. 스크립트의 상단에

<form action="" method="post"> 

, 다시로드에 POST 변수의 존재에 대한 시험 :

if (isset($_POST['submit'])) { 

그리고 그것 뿐이다.

+1

**'htmlspecialchars()'또는'htmlentities()'를 사용하여 처음에는 위조하지 않고 양식 액션에서'PHP_SELF'를 사용하지 마십시오. Google [PHP_SELF XSS] (http://www.google.com/search?q=PHP_SELF+XSS) – Phil

+0

다른 사람이 두 번째 옵션을 사용할 수 있습니까? PHP가없는 것? –

관련 문제