[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. xXvladXx

    xXvladXx Elder - Старейшина

    Joined:
    28 Oct 2007
    Messages:
    77
    Likes Received:
    54
    Reputations:
    5
    у меня проблемма щас пишу двиг для форума и возникла такая проблемма мне надо отобразить все темы с определенным названием когда тема на инглише то все норм а когда на руссом то не ищет как я понял дело в маське в столбце надо сделать правильное "сравнение" сам запрос выглядит так:
    $result= mysql_query("SELECT * FROM `tops` WHERE `name` = CONVERT( _utf8 '$caption' USING ascii )");
    но так с темами на ингише все ном а когда на руссоком то жопа(
    помогите плиз что надо выбрать в "ставнении" для столбца name
     
  2. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    xXvladXx
    У тебя скорее всего кодировка страницы отличается от кодировки MySQL. У меня была подобная трабла. Поставь и там и там cp1251 и не парься. А если уж без перекодировки никак не обойтись то пользуйся функцией convert_cyr_string()
    http://forum.antichat.ru/showpost.php?p=523197&postcount=1157
     
  3. l0stc0der

    l0stc0der New Member

    Joined:
    12 Dec 2007
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    Уважаемые мемберы,

    подскажите, пожалуйста, реализуемо ли это В ПРИНЦИПЕ?

    Есть html форма, с которой отсылаются данные php скрипту.

    Фрагмент формы:

    ........

    Code:
    <input type=text name=var value="">
    .........
    Условия:
    Пхп скрипт ждет переменную $var, сравнивает ее с переменной $compare (которая задается самим скриптом):

    PHP:
    if $compare == $_REQUEST['var'] .....
    .. делаем определенные действия. (на самом деле, там не REQUEST, но в общем все сводится к этому)


    Собственно, сам вопрос:

    КАК можно в поле value в хтмл форме подставить $var,
    чтобы скрипт сравнивал $compare==$compare;

    Например, сделать так:
    Code:
    <input type=text name=var value="$compare">
    не получается

    Заранее спасибо.
     
  4. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    PHP:
    <input type=text name=var value="<?=$compare?>">
    Но при этом должен быть включён парсинг PHP кода в файлах .html
     
    3 people like this.
  5. Sn@k3

    Sn@k3 Elder - Старейшина

    Joined:
    13 Apr 2006
    Messages:
    1,000
    Likes Received:
    438
    Reputations:
    90
    ну так обозначь этот хтмл как выполняемый php скрипт(в htaccess) и подставляй
     
  6. l0stc0der

    l0stc0der New Member

    Joined:
    12 Dec 2007
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0
    фактически, html форма выглядит как php скрипт:

    PHP:
    <? .......... echo ' <input type=text name=var value="" ';

    но с приведенными выше примерами нифига не получается :((

    При отправке формы php дает notice, что переменная $compare не определена и передает скрипту пустое значение..

    Заранее html форме неизвестно значение $compare, оно генерируется пхп скриптом на стадии получения данных с формы.

    В итоге пхп скрипт или выдает ТЕКСТ $var или возвращает пустое значение..
     
    #1186 l0stc0der, 12 Dec 2007
    Last edited: 12 Dec 2007
  7. eXp

    eXp Member

    Joined:
    6 Nov 2007
    Messages:
    13
    Likes Received:
    6
    Reputations:
    4
    А как перевести из utf-8 в cp1251? C помощью convert_cyr_string() не получается =\
     
  8. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    PHP:
    <?
    $compare='some_value';
    $compare=isset($_REQUEST['var'])?$_REQUEST['var']:$compare;
    echo(
    '<input type=text name=var value="'.$compare.'">');
    ?>
     
  9. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    PHP:
    <?
    function 
    Utf8ToWin($fcontents) {
        
    $out $c1 = \;
        
    $byte2 false;
        for (
    $c 0;$c strlen($fcontents);$c++) {
            
    $i ord($fcontents[$c]);
            if (
    $i <= 127) {
                
    $out .= $fcontents[$c];
            }
            if (
    $byte2) {
                
    $new_c2 = ($c1 3) * 64 + ($i 63);
                
    $new_c1 = ($c1 >> 2) & 5;
                
    $new_i $new_c1 256 $new_c2;
                if (
    $new_i == 1025) {
                    
    $out_i 168;
                } else {
                    if (
    $new_i == 1105) {
                        
    $out_i 184;
                    } else {
                        
    $out_i $new_i 848;
                    }
                }
                
    $out .= chr($out_i);
                
    $byte2 false;
            }
            if ((
    $i >> 5) == 6) {
                
    $c1 $i;
                
    $byte2 true;
            }
        }
        return 
    $out;
    }

    ?>

    ИЛИ

    PHP:
    <?php
    function UTF8toCP1251($str){ // by SiMM, $table from http://ru.wikipedia.org/wiki/CP1251
      
    static $table = array("\xD0\x81" => "\xA8"// Ё
                            
    "\xD1\x91" => "\xB8"// ё
                            // украинские символы
                            
    "\xD0\x8E" => "\xA1"// Ў (У)
                            
    "\xD1\x9E" => "\xA2"// ў (у)
                            
    "\xD0\x84" => "\xAA"// Є (Э)
                            
    "\xD0\x87" => "\xAF"// Ї (I..)
                            
    "\xD0\x86" => "\xB2"// I (I)
                            
    "\xD1\x96" => "\xB3"// i (i)
                            
    "\xD1\x94" => "\xBA"// є (э)
                            
    "\xD1\x97" => "\xBF"// ї (i..)
                            // чувашские символы
                            
    "\xD3\x90" => "\x8C"// Ӑ (А)
                            
    "\xD3\x96" => "\x8D"// Ӗ (Е)
                            
    "\xD2\xAA" => "\x8E"// Ҫ (С)
                            
    "\xD3\xB2" => "\x8F"// Ӳ (У)
                            
    "\xD3\x91" => "\x9C"// ӑ (а)
                            
    "\xD3\x97" => "\x9D"// ӗ (е)
                            
    "\xD2\xAB" => "\x9E"// ҫ (с)
                            
    "\xD3\xB3" => "\x9F"// ӳ (у)
                           
    );
      return 
    preg_replace(#([\xD0-\xD1])([\x80-\xBF])#se,
                          
    isset($table["$0"]) ? $table["$0"] :
                           
    chr(ord("$2")+("$1" == "\xD0" 0x30 0x70))
                          ,
                          
    $str
                         
    );
    }
    ?> 
    PS функции не мои
     
  10. l0stc0der

    l0stc0der New Member

    Joined:
    12 Dec 2007
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0

    Спасиб, НО... пхп скрипт-обработчик я модифицировать НЕ МОГУ (он находится на сервере, прав нету).

    Единственный выход - мучить форму (или пхп или хтмл, что, в принципе, все равно)
     
  11. Macro

    Macro Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    552
    Likes Received:
    298
    Reputations:
    207
    Ээ не понял, а что тебе надо-то?
    Или понял? Тебе хочется чтобы $compare равнялась $compare без знания этой $compare? Не выйдет. Такое может получиться только если идет eval()
     
    #1191 Macro, 12 Dec 2007
    Last edited: 12 Dec 2007
  12. l0stc0der

    l0stc0der New Member

    Joined:
    12 Dec 2007
    Messages:
    4
    Likes Received:
    1
    Reputations:
    0

    фак.. а такая задумка была...

    Спасибо.


    Еще один вопрос: можно ли обойти strip_tags?
     
    #1192 l0stc0der, 12 Dec 2007
    Last edited: 12 Dec 2007
    1 person likes this.
  13. nd.Executor

    nd.Executor New Member

    Joined:
    29 Oct 2007
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    PHP:
    $text         =     iconv("UTF-8""CP1251"$text);  
    Работает 100%
     
  14. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    вопрос. я заношу в бд через текст ареу текст с <img scr=img/male.gif>, думал что при выводе в браузер будет видно текст и рисунок, а рисунка нет, выводит просто пустой квадрат, почему так?
     
  15. lsass.exe

    lsass.exe Elder - Старейшина

    Joined:
    5 Aug 2007
    Messages:
    156
    Likes Received:
    161
    Reputations:
    24
    проверь пути,тоесть папку где лежит срипт вывода контента и где относительногонего находятся картинки
     
    1 person likes this.
  16. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Ну осмелюсь предположить, что он картинку не находит... Попробуй абсолютные пути прописывать, если использование относительных выхывает у тебя затруднение.
     
    3 people like this.
  17. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    не знаю может тут уже было, не искал, как сделать, чтобы в бд русский шрифт записывался русским а не иероглифами? ну и в последствии выводить
     
  18. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    оправка письма

    вот такая проблема возникла. Оправляю письма на yahoo не доходит, а на меил доходит нормально. Отключил в настройках спам контроль письма доходят через один и помечатся как спам. поискал в нете нашел вот такое объяснение
    Как можно это обойти? Если можно сразу с хидерами.

    XopoIII по пробуй при соединение с базой прописать. И база у тя должна быть в этой кодировке.
    PHP:
    mysql_query("SET NAMES cp1251");
     
    #1198 gibson, 14 Dec 2007
    Last edited: 14 Dec 2007
    1 person likes this.
  19. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    mysql_query("SET NAMES cp1251");
    и
    mysql_query("SET CHARSET cp1251");
    и база должна быть в cp1251 если бзу неможеш сделать, переделай все таблицы в cp1251
     
    2 people like this.
  20. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    gibson, да никак ты это не сделаешь... Развёртывай у себя на хосте SMTP-сервер... Хотя, там тоже не дураки сидят, и при большом количестве спама добавят всю подсеть в бан... Это дело хидерами не обходится...
     
Thread Status:
Not open for further replies.