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

Форум PHP

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

 

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

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

тема: Преобразование кодировки
 
 автор: dmitru   (17.01.2009 в 06:43)   письмо автору
 
 

в скрипте должна срабатывать переменная enc приходит она с сылкой

http:// .......... &enc=utf-8

но ничего не работает
а вот такая хрень в скрипте




$enc =(int)isset($_GET['enc']) 
$db->query('SET NAMES "' . $enc . '"');



должно переводить в utf-8 но вместо этого когда вставляеш в код
$enc =(int)isset($_GET['enc'])
$db->query('SET NAMES "' . $enc . '"');
вобще ничего не работает

  Ответить  
 
 автор: sim5   (17.01.2009 в 06:51)   письмо автору
 
   для: dmitru   (17.01.2009 в 06:43)
 

<?
$enc 
"utf-8";
echo (int)
$enc;

isset()

  Ответить  
 
 автор: dmitru   (17.01.2009 в 07:03)   письмо автору
 
   для: sim5   (17.01.2009 в 06:51)
 

БРАТАН
вобще перестаёт работать там не только эта переменная в сылке передаётся

http://...........ru/linkblock.php?id=124&len=500&link_count=10&sep=%3Cbr%3E&enc = utf-8


вот полный текст linkblock.php
<?php
  header
("Cache-Control: no-cache, must-revalidate");
  
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  
header("Pragma: no-cache");
  
  if(!isset(
$_GET['id']))
    die(
'Блок ссылок некорректно размещён');
  
  function 
get_link()
  {
    global 
$db;


   
    
$rand rand(09999999);
    
$res mysql_fetch_row(
            
$db->query('SELECT `ad1`.`id`, `ad1`.`name` FROM `'.$db->config['db_pref'].'advertisement` as `ad1`, 
                                                  `'
.$db->config['db_pref'].'user` as `us`
                        WHERE  `ad1`.`active` = 1 AND `ad1`.`id_user` = `us`.`id` AND `us`.`balance` > 0 AND `us`.`banned` = 0
                          AND (`ad1`.`reit_start` < '
.($rand/10000000).' AND `ad1`.`reit_end` > '.($rand/10000000).')
                          '
)
                          );
    return 
$res;
  }

  
ini_set('display_errors'1);
  
ini_set('html_errors'0);
  
error_reporting(E_ALL);
  
  include 
"core/core.class.php";
  
  
$core = new core();  

  
// !!!!#### check licence ####!!!! //

  
$core->exec('load config %root_path%config.ini');
  
  include 
$core->config['classes_path'].'c_time.class.php';
  include 
$core->config['functions_path'].'timer.function.php';
  
  
$core->exec('load module db -sm connect');
  





  
$sz 0;
  
$lc = isset($_GET['link_count'])?$_GET['link_count']:$core->config['link_count'];
  while(
$sz $lc)
  {
    
$links[] = get_link();
    
$sz++;
  }
  
$url $core->config['site_url'].$core->config['cms_url'];
 

 
$id = (int)$_GET['id'];  

$enc "utf-8"
echo (int)
$enc;

$enc =(int)isset($_GET['enc']) 
$db->query('SET NAMES "' $enc '"');







  
$html '';
  
$html '<div align="center"><a style="font-size: 10pt" href="работа</b></a></div>';
  
$len = (int)isset($_GET['len'])?$_GET['len']:255;
  
$sep = isset($_GET['sep'])?$_GET['sep']:'<br>- ';
  foreach (
$links as $line)
  {
    
$html.=$sep.'<a href="'.$url.'link.php?id='.$line[0].'&aid='.$id.'">'.substr($line[1],0,$len).'</a>';
  }
  
//print_r($db);
  
if(isset($_GET['float']))
  {
    
$html.='<br><div align="center"><a href="#" onclick="cls00(); return false;">Свернуть </a></div><br>';
  }
  echo 
'document.getElementById(\'linkblock\').innerHTML=\''.$html.'\';'."\r\n\r\n";
  if(isset(
$_GET['float']))
  {    
    echo 
'
    function cls00()
    {
      document.getElementById(\'linkblock\').style.visibility = \'hidden\';
    };
var skptlink_height=0;
var skptlink_width=0;
var z=0;
var b=0;
var skptlink_width_start=0;
var skptlink_height_start=0;
var dhi=5;

function skptlink_dh(){
    if (dhi > 1){
        dhi--;
        if (dh < 1){
            if (document.getElementById("linkblock").offsetHeight > 0){
                dh = document.getElementById("linkblock").offsetHeight;
                clearInterval(skptlinkdh);
                skptlink_start();
            }
        }else {
            clearInterval(skptlinkdh);
            skptlink_start();
        }
    } else {
        clearInterval(skptlinkdh);
        dh=400;
        skptlink_start();
    }
}
function skptlink_start(){
     z=wh-dh;
if (z<0)z=0;
document.getElementById("linkblock").style.top=z;
skptlink_height='
.(isset($_GET['floatpos'])&&($_GET['floatpos']=='topright' || $_GET['floatpos']== 'topleft')?'0':'z').';

     b=ww-dw;
if (b<0)b=0;
document.getElementById("linkblock").style.left=b;
skptlink_width='
.(isset($_GET['floatpos'])&&($_GET['floatpos']=='bottomleft' || $_GET['floatpos']== 'topleft')?'0':'b').';

    skptlinkmove=setInterval("skptlink_move()",20);
}
function skptlink_move(){
    if(document.all)
    {
      if(document.body.scrollTop != 0 || document.body.scrollLeft != 0)
      {
          ydiff=skptlink_height_start-document.body.scrollTop; 
          xdiff=skptlink_width_start-document.body.scrollLeft;
      }
      else
      {
          ydiff=skptlink_height_start-document.documentElement.scrollTop; 
          xdiff=skptlink_width_start-document.documentElement.scrollLeft;
      }
    }
    else
    {
        ydiff=skptlink_height_start-window.pageYOffset; 
        xdiff=skptlink_width_start-window.pageXOffset;
    }
    if(ydiff!=0)
    {
        movey=Math.round(ydiff/10);
        skptlink_height_start-=movey;
    }
    if(xdiff!=0)
    {
        movex=Math.round(xdiff/10);
        skptlink_width_start-=movex;
    }
    if(document.getElementById("linkblock"))
    {
        document.getElementById("linkblock").style.top=skptlink_height_start+skptlink_height;
        document.getElementById("linkblock").style.left=skptlink_width_start+skptlink_width-('
.(isset($_GET['width'])?(int)$_GET['width']:'200').'-200);
    }
}
if(document.body.clientWidth != 0 || document.body.clientHeight != 0 || document.body.offsetWidth != 0)
{
  if (document.body.clientWidth < document.body.offsetWidth){
      if (document.body.clientWidth > 0)
          var ww=document.body.clientWidth - 10;
      else 
          var ww=document.body.offsetWidth - 10;
  } else {
      if (document.body.offsetWidth > 0)
          var ww=document.body.offsetWidth - 20;
      else 
          var ww=document.body.clientWidth - 10;
  }
  var wh=document.body.clientHeight;  
}
else
{
  if (document.documentElement.clientWidth < document.documentElement.offsetWidth){
      if (document.documentElement.clientWidth > 0)
          var ww=document.documentElement.clientWidth - 10;
      else 
          var ww=document.documentElement.offsetWidth - 10;
  } else {
      if (document.documentElement.offsetWidth > 0)
          var ww=document.documentElement.offsetWidth - 20;
      else 
          var ww=document.documentElement.clientWidth - 10;
  }
  var wh=document.documentElement.clientHeight;  
}
//document.getElementById("linkblock").style.width=ww*0.2;
//document.getElementById("linkblock").style.width = 400;
var dw=document.getElementById("linkblock").offsetWidth;
if (dw < 1) dw=200;
var dh=document.getElementById("linkblock").offsetHeight;
if (dh < 1){
//    dh=400;
    skptlinkdh=setInterval("skptlink_dh()",200);
} else {
    skptlink_start();
}'
;
  }
?>

  Ответить  
 
 автор: sim5   (17.01.2009 в 07:11)   письмо автору
 
   для: dmitru   (17.01.2009 в 07:03)
 

Вы соображаете что делаете? Вот это:
$enc = "utf-8";
echo (int)$enc;
Я написал для того, чтобы вы поняли, что в конечном итоге строковое значение вашей переменной примет 0, достаточно было не полениться и выполнить отдельно то, что я и показал. Вы вместо этого, честно воткнули это в свой код. И почитайте, что такое isset, и с какого боку оно нужно в вашем выражении.

  Ответить  
 
 автор: dmitru   (17.01.2009 в 07:17)   письмо автору
 
   для: sim5   (17.01.2009 в 07:11)
 

братан я 0 в этих буковках когдато знал бэйсик ещё поэтому и прошу помощи на разных форумах чтоб сказали что написать надо
я тока примерно пониманимаю что это код а что такое isset я никогда не знал

а с этим

$enc = "utf-8";
echo (int)$enc;

я уже 4 день мозг себе разрушаю
да когдато и я буду великим програмистом :}

  Ответить  
 
 автор: sim5   (17.01.2009 в 07:37)   письмо автору
 
   для: dmitru   (17.01.2009 в 07:17)
 

Я вам дал ссылку прочитать, что такое isset - эта функция проверяет, установлена ли указаная переменная, и в вашей записи она не к чему. То есть, запись $enc = isset($_GET['enc']) глупа по смыслу. А записывая так:
$enc =(int)$_GET['enc']
В итоге получите это:
$db->query('SET NAMES 0');
Потому как (int), это приведение типа к integer, а переменная $_GET['enc'] не содержит такового значения. Не знаете, читайте.
В вашем случае, проверяйте:
if (isset($_GET['enc'])) {
ваши действия
}
И уж коли хотите пользоваться числовыми аргументами переменных, то ссылка должна содержать enc=1, например, и уж тогда вполне оправдано intval($_GET['enc']), и полученное использовать как индекс массива, который будет содержать записи, типа "utf-8", "windows-1251"...

  Ответить  
 
 автор: Николай2357   (17.01.2009 в 08:50)   письмо автору
 
   для: sim5   (17.01.2009 в 07:37)
 

Ну пожалейте человека, он же ещё 4 дня читать Ваш мануал будет))) Тут не так надо....

Для dmitru

Чувак, не парься, вот так примастырь:
<?
$enc 
= isset($_GET['enc'])?str_replace("-","",$_GET['enc']):"cp1251";
и будешь чемпиёном!

  Ответить  
 
 автор: sim5   (17.01.2009 в 09:24)   письмо автору
 
   для: Николай2357   (17.01.2009 в 08:50)
 

Ему не мое читать надо, а от разработчиков. Ну коли что-то "пихать" в код, ну уж хотя бы поинтересоваться что оно делает.

  Ответить  
 
 автор: dmitru   (17.01.2009 в 15:17)   письмо автору
 
   для: Николай2357   (17.01.2009 в 08:50)
 

братан всё равно не региагирует на переменную скрипт в браузере всё квадратами

  Ответить  
Rambler's Top100
вверх

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