HTML |
<?php echo '<table border=0><tr> <td><form action="poisk.php" method="post"> Год:</td><td><SELECT NAME="date"> <OPTION VALUE=2008>2008 <OPTION VALUE=2009>2009 </SELECT></td><td>Специальность:</td><td><SELECT NAME="spec"> <OPTION VALUE=1>Техника <OPTION VALUE=2>Програмирование </SELECT></td><td>Образование:</td><td><SELECT NAME="kl"> <OPTION VALUE=9>9 классов <OPTION VALUE=11>11 классов </SELECT></td> <td colspan="2"><center><input type="submit" title="Отправить запрос"> </form></td></tr><table></center></td></tr></table> '; ?> |
PHP |
<? |
PHP |
<? |
Цитата (Nikitian @ 13.07.2009 - 10:07) |
Для всех переменных, которые не являются результатами вычислений, используейте функцию mysql_real_escape_string() |
PHP |
mysql_query('delete from table_posts where id='.mysql_real_escape_string($_POST['id'])); |
Цитата (waldicom @ 13.07.2009 - 11:26) |
Хм, как минимум знаю одну ситуацию, где только mysql_real_escape_string() не поможет. |
PHP |
$id = "1 union select 1,2 from /*"; |
Цитата |
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\' union select 1,2 from /*' at line 1 |
Цитата (Nikitian @ 13.07.2009 - 14:13) |
Ну а данную ситуацию я несколькими постами выше приводил. Смысл в том, что необходимо использовать кавычки для всех типов данных, а не только для строковых. Хотя вариант с intval() и подобными приведениями к нужному виду тоже имеет право на существование, всё же лучше писать ошибку, чем пытаться найти хоть что-то по заведомо неверному запросу. P.S. Сам часто использую приведение, т.к. сила привычки - код пишется на автомате. |
SQL |
mysql_query ("insert into `priem_o` values('030000','Гуманитарные науки','1','25','8','26','5');") or die("Не возможно добавить данные в таблицу Priem"); |
SQL |
$zaliv = $_POST['zaliv']; mysql_query ("$zaliv") or die("Не возможно добавить данные в таблицу Priem"); |
PHP |
<center> |