Реклама на сайте Advertise with us

Php вопрос

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 01.12.05
Сообщения: 339
Рейтинг: 248

Ссылка на сообщениеДобавлено: 02/06/06 в 23:46       Ответить с цитатойцитата 

Господа программеры выручайте, есть вот такой код:
Код:

<?php
if (!defined('ADMIN_FILE')) {
   die("Illegal File Access");
}
if (!defined("CAL_MODULE_NAME")) die ("classement: You can't access this file directly..."); // aus case datei
if (!defined("_CAL_ADM_SETCOLLINK")) define("_CAL_ADM_SETCOLLINK","".$admin_file.".php?op=CalSetcols");

#error_reporting(E_ALL);
#########################################################################################
if (!isset($calconf)) include(CAL_MODULE_PATH."config/config.php");
include_once(CAL_MODULE_PATH."includes/functions.php");
get_lang(CAL_MODULE_NAME);




#########################################################################################
function CalSavecols() {
   #mxDebugFuncVars($_POST);
   $setfile = CAL_MODULE_PATH."categories/".$_POST['x_trs_lng'].".php";

   $newcols = "";
   foreach($_POST['setcol'] as $i => $caption) {
      $newcols .= "\$caldotcolor[".$i."] = \"".trim(htmlentities($caption, ENT_QUOTES))."\";\n";
      }

   $content = "<?php  $\n";
   $content .= "/// description of event dots color \n";
   $content .= "/// language: ".$_POST['x_trs_lng']." \n";
   $content .= "\n".$newcols."\n\n?>";

   #mxDebugFuncVars($content);   #exit;
   $ok = 1;
   @chmod($setfile, 0666);
   if (!mxDemoMode()) {
      $file = @fopen($setfile, "w");
      if ($file) {
         $ok = @fwrite($file, $content);
         @fclose($file);
         $ok = (int)$ok + 1;
         }
      @chmod($setfile, 0444);
      }
   $msg = ($ok>1) ? _CALCONF2 : _CALCONF1;
   #mxDebugFuncVars($msg, $ok);
   #exit;
   calRedirect(_CAL_ADM_SETCOLLINK."&amp;trs_lng=".$_REQUEST['trs_lng']."&amp;src_lng=".$_REQUEST['src_lng']."&amp;ok=".$ok, $msg, 2);
   }


#########################################################################################
function CalSetcols() {
   global $admin_file, $bgcolor1, $bgcolor2, $bgcolor3;
   $color_src = calgetlangsrc($_REQUEST['src_lng']);
   $color_trs = calgetlangsrc($_REQUEST['trs_lng']);
   $ok = (isset($_REQUEST['ok'])) ? $_REQUEST['ok'] : 0;
   if ($ok == 1) {
      $statmsg = _CALCONF3." '".CAL_MODULE_PATH."categories/".$_REQUEST['trs_lng'].".php' "._CALCONF4;
      }
   else if ($ok > 1) {
      $statmsg = _CALCONF2;
      }
   if (defined('MX_BASE_URL')) {
      $path = preg_replace('#^'.MX_BASE_URL.'#i', '', CAL_IMAGE_PATH);
   } else {
      $path = CAL_IMAGE_PATH;
   }
   $handle = opendir($path."colors");
   if (!$handle) return;
   while ($file = readdir($handle)) {
      if (preg_match("/^ball_(.+)\.gif$/", $file, $matches)) {
         $imglist[(int)$matches[1]] = $matches[1]."&nbsp;<img src='".CAL_MODULE_PATH."images/colors/".$file."' alt='".$matches[1]."' width='14' height='14' border='0'>";
         }
      }
   closedir($handle);
   ksort($imglist);
   #mxDebugFuncVars($imglist);
   
   $GLOBALS["pagetitle"]=_CALCATEGORIESADMIN;
   include("header.php");
   calAdminMenu(_CALCATEGORIESADMIN);
   OpenTable();
   
   $content = "";
   foreach($imglist as $i => $imgtag) {
      $ctrs = (isset($color_trs[$i])) ? stripslashes($color_trs[$i]) : "";
      $csrc = (isset($color_src[$i])) ? '&nbsp;'.stripslashes($color_src[$i]) : "";
      $csrc = (empty($csrc) && !empty($ctrs)) ? "&nbsp;&nbsp;??" : $csrc;
      $content .= "<tr style='background-color: $bgcolor2;'>
      <td width='10%' align='center' style='white-space: nowrap;'><span class=\"content\">".$imgtag."&nbsp;</span></td>
      <td width='40%' style='white-space: nowrap;'><span class=\"content\"><b>".$csrc."</b>&nbsp;</span></td>
      <td width='50%' style='background-color: $bgcolor1;'><input type='text' name='setcol[".$i."]' value='".$ctrs."' size='40' maxlength='50'></td>
      </tr>";
      }

   if (isset($statmsg)) {
      OpenTable();
      echo "<blockquote><span class=\"title\"><b>$statmsg</b></span></blockquote>";
      CloseTable();
      echo "<br>";
      }

   echo "
   <form action='"._CAL_ADM_SETCOLLINK."&amp;trs_lng=".$_REQUEST['trs_lng']."&amp;src_lng=".$_REQUEST['src_lng']."' method='post'>
   <input type='hidden' name='x_trs_lng' value='".$_REQUEST['trs_lng']."'>
   <input type='hidden' name='op' value='CalSavecols'>
   <table width='90%' border='0' cellspacing='1' cellpadding='2' align='center' style='background-color: $bgcolor3;'>
   <tr style='background-color: $bgcolor2;'><th colspan='3'><span class=\"title\">"._CALCATEGORIESLANG."</span></th></tr>
   <tr style='background-color: $bgcolor2;'>
      <td width='50%' align='center' colspan='2'>".calgetlanglist('src')."</td>
      <td width='50%' align='center' style='background-color: $bgcolor1;'>".calgetlanglist('trs')."</td>
   </tr>
   </table><br>
   <table width='90%' border='0' cellspacing='1' cellpadding='2' align='center' style='background-color: $bgcolor3;'>
   <tr>
      <th width='50%' colspan='2' style='background-color: $bgcolor2;'><span class=\"option\">"._CALSOURCE.":&nbsp;<img src='images/language/flag-".$_REQUEST['src_lng'].".gif' alt='' width='30' height='16' border='0'>&nbsp;".$_REQUEST['src_lng']."</span></th>
      <th width='50%' colspan='2' style='background-color: $bgcolor1;'><span class=\"option\">"._CALGOAL.":&nbsp;<img src='images/language/flag-".$_REQUEST['trs_lng'].".gif' alt='' width='30' height='16' border='0'>&nbsp;".$_REQUEST['trs_lng']."</span></th>
   </tr>
   ".$content."
   <tr style='background-color: $bgcolor2;'><td colspan='2'>&nbsp;</td><td align='center' style='background-color: $bgcolor1;'><input type='submit' value='"._CALSAVESETT."' lang='ru'></td></tr>
   </table>
   </form>
   ";
   CloseTable();
   #echo "<br>";
   include("footer.php");
   }

#########################################################################################
function calgetlangsrc($lang) {
   $ok =   @include(CAL_MODULE_PATH."categories/".$lang.".php");
   if ($ok) return $caldotcolor;
   return array();
   }

#########################################################################################
function calgetlanglist($mode) {
   static $linklist;
   if (!isset($linklist)) {
      $handle = @opendir('language');
      if (!$handle) return;
      while ($file = readdir($handle)) {
         if (preg_match("#^lang\-(.+)\.php$#", $file, $matches)) {
            $linklist[$matches[1]] = ucwords(str_replace("_"," ", str_replace("russian","russian", $matches[1])));
            }
         }
      closedir($handle);
      ksort($linklist);
      }
   $content = "";
   $pre = "border=\"0\" hspace=\"3\" vspace=\"3\"";
   foreach($linklist as $langu => $alt) {
      $to = ($mode=='src') ? "src_lng=".$langu."&amp;trs_lng=".$_REQUEST['trs_lng']."" : "trs_lng=".$langu."&amp;src_lng=".$_REQUEST['src_lng']."";
      $content .= "<a href='"._CAL_ADM_SETCOLLINK."&amp;".$to."' title='".$alt."'><img src='images/language/flag-".$langu.".gif' alt='".$langu."' width='30' height='16' border='0'></a> ";
      }
   return $content;
   }



#########################################################################################

$_REQUEST['src_lng'] = (isset($_REQUEST['src_lng'])) ? $_REQUEST['src_lng'] : $GLOBALS['currentlang'];
$_REQUEST['trs_lng'] = (isset($_REQUEST['trs_lng'])) ? $_REQUEST['trs_lng'] : $GLOBALS['language'];

$op = (isset($_REQUEST["op"])) ? $_REQUEST["op"] : "CalSetcols";
switch($op) {
   case "CalSavecols":
      CalSavecols($op);
      die();
   case "CalSetcols":
      CalSetcols();
      die();
   default:
      CalSetcols();
      die();
   }


?>


но он работает коряво, а именно:
при записи данных на русском, он сохраняет создаваемый файл кракозябрами (вернее русскии буквы крякозябрами становятся)

кто знает как исправить? поможите плиз

0
 



С нами с 16.10.03
Сообщения: 686
Рейтинг: 392

Ссылка на сообщениеДобавлено: 03/06/06 в 00:17       Ответить с цитатойцитата 

наверное, проблема в функции htmlentities - она по умолчанию считает, что ей передана строка в кодировке ISO-8859-1.
есть два варианта решения:
1) использовать htmlspecialchars вместо htmlentities
тогда в шаблоне страницы, которую выводишь должно быть прописано <meta http-equiv = "Content-Type" content = "text/html; charset=windows-1251">
2) указать для htmlentities третьим параметром кодировку CP1251

Выигрышная стратегия игры в покер

3
 

эксклюзивщик

С нами с 08.03.05
Сообщения: 1013
Рейтинг: 512

Ссылка на сообщениеДобавлено: 03/06/06 в 00:36       Ответить с цитатойцитата 

лучше и проще всего поставить кодировку в htmlentities

уникальные предложения по съемке контента гомосексуального харрактера

3
 



С нами с 01.12.05
Сообщения: 339
Рейтинг: 248

Ссылка на сообщениеДобавлено: 03/06/06 в 00:37       Ответить с цитатойцитата 

Neuromancer писал:
наверное, проблема в функции htmlentities - она по умолчанию считает, что ей передана строка в кодировке ISO-8859-1.
есть два варианта решения:
1) использовать htmlspecialchars вместо htmlentities
тогда в шаблоне страницы, которую выводишь должно быть прописано <meta http-equiv = "Content-Type" content = "text/html; charset=windows-1251">
2) указать для htmlentities третьим параметром кодировку CP1251


спасибо!!!!! заработало прописал
Код:

htmlentities($caption, ENT_QUOTES,'cp1251'


ещё раз огромное спасибо

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »