пробел перед <!DOCTYPE html PUBLIC

P
На сайте с 06.01.2009
Offline
601
2357

Здравствуйте. Честно весь рунет излазил. Не нашел решения. Т.е. решения есть, но я их все проделал - у меня пробел так и остался. Страница отображается нормально, проверял в разных браузерах, но хотелось бы убрать этот пробел (скрин почему то оказался внизу)

Вот начальный код страницы index2.php


<?
// определим url
$tekurl = $_SERVER['REQUEST_URI'];
$tekurl = substr($tekurl, 1); // удалим первый слеш
// пробежимся по всем таблицам БД и поймем есть урл или нет и в какой таблице он
$db = mysql_connect('localhost','sdss','********');
mysql_select_db('werxff', $db);
mysql_query("SET CHARACTER SET 'utf8'", $db); // приводим в кодировку utf-8
mysql_query("SET NAMES 'utf8'", $db); // приводим в кодировку utf-8
$tablemass=array("statyi_001st", "zaprosy", "osnova");
$nooshibka=0;
foreach ($tablemass as $value) {
$result = mysql_query("SELECT id FROM $value WHERE urlstranizi='$tekurl' LIMIT 1");
$vsego = mysql_num_rows($result);
if ($vsego>0) {$nashatable=$value; $nooshibka=1; break(1);}
}
// отдаем серверу ошибку 404
if ($nooshibka===0) { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); }
if ($nooshibka===1) {
//значит страница есть
if ($nashatable==='statyi_001st') {$razdel='statji';}
if ($nashatable==='zaprosy') {$razdel='zaprosy';}
if ($nashatable==='osnova') {$razdel='osnovnoy';}
if ($nooshibka===1) {
if ($razdel==='osnovnoy') {include('includ/osnovnoy/sobiraem-dannye.php');}
if ($razdel==='statji') {include('includ/001st/sobiraem-dannye.php');}
if ($razdel==='zaprosy') {include('includ/zaprosy/sobiraem-dannye.php');}
}
}
include('includes/doctype.php');

.htaccess


AddDefaultCharset UTF-8
RewriteEngine On
#редиректим с index.php на зеркало
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index2.php [NC,L]

Стоит ометить, что если мы вбиваем адрес несуществующей страницы, то в результате код страницы нормальный (без пробела перед <!DOCTYPE)

от сюда делаю вывод что пробел появляется откуда то от сюда


if ($nooshibka===1) {
//значит страница есть
if ($nashatable==='statyi_001st') {$razdel='statji';}
if ($nashatable==='zaprosy') {$razdel='zaprosy';}
if ($nashatable==='osnova') {$razdel='osnovnoy';}
if ($nooshibka===1) {
if ($razdel==='osnovnoy') {include('includ/osnovnoy/sobiraem-dannye.php');}
if ($razdel==='statji') {include('includ/001st/sobiraem-dannye.php');}
if ($razdel==='zaprosy') {include('includ/zaprosy/sobiraem-dannye.php');}
}
}
include('includes/doctype.php');

А раз от сюда, значит должен выложить код, например, includ/zaprosy/sobiraem-dannye.php и вот он


<?
$result = mysql_query("SELECT username, companyname, telefone, usermail, zagolovok, zapros, date, time, formaoplaty, aktualen FROM zaprosy WHERE urlstranizi='$tekurl' LIMIT 1");
$vsego = mysql_num_rows($result);
if ($vsego>0) {
$dannye = mysql_fetch_array($result, MYSQL_ASSOC); // ассоциативн массив
$username = $dannye['username'];
$companyname = $dannye['companyname'];
$telefone = $dannye['telefone'];
$usermail = $dannye['usermail'];
$zagolovok = $dannye['zagolovok'];
$zapros = $dannye['zapros'];
$date = $dannye['date'];
$time = $dannye['time'];
$formaoplaty = $dannye['formaoplaty'];
$aktualen = $dannye['aktualen'];
}

mysql_free_result($result);
mysql_close($db);
// закрыли соединение с БД

$title = $zagolovok;
$keywords='no empty';
$description='no empty';
$h1 = $zagolovok;
?>

Если у кого то будет время, прошу посмотреть. Сорри что так много написал, но это чтобы показать всё...

ps Само собой doctype.php без пробелов. Все файлы в UTF-8 без BOM.

jpg 115355.jpg
C
На сайте с 04.02.2005
Offline
291
#1

в index2.php

<?php

должно быть Самой Первой Строкой и начинаться с Самой Первой Позиции

если все в порядке, то попробуйте вывод сохранить в файл, и посмотрите какой код первого символа.

P
На сайте с 06.01.2009
Offline
601
#2
Chukcha:
в index2.php
<?php
должно быть Самой Первой Строкой и начинаться с Самой Первой Позиции

если все в порядке, то попробуйте вывод сохранить в файл, и посмотрите какой код первого символа.

В смысле "исходный код" сохранить в файл? Делал - там пробел. Сейчас ещё раз попробую.

jpg 115356.jpg
jpg 115357.jpg
M2
На сайте с 11.01.2011
Offline
341
#3

А вы уверены что все-все файлы в UTF8 и без BOM?

------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
bay_ebook
На сайте с 28.05.2010
Offline
111
#4

Все в разы проще :)

Пробел идет не в начале файла (хотя может быть), а в конце, после ?>

Лучше всего во всех файлах, которые приходят через include - убрать вообще закрывающий ?>

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
P
На сайте с 06.01.2009
Offline
601
#5
mark2011:
А вы уверены что все-все файлы в UTF8 и без BOM?

100% да. 10 символов

---------- Добавлено 24.10.2012 в 16:38 ----------

bay_ebook:
Все в разы проще :)
Пробел идет не в начале файла (хотя может быть), а в конце, после ?>
Лучше всего во всех файлах, которые приходят через include - убрать вообще закрывающий ?>

Т.е. , если в index2.php есть строка

if ($razdel==='osnovnoy') {include('includ/osnovnoy/sobiraem-dannye.php');}

то в sobiraem-dannye.php вы предлагаете убрать

?>
, да ?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий