PHP adding scrollbars to page

68 Views Asked by At

Having a bit of a weird issue on a site I am developing.

I have this code that gets posts from a database to display on the homepage:

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;
    }
}

This code works fine... but it is adding scrollbars to the page which ruin the styling.

Without the code: enter image description here

With the code: enter image description here

You can clearly see the scrollbars added by the code - both horizontal and vertical.

Any idea what is causing it?

2

There are 2 best solutions below

3
On BEST ANSWER

Looking at your code I imagine that one of the three require files is causing it:

require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/siteconfig.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/cms.php');
require($_SERVER['DOCUMENT_ROOT'].'/cgi-bin/users.php');

most likely /cgi-bin/cms.php or /cgi-bin/siteconfig.php

Try removing each require in-turn in order to find out which file is causing it.

0
On

OK, posting this in case it helps anybody else.

I have finally figured it out - the explanation is here What's different between UTF-8 and UTF-8 without BOM?

I had saved the "users.php" as UTF-8 in some text editor that defaults to "with BOM" - i don't actually know what means - and for reasons that I don't fully understand (haven't actually read the page I have linked, only skimmed :D) this adds whitespace when using require().

So it was a simple file encoding issue. Saving the file again as UTF-8 without BOM has rectified my issue completely.