Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как задать переменной значение на перезагружаемой странице
 
 автор: tim_mironov   (22.09.2005 в 17:00)   письмо автору
 
 

У меня такая проблема: на странице есть форма select от выбора в которой зависит значение другой формы select. Есть переменная, которая определяет запрос к базе данных, но при первом запуске вылезает ошибка, в которой говорится что нарушен синтаксис MySQL, что не мудрено, ведь в этой памяти может лежать все что угодно.

<form name="form" method="post" action="">
...
<?
...
$reg mysql_query("SELECT * FROM ".$HTTP_POST_VARS['select'].""); 
while(
$region=mysql_fetch_row($reg));
...
?>
...
</form>

Подскажите, пожалуйста, или как задавать эту переменную только при первой загрузке, или перезагружать только форму.

   
 
 автор: Loki   (22.09.2005 в 17:11)   письмо автору
 
   для: tim_mironov   (22.09.2005 в 17:00)
 

вставить условие:

<?
if (!isset($HTTP_POST_VARS['select'])) $HTTP_POST_VARS['select']="значение по умолчанию"
?>

   
 
 автор: Duran   (22.09.2005 в 17:16)   письмо автору
 
   для: tim_mironov   (22.09.2005 в 17:00)
 

Не совсем понятно, как ваш код узнает, что ему вообще надо обращаться к MySQL, никаких проверок не видно.

Принцип следующий:

Перед блоком кода запроса к MySQL внесите проверку на публикацию выбранного запроса:

Я так понял, что у вас имя (name) переменной SELECT ?

// проверяем наличие передачи переменной запроса и она не пуста
if (isset($_POST['select']) and !empty($_POST['select']))
{
// переменная есть и она не пуста
$reg = mysql_query("SELECT * FROM ".$_POST['select']); 
while($region=mysql_fetch_row($reg)); 
}



Кстати, в вашем варианте получается, что SELECT хранит текст запроса вида " имя таблицы WHERE условие". Это так ? Безопаснее не передавать имя таблицы, а только часть аргумента.

   
 
 автор: P@Sol   (22.09.2005 в 17:18)   письмо автору
 
   для: Duran   (22.09.2005 в 17:16)
 

.

   
 
 автор: tim_mironov   (22.09.2005 в 22:29)   письмо автору
 
   для: Duran   (22.09.2005 в 17:16)
 

Особая безопасность мне не нужна, но коли Вы об этом заговорили, то не могли бы вы подсказать как это сделать.
Вообще я пытаюсь сделать базу данных адресов с поиском и возможностью последующего вывода на принтере в формате под конверт, но поскольку по PHP у меня кроме самоучителя Симдянова и Кузнецова и вас всех ничего нет, то дело движется медленно.

...но движется!

Спасибо за помощь!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования