Автор Тема: Отображение страницы в альтернативных браузерах  (Прочитано 2615 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexZ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
До сего дня не имел ни грамма опыта программирования на Perl, мал-мала пописывая на PHP. Но тут меня поставили перед задачей, решить которую просто необходимо.

Есть некоторый сайт, кусок исходного кода которого привожу ниже. И если в IE конечная информация выводится, как надо, то в альтернативных браузерах, таких, как Opera или FireFox, выводится просто исходный код HTML\'я.


#!c:/perl/bin/perl
use strict;
use CGI::Carp qw(fatalsToBrowser);
use lib "mods";
use CGI;
use Mysql;
use sys_Connect_DB;
use sys_Template;
use sys_rcCatalog;
use sys_rcNews;
use sys_rcNews_eng;

my $adm_script = "adm-cp.cgi";
my $adm_css    = "config.css";
my $img_path   = "/img/";
my $uploads    = "uploads/";
my $uploadsurl = "/uploads/";
my $template   = "inc";
my %params;
my $title = "test";

print "content-type: text/html\\n\\n";
my $cgi = new CGI;
my @names = $cgi->param;
foreach my $line (@names) {
  my $val = $cgi->param($line);
  $params{$line} = $val;
}

my $html;
if ($params{page} eq "") {
  my $where = "where sign=6";
  $html = &sys_Template::sys_Template_HTML("$template/sub.htm", {
                                                   list   => &sys_rcCatalog::get_Catalog_list(1, "/product/;$uploadsurl;$uploads", 0, \'\', \'width=100% align=right\', \'nopath\'),
                                                   body   => &sys_rcNews::get_news(\'width=100% align=right\', \'\', $where),
                                                   search => &sys_rcCatalog::get_Search_Form(1, "/product/;$uploadsurl;$uploads", $params{cid}, $params{at}, \'width=100% align=right\', \'nolink\'),
                                                   title  => $title

                                           });
}
print $html;


Т.е. исходный текст страницы передается в переменную $html. При печати этой переменной движок IE интерпретирует хтмл код правильно, а вот Опера, к примеру, видит это, только как обычный текст, соответственно выдавая его на экран.

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
запустите и посмотрите, что скрипт выдает в stdout

Оффлайн AlexZ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Хм... Может быть, я не так понял... Но ведь stdout для print\'а используется по умолчанию, выводя значение $html на экран?

Оффлайн AlexZ

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проблема решена.

Вместо print $html;  поставил print qq{Content-Type: text/html\\n\\n $html};

Спасибо Arto за отзывчивость :)

Оффлайн arto

  • Ветеран
  • *****
  • Сообщений: 699
  • +0/-0
  • 2
    • Просмотр профиля
если уже есть CGI.pm, то проще print $cgi->header ()

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28