我試圖在php中創建一個表格,該表格會根據用戶檢查的複選框顯示mysql數據庫中的數據。 正如你在這個屏幕截圖中看到,它就會有問題,當你沒有在一個前的複選框,這將是最後的檢查: http://www.mypicx.com/04282010/1/php中的表問題
這裏是我的代碼:
if($_POST['general'] == 'ADDRESS'){
$result2 = mysql_query("SELECT * FROM student WHERE ADDRESS='$saddress'");
?>
<table border='1'>
<tr>
<th>IDNO</th>
<th>YEAR</th>
<th>SECTION</th>
<?php if ($ShowLastName)
echo "<th>LASTNAME</th>" ?>
<?php if ($ShowFirstName )
echo "<th>FIRSTNAME</th>" ?>
<?php if ($ShowMidName )
echo "<th>MIDNAME</th>" ?>
<?php if ($ShowAddress )
echo "<th>ADDRESS</th>" ?>
<?php if ($ShowGender )
echo "<th>GENDER</th>" ?>
<?php if ($ShowReligion )
echo "<th>RELIGION</th>" ?>
<?php if ($ShowBday )
echo "<th>BIRTHDAY</th>" ?>
<?php if ($ShowContact )
echo "<th>CONTACT</th>" ?>
</tr>
<?php
while($row = mysql_fetch_array($result2))
{?>
<tr>
<td><?php echo $row['IDNO']?> </td>
<td><?php echo $row['YEAR'] ?> </td>
<td><?php echo $row['SECTION'] ?></td>
<td><?php
if ($ShowLastName )
echo $row['LASTNAME'] ?></td>
<td><?php
if ($ShowFirstName )
echo $row['FIRSTNAME'] ?></td>
<td><?php
if ($ShowMidName )
echo $row['MI'] ?></td>
<td><?php
if ($ShowAddress )
echo $row['ADDRESS'] ?></td>
<td><?php
if ($ShowGender )
echo $row['GENDER'] ?></td>
<td><?php
if ($ShowReligion )
echo $row['RELIGION'] ?></td>
<td><?php
if ($ShowBday )
echo $row['BIRTHDAY'] ?></td>
<td><?php
if ($ShowContact )
echo $row['S_CONTACTNUM'] ?></td>
</tr>
<?PHP } ?>
</table>
<?PHP }
mysql_close($con);
?>
什麼你可以建議,使輸出不會像這樣,當一個複選框前的複選框,你一個不點擊:的http://www.mypicx.com/04282010/2/ alt text http://www.mypicx.com/uploadimg/1702270558_04282010_1.png
哇,我看到更多的麻煩來找你,除非這是簡單的功課。您的代碼易受SQL注入和XSS注入的影響。至少應該學會使用諸如mysql_real_escape_string和htmlspecialchars之類的東西。 – 2010-04-28 09:07:52
公平起見,我們不知道'$ saddress'沒有被引用。仍然是非常重要的話題。你在哪裏看到XSS矢量?表中的值? – outis 2010-04-28 09:28:56
是這樣的:$ syear = mysql_real_escape_string($ _ POST ['specific']); 我沒有顯示其餘的代碼。我只是一個初學者,我相信當輸入類型=「text」時,我只需要mysql_real_escape_string。如果我錯了,請給我關於這個信念的啓發。 – user225269 2010-04-28 09:50:46