2013-03-15 3 views
1

확인란이 제대로 작동하지 않습니다. 3 개의 체크 박스가 있습니다. 세 가지 확인란을 모두 선택하면 오류가 발생하지 않습니다. 하지만 나는이 같은 오류가 발생하고 1 또는 2 확인란을 선택하면 :간단한 PHP 프로그램이 작동하지 않습니다.

공지 사항 : 정의되지 않은 인덱스 : C에서 chke : \ WAMP \ WWW \ 테스트 \의 secpage.php을 줄에 16

<html> 
<body> 
<table> 
    <form method="post" action="secpage.php"> 
     <tr> 
      <td colspan="2"><center><h4>Registartion Form</h4></center></td> 
     </tr> 

     <tr> 
      <td>Username : </td> 
      <td><input type="text" name="txtname" value=""/></td> 
     </tr> 

     <tr> 
      <td>Password : </td> 
      <td><input type="password" name="txtpass" vale=""/></td> 
     </tr> 

     <tr> 
      <td>Email : </td> 
      <td><input typ="text" name="txtemail" value=""/></td> 
     </tr> 

     <tr> 
      <td>Address : </td> 
      <td><textarea name="add" /></textarea></td> 
     </tr> 

     <tr> 
      <td>Subjects : </td> 
      <td><input type="checkbox" name="chkm" value="Maths"</td>Maths 
      <td><input type="checkbox" name="chks" value="Science"</td>Science 
      <td><input type="checkbox" name="chke" value="English"</td>English 
     </tr> 

     <tr> 
      <td>Gender : </td> 
      <td><input type="radio" name="gen" value="Male"/>Male 
       <input type="radio" name="gen" value="Female"/>Female 
      </td> 
     </tr> 

     <tr> 
      <td colspan="2"><center><input type="submit" value="Submit"/></center></td> 
     </tr> 



</body> 
</html> 

어떤 도움을 이해할 수있을 것이다

<html> 
<body> 
<?php 
    $uname=$_POST["txtname"]; 
    $pass=$_POST["txtpass"]; 
    $email=$_POST["txtemail"]; 
    $add=$_POST["add"]; 
    $subm=$_POST["chkm"]; 
    $subs=$_POST["chks"]; 
    $sube=$_POST["chke"]; 
    $gen=$_POST["gen"]; 
?> 

<table> 
<tr> 
    <td>Username : </td> 
    <td><?php echo $uname; ?></td> 
</tr> 

<tr> 
    <td>Password : </td> 
    <td><?php echo $pass; ?></td> 
</tr> 

<tr> 
    <td>Email : </td> 
    <td><?php echo $email; ?></td> 
</tr> 

<tr> 
    <td>Address : </td> 
    <td><?php echo $add; ?></td> 
</tr> 

<tr> 
    <td>Subject Selected : </td> 
    <td><?php echo $subm." ".$subs." ".$sube; ?></td> 
</tr> 

<tr> 
    <td>Gender : </td> 
    <td><?php echo $gen ?></td> 
</tr> 

</table> 
</body> 
</html> 

: 이 PHP 페이지입니다.

+0

변경 베일 = ""/> 값 = ""당신은 잊었 /> – swapnesh

+0

입력 요소를 닫습니다? 누락> –

답변

0

체크되지 않은 체크 박스는 게시물의 값을 보내지 않습니다. 따라서 $_POST["chke"]은 실제로 존재하지 않습니다. 게시물의 가치를 확인하기 전에 존재 여부를 확인해야합니다.

if(isset($_POST["chke"])) 
    $sube = $_POST["chke"]; 
0

입력 체크 박스 태그가 불완전합니다. 따라서 PHP는 귀하의 게시물 가치를 읽을 수 없습니다.

또한 "확인"되어 있지 않으면 POST 값이 전송되지 않습니다.

1

당신은 checkbox.

을 종료하는 것을 잊지 그리고 당신은 체크 박스를 확인하지 않고 양식을 게시 할 경우 당신은 지금 점점로 그것은 당신에게 오류를 줄 것이다.

@을 사용하여이 오류를 무시할 수 있지만 이는 최선의 방법은 아닙니다.

또한

if(isset($_POST["chkm"])) 
{ 
    $subm=$_POST["chkm"]; 
} 

당신은 if 값이 위의 조건을 사용하여 설정되지 않았거나 확인할 수 있습니다.

<?php 

    function get_expected_post($expected = array()){ 
    $ret = (object) NULL; 
    foreach ($expected as $key) { 
     $ret->{$key} = array_key_exists($key, $_POST) ? $_POST[$key] : NULL; 
    } 
    return $ret; 
    } 

    $post = get_expected_post(array(
    'txtname', 
    'txtpass', 
    'txtemail', 
    'add', 
    'subm', 
    'subs', 
    'sube', 
    'get' 
)) 

?> 

보다 쉽게 ​​확장 할 수 그런 식 : 당신을 위해이 문제를 처리하는 함수를 만들 일반적으로 더 좋아하지만

<?php 
    $uname = array_key_exists("txtname", $_POST) ? $_POST["txtname"] : NULL; 
    $pass = array_key_exists("txtpass", $_POST) ? $_POST["txtpass"] : NULL; 
    $email = array_key_exists("txtemail", $_POST) ? $_POST["txtemail"] : NULL; 
    $add = array_key_exists("add", $_POST)  ? $_POST["add"]  : NULL; 
    $subm = array_key_exists("subm", $_POST)  ? $_POST["subm"]  : NULL; 
    $subs = array_key_exists("subs", $_POST)  ? $_POST["subs"]  : NULL; 
    $sube = array_key_exists("sube", $_POST)  ? $_POST["sube"]  : NULL; 
    $gen = array_key_exists("gen", $_POST)  ? $_POST["get"]  : NULL; 
?> 

:

0

다음과 같은 무언가가 당신의 undefined index 오류를 해결합니다 다음 항목에 액세스 할 때마다 —의 존재 여부를 확인할 수 있으므로 오류가 발생하지 않습니다.

<?php echo $post->subm; ?> 

스크립트에서 게시물 이름을 다른 이름으로 변환하려면 위의 내용을 확장 할 수 있습니다. 또한 예상 값에 대한 값을 파싱하는 등의 추가 보안을 추가 할 수도 있습니다.당신의 HTML에서

0

당신은 지금 당신이

$checkbox = $_POST['chk']; 

$ 확인란을 할 수있는 PHP 파일에서

<td><input type="checkbox" name="chk[]" value="Maths"</td>Maths 
<td><input type="checkbox" name="chk[]" value="Science"</td>Science 
<td><input type="checkbox" name="chk[]" value="English"</td>English 

그런 다음 각 체크 박스의 이름을 동일하게 설정하려는 것이다거야 선택된 각 체크 박스의 배열이됩니다.

유사 여기에 문제 PHP and HTML Checkboxes using POST

관련 문제