|
|
|
| Форма:
<table class="add_review">
<tr>
<td>Ваше имя:<font color="#FF0000">*</font></td>
<td>
<input type="text" name="your_name" size="40" value="">
</td>
</tr>
<tr>
<td>Рецензия:<font color="#FF0000">*</font></td>
<td>
<input type="radio" name="rtype" value="0">
- <span style="color: green;">положительная</span>
<input type="radio" name="rtype" value="1">
- <span style="color: red;">отрицательная</span> </td>
</tr>
<tr>
<td>Текст рецензии:<font color="#FF0000">*</font></td>
<td>
<textarea name="your_review" cols="50" rows="8"></textarea>
</td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit" value="Добавить">
</td>
</tr>
</table>
|
Обработка:
$u_name = mysql_escape_string($_POST['your_name']);
$u_review = mysql_escape_string($_POST['your_review']);
$rtype = intval($_POST['rtype']);
$adata = date("Y-m-d H:i:s");
$u_ip = mysql_escape_string(getenv("REMOTE_ADDR"));
if ($mmn_rev_event == "yes") { $approve = '0'; } else { $approve = '1'; }
if ($rtype > '1') $rtype = "1";
$query_add = "INSERT INTO `reviews` (`event_id`, `us_name`, `us_mess`, `rev_type`, `add_date`, `us_ip`, `approve`)
VALUES ('$event[id]', '$u_name', '$u_review', '$rtype', '$adata', '$u_ip', '$approve')";
$req_add = mysql_query($query_add) or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
|
Спасибо. | |
|
|
|
|
|
|
|
для: kis-kis
(17.02.2009 в 16:20)
| | Плиз, подскажите... | |
|
|
|
|
|
|
|
для: kis-kis
(17.02.2009 в 19:19)
| | up | |
|
|
|
|
|
|
|
для: kis-kis
(22.02.2009 в 11:17)
| | Есть очень простое правило.
Любое значение, которое вы окружаете апострофами в тексте SQL-запроса, должно быть непосредственно перед этим пропущенно через mysql_escape_string()
Любое значение, которое вы вставляете в текст, не окружая апострофами, должно быть ограничено лексически (то есть являться именно числом - если Вы хотите подставить число, именно конкретным ключевым словом, если хотите подставить это ключевое слово, и т.д.)
У Вас $event[id] и $adata через через mysql_escape_string() не пропущены.
$r_type зачем-то взят в апострофы, хотя Вы его ограничили до целого.
То же самое, видимо, и с $approve.
А форма тут вообще не при чем. | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2009 в 11:37)
| | >Есть очень простое правило.
Фига. Даже я это правило понял с трудом, хотя вроде знаю о чем речь:) | |
|
|
|
|
|
|
|
для: Loki
(22.02.2009 в 23:36)
| | а фига - это вообще из итальянского :-P | |
|
|
|
|
|
|
|
для: Trianon
(22.02.2009 в 11:37)
| | >>У Вас $event[id] и $adata через через mysql_escape_string() не пропущены.
Так ведь они не зависят от пользователя? | |
|
|
|
|
|
|
|
для: kis-kis
(24.02.2009 в 10:16)
| | Почему Вы считаете, что корректно оформлять нужно лишь те константы в SQL-запросе, которые зависят от пользователя? | |
|
|
|
|
|
|
|
для: kis-kis
(17.02.2009 в 16:20)
| | В общем безопасна, только при включённо режиме магических кавычек - у вас дублирование экранирования может наблюдаться. Обычно перед применением функции mysql_escape_string(), проверяют включен ли режим магических кавычек при помощи функции get_magic_quotes_gpc(). | |
|
|
|