Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2014, 01:52   #1
feramount
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 18
По умолчанию Заносим в переменную php код как текст. В чем ошибка?

Вообщем пытаюсь написать скрипт сохранения PHP кода в БД и натыкаюсь на следующую проблему
Передаю из textarea следующий код
PHP код:
function FormAddCreate($table)
{
   
$result '';
   
$SQL 'DESCRIBE '.$table;
   
$Query mysql_query($SQL);
   
$result .= '<form action="/core/index.php"><table width="100%">';
   
$result .= $this->get_input_hidden('action','value="add"');
   
$result .= $this->get_input_hidden('table','value="'.$table.'"');
   while (
$row mysql_fetch_array($Query))
   {
      
$result .= '<tr>';
      if (
$row['Field'] <> 'id')
      {
         if (
$row['Type'] == 'text')
         {
            
$result .= '<td>'.$row['Field'].'</td><td>'.$this->get_input_text($row['Field']).'</td>';
         }
         else if (
$row['Type'] == 'longtext')
         {
            
$result .='<td>'.$row['Field'].'</td><td>'.$this->get_textarea($row['Field'],"rows=15 style='width:100%;'").'</td>';
         }
         else
         {
            
$result .= '<td>'.$row['Field'].'</td><td>'.$this->get_input_text($row['Field']).'</td>';
         }
      }
      
$result .= '</tr>';      
   }
   
$result .= '</table></form>';
   return 
$result;

Затем в файле обработчике обрабатываю весь POST массив
PHP код:
foreach ($_POST as $key => $value)
   {
      
$post .= '$V_'.$key.' = "'.trim(mysql_real_escape_string($value)).'";';
      
$_POST[$key] = trim($value);
   } 
В переменной $post получается такой результат:
PHP код:
$V_action "add";
$V_table "Cardinal_Classes_Functions";
$V_Function_ID "";
$V_classes_ID "2";
$V_Name "FormAddCreate";
$V_PhpScrypt "function FormAddCreate($table)\r\n{\r\n   $result = \'\';\r\n   $SQL = \'DESCRIBE \'.$table;\r\n   $Query = mysql_query($SQL);\r\n   $result .= \'
\';\r\n   
$result .= $this->get_input_hidden(\'action\',\'value=\"add\"\');\r\n   $result .= $this->get_input_hidden(\'table\',\'value=\"\'.$table.\'\"\');\r\n   while ($row = mysql_fetch_array($Query))\r\n   {\r\n      $result .= \'\';\r\n      if ($row[\'Field\'] <> \'id\')\r\n      {\r\n         if ($row[\'Type\'] == \'text\')\r\n         {\r\n            $result .= \'\';\r\n         }\r\n         else if ($row[\'Type\'] == \'longtext\')\r\n         {\r\n            $result .=\'\';\r\n         }\r\n         else\r\n         {\r\n            $result .= \'\';\r\n         }\r\n      }\r\n      $result .= \'\';      \r\n   }\r\n   $result .= \'
\'.
$row[\'Field\'].\'   \'.$this->get_input_text($row[\'Field\']).\'   \'.$row[\'Field\'].\'   \'.$this->get_textarea($row[\'Field\'],\"rows=15 style=\'width:100%;\'\").\'   \'.$row[\'Field\'].\'   \'.$this->get_input_text($row[\'Field\']).\'
\';\r\n   return 
$result;\r\n}";
$V_send "Добавить"
Получаю следующий текст ошибки
PHP код:
Parse errorsyntax errorunexpected T_ENCAPSED_AND_WHITESPACEexpecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/m/mais3/mais3.bget.ru/public_html/core/index.php(27) : eval()'d code on line 1 
А теперь вопрос: как лечить?
feramount вне форума Ответить с цитированием
Старый 09.01.2014, 16:22   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,184
По умолчанию

внимание и еще раз внимание - разбирайтесь с кавычками... где то непарные
ADSoft вне форума Ответить с цитированием
Старый 09.01.2014, 23:38   #3
feramount
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
внимание и еще раз внимание - разбирайтесь с кавычками... где то непарные
Да нет там непарных...в том то и прикол.Уже на 100 раз перепроерил
feramount вне форума Ответить с цитированием
Старый 10.01.2014, 12:19   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,184
По умолчанию

вопрос - а в какой строке ты вы получаете ошибку? приведите код....
ADSoft вне форума Ответить с цитированием
Старый 10.01.2014, 12:37   #5
feramount
Пользователь
 
Регистрация: 26.11.2010
Сообщений: 18
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
вопрос - а в какой строке ты вы получаете ошибку? приведите код....
Выше же писал.
Сделал проще. Написал исключение
PHP код:
    foreach ($_POST as $key => $value)
    {
        if (
$key <> 'PhpScrypt')
        {
            
$post .= '$V_'.$key.' = "'.trim(mysql_real_escape_string($value)).'";';
            
$_POST[$key] = trim($value);
        }
    } 
feramount вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать переменную PHP в JS и потом назад в PHP SevenXP PHP 6 04.09.2012 11:11
Как пробросить через переменную текст с форматированными фрагментами? alt2 Microsoft Office Excel 2 26.10.2011 17:04
Объясните в чем заключается ошибка? код на си Fleiks Общие вопросы C/C++ 5 13.10.2011 18:53
Все что после пробела заносим в переменную. celovec Общие вопросы Delphi 7 18.06.2011 20:23
Как получить текст из Edit в переменную INT nimbler Win Api 4 05.11.2009 22:45