$ _POST在php中不起作用

时间:2011-01-11 07:58:12

标签: php

我是新来的,我有一个问题。我有一个问题,我无法用_POST弄明白。在开始写作之前我一直在寻找几个小时!据我所知,我没有为其他类似问题(表单动作......,名称属性......等)发布任何错误。拜托,请查看下面的代码,告诉我我做错了什么?

我在Windows 7上使用xampp 1.7.3。


<?php require("includes/header.php"); ?>
<?php require_once("includes/connection.php"); ?>
<?php require_once("includes/functions.php"); ?><head>
<script type="text/javascript">

function theChecker()
{
 if(document.getElementById('checker').checked){
     document.getElementById('submitter').disabled=false;
 }
 else{
     document.getElementById('submitter').disabled=true;
 }
}
</script>

</head>

<?php require("includes/body_no_menus.php"); ?>

<div align="center">
<form name="signup" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

 <?php

 echo "<hr/>
<table width='600' border='0'>
  <tr>
    <td width='237'>Κωδικός οικοδομής</td>
    <td width='351'><input name='building_id' type='text' id='building_id' size='30' maxlength='40' />*</td>
  </tr>
  <tr>
    <td>Κωδικός διαμερίσματος</td>
    <td><input name='apartment_id' type='text' id='apartment_id' size='30' maxlength='40' />*</td>
  </tr>
  <tr>
   <td></td>
    <td height='31' colspan='2' ><label>
     <input name='send' type='submit' value='Αποστολή' />
    </label></td>
    </tr>

</table>
";
?>
</form>
</div>


<p>

<?php 

if(isset($_POST['send'])) {
 // Check input / Required fields
 $building_id = check_input($_POST['building_id'],"Εισάγετε τον κωδικό της οικοδομής!");
 $apartment_id = check_input($_POST['apartment_id'],"Εισάγετε όνομα χρήστη!");

 $query = "SELECT  idTENANT,FNAME,LNAME,BUILDING_ADMIN,PHONE FROM TENANT,APARTMENT, BUILDING
    WHERE  TENANT.APARTMENT_ID = APARTMENT.idAPARTMENT
    AND    APARTMENT.BUILDING_ID = BUILDING.idBUILDING
    AND  idAPARTMENT = '$apartment_id'
    AND  idBUILDING = '$building_id'";
 $result=mysql_query($query) or die ("Couldn't execute query.");
 $row = mysql_fetch_array( $result );  

 $id = $row['idTENANT'];
 $fname = $row['FNAME'];
 $lname = $row['LNAME'];
 $apartment = $row['APARTMENT_ID'];
 $phone = $row['PHONE'];
 if($row['BUILDING_ADMIN'] == 0)
  $admin = "ΟΧΙ";
 else
  $admin = "ΝΑΙ";
echo " <hr />
<table width='300' border='0'>
    <tr>     
     <td>Όνομα</td>           
  <td>$fname</td>   
 </tr>
    <tr>     
  <td>Επίθετο</td>          
  <td>$lname</td>   
 </tr>
    <tr>     
     <td>Όνομα χρήστη</td>        
     <td><input name='username' type='text' size='30' maxlength='20' />*</td>   
    </tr>
    <tr>     
  <td>Κωδικός χρήστη</td>      
  <td><input name='password' type='password' size='30' maxlength='20'/>*</td>   
 </tr>
    <tr>     
  <td>Επαλήθευση κωδικού</td>    
  <td><input name='verify_password' type='password' size='30' maxlength='40'/> *</td> 
 </tr>
    <tr>     
  <td>Διαχείριση οικοδομής</td>  
  <td>$admin</td>   
 </tr>
    <tr>     
  <td>Τηλέφωνο</td>            
  <td>$phone</td>   </tr>

    <tr>   
  <td></td>
  <td><input name='checkterms' type='checkbox' id='checker' onclick='theChecker()' value='Ναι'/>
    <label>Έχω διαβάσει και αποδέχομαι τους όρους χρήσης.</label> *</td>
   </tr>
   <tr>
    <td></td>
     <td><input type='submit' name='complete'  id='submitter' value='Ολοκλήρωση εγγραφής' disabled/></td>
  </tr>
</table>
";
}

if(isset($_POST['complete'])) {
 // Password match
 if ($password != $verify_password)
 {
   echo '<font color="red">Οι κωδικοί δεν ταιριάζουν</font>';
 }//if
 else 
 { 
  // Execute MySQL commands
  $query = "UPDATE TENANT SET USERNAME = '$un', PASSWD='$pw' WHERE idTENANT='$id'";
  $result=mysql_query($query) or die ("Couldn't execute query.");
  header("Location: main_login.php");
 }//else
}//if
?>

</p>
<?php require("includes/footer.php"); ?>

第一个_POST(if(isset($ _ POST ['send']))...)完美无缺。但是如果(isset($ _ POST ['complete'])){......什么都不做。我试图回应一些数据,看看我的连接是否无效,但它的_POST ......

请帮帮我!!!!

谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

你可以尝试:

  1. 使用vardump查看$ _POST包含的内容:var_dump($_POST);
  2. 使用firebug(或其他浏览器的类似内容)查找请求并查看发送的POST参数。

答案 1 :(得分:0)

header("Location: main_login.php");

到达$_POST["complete"]时无效。在此之前你已经发送了大量的输出。启用更多error_reporting。

答案 2 :(得分:0)

第二组表单元素(用户名,密码,verify_password,checkterms,complete)不在任何html表单元素中。单击第二个按钮不会将表单发布到服务器。