|
|
|
| Есть такой код
echo "<center>"
."<form name=\"form1\" method=\"post\" action=\"index.php\">"
."<b>Найти :</b> "
."<input type=\"text\" name=\"search\" value=\"$search\"><br>"
."<table border=\"0\">"
."<tr><td>"._REF_SEARCH_NAME."</td><td><input type=\"radio\" name=\"typesearch\" value=\"1\" checked></td></tr>"
."<tr><td>"._REF_SEARCH_DOLGNOST."</td><td><input type=\"radio\" name=\"typesearch\" value=\"2\"></td></tr>"
."<tr><td>"._REF_SEARCH_NUMER."</td><td><input type=\"radio\" name=\"typesearch\" value=\"3\"></td></tr>"
."<tr><td>"._REF_SEARCH_ADRESS."</td><td><input type=\"radio\" name=\"typesearch\" value=\"4\"></td></tr>"
."<tr><td>"._REF_SEARCH_KABINET."</td><td><input type=\"radio\" name=\"typesearch\" value=\"5\"></td></tr>"
."</table>"
."<input type=\"submit\" value=\""._REF_SEARCH."\">"
."</form></center>";
if (((isset($_POST['typesearch'])) AND (isset($_POST['search']))
AND (!eregi("UNION", $_POST['search']))) OR ((isset($_GET['typesearch']))
AND (isset($_GET['search'])) AND (!eregi("UNION", $_GET['search']))))
{
global $db, $prefix, $sitename, $bgcolor;
$search = strip_tags(isset($_POST['search']) ? $_POST['search'] : $_GET['search']);
$type = intval(isset($_POST['typesearch']) ? $_POST['typesearch'] : $_GET['typesearch']);
switch ($type) {
case "1" :
$stype = "name LIKE '%$search%'";
break;
case "2" :
$stype = "dolgnost LIKE '%$search%'";
break;
case "3" :
$stype = "nomer LIKE '%$search%'";
break;
case "4" :
$stype = "adres LIKE '%$search%'";
break;
case "5" :
$stype = "kabinet LIKE '%$search%'";
break;
}
и т.д.
|
По нему есть несколько вопросов
1) Зачем вот это
OR ((isset($_GET['typesearch'])) AND (isset($_GET['search'])) AND
| если
<form name=\"form1\" method=\"post\" action=\"index.php?name=Ref_phone\">"
|
2) Зачем вот это
$type = intval(isset($_POST['typesearch']) ? $_POST['typesearch'] : $_GET['typesearch']);
switch ($type) {
case "1" :
$stype = "name LIKE '%$search%'";
break;
| если можно так
switch ($typesearch) {
case 1 :
$stype = "name LIKE '%$search%'";
break;
|
| |
|
|
|
|
|
|
|
для: BiFF
(17.03.2007 в 17:51)
| | В первом случае вероятно очепятка, так как GET_параметры не передаются через ссылку в атрибуте action тэга <form>. Во-втором случае использовать переменную вместо суперглобального массива не всегда возможно, особенно если отключена директива register_globals (В PHP 6 не будет даже возможности включить её). Лучше использовать суперглобальный массив $_REQUEST, который объединяет все остальные переменные
<?php
switch ($_REQUEST['typesearch']) {
case 1 :
$stype = "name LIKE '%$search%'";
break;
?>
|
| |
|
|
|
|
|
|
|
для: BiFF
(17.03.2007 в 17:51)
| | 1. Видимо, скрипт не только из формы вызывается, но и со ссылок.
2. Нет. Так писать нельзя. Программист должен представлять, откуда именно скрипт получает данные. | |
|
|
|