За последние 24 часа нас посетили 16090 программистов и 1666 роботов. Сейчас ищут 1086 программистов ...

как пришить PHP к HTML ?

Тема в разделе "PHP для новичков", создана пользователем Fati, 10 фев 2012.

  1. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и сервер перезапустили? судя по крякозябрам файл уже в нужно кодировке. может быть в самом файле указывается неверная кодировка? должно быть вот так
    Код (Text):
    1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    фати, включи отображение скрытых и системных файлов, а также отображение расширений файлов.
     
  3. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    спасибо огромное за помощь, ребята!
    вот где была зарыта собака:
    [​IMG]
    я закомментировала эту строку, а кодировка utf-8 у меня, действительно, и так в мета-теге обозначена.
    всё стало в порядке, вроде
    уф). всё пока. Попробую начать работать)
    ещё раз спасибо вам всем за помощь
     
  4. tigr1

    tigr1 Активный пользователь

    С нами с:
    12 фев 2012
    Сообщения:
    3
    Симпатии:
    0
    Игорь здравствуйте ! А в связи с таким вопросом можно я тоже один глупый вопрос задам? А именно: а можно ли использовать именно html-файл, но в него как-то вкладывать php-код кусками, например в тех случаях, когда достаточно и html-файла, но нужно лишь вставить некий текст из базы данных, то есть сделать такое включение, это возможно?
     
  5. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    здрасти
    ребята, ещё вопросик.

    файл css я тоже ведь должна поместить в папку в денвере, где лежит теперь основной файл php (бывший .html).
    вопрос:
    а как я теперь должна подобраться к редактированию css , который теперь находится в денвере? его что, тоже переименовать в php?
    Выяснилось , что находясь в денвере, он не хочет редактироваться, при том, что основной файл php читает его. Но он видит только то, что было в этом css на момент его помещения в денвер.
    как решается эта проблема?

    спасибо
     
  6. elmister

    elmister Активный пользователь

    С нами с:
    12 фев 2012
    Сообщения:
    1
    Симпатии:
    0
    Как у вас в HTML файле указан путь к CSS? И что значит не дает редактировать?
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    tigr1
    с точки зрения компьютера все файлы - одинаковые.
    так что можно как-то добавить расширение и они будут передаваться на интерпретатор пхп.

    Только проще переименовать =)

    А еще лучше использовать нормальную CMS.
     
  8. Neka

    Neka Активный пользователь

    С нами с:
    16 янв 2010
    Сообщения:
    188
    Симпатии:
    0
    Я таким не страдал, т.к. нет в этом никакой необходимости, но говорят, что это не возможно. Попробуйте, это не страшно)) Потом поделитесь результатами.
    Ctrl + Shift + R - Обновление кэша браузера.
    Когда сайт в первый раз подгружается в браузере, по умолчанию .css и .js файлы кэшируются, т.е. браузер сохраняет в своем хранилище эти файлы, и при следующем заходе на этот сайт, браузер не просит снова эти файлы у сервера, а берет те, которые сохранил у себя. Поэтому ваши изменения и не видны.

    Вот еще один способ:
    <link href="style.css?v" type="text/css" rel="stylesheet" />
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вы наверное перепутали:)

    наверна имели введу
    Код (PHP):
    1. <div>
    2. <?php ...php code... ?>
    3. </div>
    Но это только если будет расширение php.
    Тот же index.html только уже index.php - переименовать расширение файла.
     
  10. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    здравствуйте.

    ребята, подскажите, пожалуйста, нормально ли следующее:
    я сохранила все страницы своего сайта в PHP.
    теперь , когда я перехожу с помощью кнопок навигации на любую из страниц (в денвере), то эта "любая из страниц" открывется в Html, без Php-украшений , конечно. Хотя у всех этих страниц уже есть PHP-аналоги в корневой папке.
    Это нормально, что открываться при нажатии на кнопку навигации всё равно будет только Html ?

    и это значит, что при каждом переходе на другую страницу мне нужно менять в адресе броузера расширение?
    а что же будет, когда отправлю их на хостинг? или отправлять я буду только *.php , а html оставлю себе на память ?
    я ещё ничего не отправляла на хостинг, поэтому боюсь, что там тоже начнётся неразбериха.

    спасибо.
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    менять расширение у ссылок))))
     
  12. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Ganzal, имеешь в виду в броузере,каждый раз, как перехожу на другую страницу?
    а почему броузер не запоминает введённое расширение? и как только перехожу на другую страницу, а потом тут же возвращаюсь , в нём опять написано *.html
     
  13. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    потому что браузер отображает то что сверстано в исходном коде. и он не должен запоминать ручную замену в адресной строке. править нужно исходный HTML
     
  14. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    ааа ну, да. ..это же очевидно.
    извиняюсь
     
  15. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Здравствуйте снова.
    ребята, помогите найти ошибку в 19-ой строке.
    идея в том, что я создаю счётчик посещений (цифры будут картинками)):
    Код (Text):
    1. <?
    2.  
    3.  $file_name="counter.txt";
    4.   //cуществует ли файл, в котором хранится занчение счётчика?
    5.   if(!file_exists($file_name))  {
    6.                                 $fp=fopen($file_name, "w");
    7.                                 fwrite($fp, "0");
    8.                                 fclose($fp);
    9.                                 }
    10.                                
    11.                                 //cчитываем значение счётчика:
    12.                                 $fp=fopen($file_name, "r");
    13.                                 $counter=fread($fp, 10);
    14.                                 fclose($fp);
    15.                                
    16.                                 //опрашиваем значение cookie:
    17.                                 $visitor=$_COOKIE["visitor"];
    18.                                 if(!isset($visitor)) {
    19.                                                     setcookie("visitor", "yes");
    20.                                                     $counter++;
    21.                                                     $fp=fopen($file_name, "w");
    22.                                                     fwrite($fp, $counter);
    23.                                                     fclose($fp);
    24.                                                     }
    25.                                                    
    26.                                  //преобразуем счётчик в граф.изобр.:                  
    27.                                 $number=strlen($counter);
    28.                                 $counter_graphic="";
    29.                                 for($pos=0; $pos<$number; $pos++)
    30.                                  {
    31.                                  $digit=substr($counter, $pos, 1);
    32.                                 $counter_graphic .= "<img src=\"$digit.png\" >";
    33.                                  }
    34.                                                        echo "счётчик посещений: ", $counter;
    35.  ?>  
    для строки 19 :
    setcookie("visitor", "yes"); - (она на 19-ой строке)
    броузер упорно выдаёт ошибку следующего содержания:
    Warning: Cannot modify header information - headers already sent by (output started at Z:\home\denwer_f.ru\www\cookie.php:1) in Z:\home\denwer_f.ru\www\cookie.php on line 19
    я всё сделала по учебнику один в один.
    По идее, счётчик с куками уже не должен увеличивать своё значение (в этом ведь и фишка), но он продолжает увеличивать, как будто и нет никаких куков.
    Может, это потому, что всё в денвере, может, никаких куки денвер и не создаёт? А только настоящий сервер?
    эту строчку в самом конце: echo "счётчик посещений: ", $counter; я подставила, т.к. у вас нет моих картинок для цифр, и цифры будут выводиться по-простому.

    ))помогите, кто может.
    спасибо.
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    заголовки должны идти до вывода любого текста. куки задаются в заголовках. а видимо до 19 уже выводился какой-то текст.
     
  17. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
  18. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Игорь, имеешь в виду заголовок в титле? но перед ним у меня ничего нет кроме тега <html>.
    а тот фрагмент кода, что я привела , он у меня в отдельном файле, который я пришиваю к файлу html и в html (е) просто вставляю переменную в нужное место.

    Добавлено спустя 6 минут 57 секунд:
    Your, спасибо за информацию. Поменяла кодировку в Ноутпаде++, но ничего не изменилось.
    может, причина ещё в том, что в мета-теге файла html у меня кодировка осталась просто utf-8 :
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    ..а как же я туда подставлю слово "без" (без BOM) ? )
    и в файле конфигурации денвера также стоит кодировка просто utf-8
     
  19. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    заголовок, который сервер браузеру отправляет перед содержимым. если в ваших файлах вдруг какое-то содержимое отправляется до того как сервер пытается отправить заголовки - возникает ошибка headers already sent в которой четко написано какой именно файл начал выдавать содержимое. грубо говоря так.
    лишний перевод строки или метка BOM в utf-кодированном файле чаще всего и порождают такие ошибки
     
  20. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Ganzal, спасибо за ответ.
    мне вернуть кодировку обратно на просто utf-8?
    я так и не поняла, имеется в виду заголовок, который в титле, или вообще любой заголовок на странице?
    ошибка ссылается как раз на файл PHP, в котором я отдельно сохраняю все скрипты PHP (пока у меня там только вывод даты и этот счётчик с куками), на ту строку в которой написано:
    setcookie("visitor", "yes");
    Этот файл я просто подшиваю к html .
    как же мне выяснить, что сервер отсылает броузеру раньше заголовков?
     
  21. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ё-маё... ясным по белому написал что в данном случае подразумевается под заголовком
    чтоб вы понимали как все ЭТО происходит
    пользователь совершает действие в браузере (ввод адреса, нажатие ссылки, событие сценария и тд)
    браузер подключается к серверу
    браузер отправляет заголовки ЗАПРОСА к серверу
    браузер отправляет тело запроса к серверу (если оно есть)
    сервер отправляет заголовки ОТВЕТА браузеру
    сервер отправляет тело ответа браузеру (если есть)
    бразер рендерит содержимое и принимает требуемое действие

    если ваш скрипт написан криво или лезет метка порядка байтов (byte order mark, BOM) то сервер дойдя до этого момента считает что работа с заголовками ответа завершена, он их отправляет и далее выводит требуемые символы тела ответа.
    и тут ваш скрипт пытается поставить печеньку пользователя. а печенье - в заголовке ответа. сервер пытается отправить заголовки ответа но вот беда - они УЖЕ были отправлены и именно этот факт сервер констатирует ошибкой headers already sent и говорит в каком месте сценария он ПО ТРЕБОВАНИЮ АВТОРА СКРИПТА это сделал. а автор уже думает что делать с этой ошибкой.

    нет, рекомендую всегда без BOM

    и да - title - это то какой заголовок браузер должен показать у своего окна для данной страницы. попробуйте без него - в зависимости от браузера заголовок будет содержать либо только название браузера либо ссылку на страницу. и через DOM этот заголовок можно поменять легко.

    и еще да - именно заголовками ответа браузеру говориться что сейчас полезет телом
    попробуйте в самом начале своего сценария написать header('content-type: text/plain') и ваша страница которую вы ожидаете красивой такой с ссылочками, болдами и италиками будет выведена вообще исходным текстом. а если добавите - header('content-type: image/jpeg'); то ничего не увидите - браузер попытается обработать тело ответа (которое исходный текст хтмл) как картинку в формате жыпег и у него это не получится.

    чуть-чуть хоть яснее стало? справитесь с ошибками?
     
  22. Fati

    Fati Активный пользователь

    С нами с:
    9 фев 2012
    Сообщения:
    45
    Симпатии:
    0
    Ganzal, всё получилось, я даже так и не поняла, что сделала.
    извини, что не понимаю. не сердись.
    cпасибо тебе огромное за все разъяснения.
     
  23. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    вот это очень плохо))))
     
  24. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Все файлы делайте UTF - 8 (без BOM) и не будет у вас проблем и базу, таблицы, колонки (utf8_general_ci).
    В соединениях mysql тоже нужно прописать utf8.

    <meta> тег у вас правильный.

    В .htaccess, тоже и вообще настройте веб сервер для работы с utf-8.
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сервер с браузером разговаривают на своем языке.
    ответ сервера состоит из двух частей: заголовок и содержимое.
    содержимое это страница ваша, или файлик какой, картинка например.
    в заголовках живут технические параметры. например, куки или рекомендации по кешированию.