2011-01-11 7 views
1

私はここに新しいです、私は質問があります。私は_POSTでそれを理解できないという問題があります。私は執筆開始前に何時間も探していました!私が見る限り、私は他の同様の質問(フォームアクション...、名前属性...など)のために投稿されている間違いをしていません。してください、あなたは下の私のコードをチェックして、何が間違っているのか教えていただけますか?

私はWindows 7の


<?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にXAMPP 1.7.3を使用

(IF(ISSET($ _ POST [ '送信']))...)完璧に動作します。しかし、(isset($ _ POST ['complete'])){...は何もしません。私は私の接続がうまくいかないかどうかを確認するためにいくつかのデータをエコーし​​ようとしましたが、その_POST ...

私を助けてください!!!!

ありがとうございました!

+0

コードの書式を修正してください。私はそれを読むことができません。特にロシア人ではない。おそらく、あなたのコードが適切なエンコーディングでないかもしれません。 – Christian

+0

サイドノート:SQLインジェクションの匂いがします。 – AndiDog

+0

申し訳ありません、私はそれを修正しました! –

答えて

0

フォーム要素の2番目のセット(username、password、verify_password、checkterms、complete)は、HTMLフォーム要素内にありません。 2番目のボタンをクリックしても、フォームはサーバーに送信されません。

+0

ありがとう!これは本当に機能します! –

1

あなたが試すことができるもの:

  1. 使用vardumpを$ _POSTが含まれているかを確認する:var_dump($_POST);
  2. firebug(または別のブラウザと同様のもの)を使用してリクエストを検索し、送信されるPOST-Parametersを確認します。
+0

またはprint_r($ _ POST) – dotty

+0

私はprint_rを使用しました。これはArray([building_id] => 2 [apartment_id] => 21-2 [send] =>Αποστολή(=ギリシャ語で送信))です。私は_POSTがまだ "送信"されていると考えています。これをどうやって変更できますか?何か方法はありますか? –

0
header("Location: main_login.php"); 

$_POST["complete"]に達したとき、仕事に行くのではありません。あなたはすでにその前に出力のヒープを送った。より多くのerror_reportingを有効にします。

関連する問題