在我正在开发的网站上遇到一些奇怪的问题。
我有这个代码可以从数据库中获取帖子以显示在主页上:
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/siteconfig.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/cms.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/users.php');
$posts = array();
if (!isset($_GET['page'])) $_GET['page'] = 1;
$data = Post::getPosts(10, $_GET['page'], "active", "median");
$types = Type::getTypes(0, "median");
$posts['types'] = array();
foreach ($types['foundTypes'] as $type) $posts['types'][$type -> id] = $type;
$categories = Category::getCategories(0, "median");
$posts['categories'] = array();
foreach ($categories['foundCategories'] as $category) $posts['categories'][$category -> id] = $category;
$tags = Tag::getTags(0, "median");
$posts['tags'] = array();
foreach ($tags['foundTags'] as $tag) $posts['tags'][$tag -> id] = $tag;
$posts_tags = Post_Tag::getPostsTags(0, "median");
$posts['posts_tags'] = array();
foreach ($posts_tags['foundTags'] as $tag) array_push($posts['posts_tags'], $tag);
$posts['posts'] = $data['foundPosts'];
foreach ($posts['posts'] as $post) {
$user = User::getUserByID((int)$post -> authorID);
if ($user -> fname == "") {
$post -> author = $user -> username;
}
elseif ($user -> lname == "") {
$post -> author = $user -> fname;
}
else {
$post -> author = $user -> fname . " " . $user -> lname;
}
}
此代码工作正常......但它正在向页面添加滚动条,从而破坏样式。
没有代码:
使用代码:
您可以清楚地看到代码添加的滚动条 - 水平和垂直。
知道造成它的原因是什么?
答案 0 :(得分:0)
查看您的代码我想象三个require
文件中的一个导致它:
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/siteconfig.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/cms.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/users.php');
很可能是/cgi-bin/cms.php
或/cgi-bin/siteconfig.php
尝试依次删除每个require
,以找出导致它的文件。
答案 1 :(得分:0)
好的,发布此内容以防其他人帮助。
我终于弄明白了 - 解释在这里What's different between UTF-8 and UTF-8 without BOM?
我保存了" users.php"在某些文本编辑器中的UTF-8,默认为" BOM" - 我实际上并不知道是什么意思 - 并且由于我不完全理解的原因(实际上没有读过我已经链接的页面,只是略读:D)这在使用require时增加了空白( )。
所以这是一个简单的文件编码问题。将文件再次保存为没有BOM的UTF-8已经完全纠正了我的问题。