mysql sorun yaşıyorsanız eğer beyanı

1 Cevap php

I just want to simplify what I am doing before, having multiple php files for all data to be listed. Here is my html form:

                                     <table   border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#D3D3D3">
<tr>
<form name="formcheck" method="post" action="list.php" onsubmit="return formCheck(this);">
<td>
<table  border="0" cellpadding="3" cellspacing="1" bgcolor="">
<tr>

<td  colspan="16" height="25"  style="background:#5C915C; color:white; border:white 1px solid; text-align: left"><strong><font size="3">List Students</td>
</tr>
<tr>
<td width="30" height="35"><font size="3">*List:</td>
<td width="30"><input name="specific" type="text" id="specific" maxlength="25" value="">
</td>

<td><font size="3">*By:</td>
<td>
    <select name="general" id="general">
        <font size="3">
        <option>Year</option>
        <option>Address</option>


    </select></td></td>
    </tr>
    <tr>
   <td width="10"><input  align="right" type="submit" name="Submit" value="Submit" > </td>
</tr>
</form>
</table>

Ve burada form action bulunuyor:

<?php
$con = mysql_connect("localhost","root","nitoryolai123$%^");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("school", $con);

$gyear= $_POST['general'];



if ("YEAR"==$_POST['general']) {
$result = mysql_query("SELECT * FROM student WHERE YEAR='{$_POST["specific"]}'");


echo "<table border='1'>
<tr>
<th>IDNO</th>
<th>YEAR</th>
<th>LASTNAME</th>
<th>FIRSTNAME</th>

</tr>";

while($row = mysql_fetch_array($result))
  {
   echo "<tr>";
   echo "<td>" . $row['IDNO'] . "</td>";
  echo "<td>" . $row['YEAR'] . "</td>";
  echo "<td>" . $row['LASTNAME'] . "</td>";
    echo "<td>" . $row['FIRSTNAME'] . "</td>";


  echo "</tr>";
  }
echo "</table>";
}

mysql_close($con);
?>

Ben YILI (MySQL veritabanı sütun) ve seçenek kutusunu (genel) eşit, nasıl yardımcı olun.

if ("YEAR"==$_POST['general']) 

Yanılıyorsam beni düzeltin lütfen.

1 Cevap

<option>Year</option>

Sadece bu değiştirmek gerekir

<option value="YEAR">Year</option>

aksi takdirde kod kötü saldırılara çok açık olduğu için http://en.wikipedia.org/wiki/SQL_injection: Ayrıca kesinlikle bu sayfanın bir okuma var.

[Edit: ayrıca bir web sitesi üzerinde çok iyi bir fikir gerçek kök kullanıcı adı / şifre değil gönderme, özgün soru üzerine yorumlarına dikkat etmek.]