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

Форум PHP

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

 

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

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

тема: имена таблиц и шаблонов через GET
 
 автор: moonfox   (28.11.2007 в 22:36)   письмо автору
 
 

скажите пожалуйства на ваше усмотрение ниже написанный подход есть ли рациональным?



<?
$tabl
= array(1=>'aaa',2=>'bbb',3=>'ccc');
$templ=array(1=>'main.tpl',2=>'basic.tpl',3=>'info.tpl');

$tab=$_GET['tabl'];
$tpl=$_GET['templ'];

function 
get_data($tab,$tpl,$smarty)
{
$query  "SELECT * FROM $tab";
$result mysql_query($query);
.......
$smarty->display($tpl);
}


switch (
$page)
{
case 
'basic':

get_data($tab,$tpl,$smarty);

break;

}
?>

   
 
 автор: Unkind   (28.11.2007 в 22:59)   письмо автору
 
   для: moonfox   (28.11.2007 в 22:36)
 

А зачем нужны два массива, объявленные в самом начале кода, если Вы их не используете?

   
 
 автор: moonfox   (28.11.2007 в 23:07)   письмо автору
 
   для: Unkind   (28.11.2007 в 22:59)
 

очепятка вышла

$query = "SELECT * FROM $tabl[$tab]";
$smarty->display($templ[$tpl]);

   
 
 автор: Unkind   (28.11.2007 в 23:50)   письмо автору
 
   для: moonfox   (28.11.2007 в 23:07)
 

Тогда первой строчкой в теле функции надо поставить global $tabl, $templ;

И неплохо было бы обезопасить себя от ошибок, которые возникнут при неверном имени таблицы/шаблона.

<?php
//...
$tab = isset( $tabl[$tab] ) ? $tabl[$tab] : '';
$tpl = isset( $templ[$tpl] ) ? $templ[$tpl] : '';

if( 
$tab == '' || $tpl == '' ) die( 'Неверные данные' );
//...
?>

   
 
 автор: Zirkon   (28.11.2007 в 23:52)   письмо автору
 
   для: Unkind   (28.11.2007 в 23:50)
 

Как это говориться там? У дураков мысли сходятся? Причем в одну и ту же минуту? :)

   
 
 автор: Unkind   (29.11.2007 в 00:38)   письмо автору
 
   для: Zirkon   (28.11.2007 в 23:52)
 

> Как это говориться там? У дураков мысли сходятся?

Не знаю где это там и что там говорится.

   
 
 автор: Zirkon   (29.11.2007 в 00:43)   письмо автору
 
   для: Unkind   (29.11.2007 в 00:38)
 

Шутка :)

   
 
 автор: Zirkon   (28.11.2007 в 23:50)   письмо автору
 
   для: moonfox   (28.11.2007 в 23:07)
 

Как мне кажется, для начала неплохо было бы объявить эти массивы как глобальные, для примера в том же get_data. :)

   
 
 автор: moonfox   (29.11.2007 в 01:11)   письмо автору
 
   для: Zirkon   (28.11.2007 в 23:50)
 

get_data($tab,$tpl,$smarty,$tabl, $templ)
или
global $tabl, $templ;

с этим ястно... переменная то в не фукции
меня просто интересовала рациональность самого подхода

Zirkon: да вы же видели что я вношу в get_data значения внешних переменных уже не важно что в уточнении опустил глобализацию то.


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

   
Rambler's Top100
вверх

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