0

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?

Alex Kulinkovich
  • 4,408
  • 15
  • 46
  • 50
Ilmiont
  • 2,032
  • 4
  • 27
  • 44
  • Are you sure there's nothing in your `require` files that is causing it? Try removing the `require`s one by one and see which one is causing it. – AStopher Dec 07 '14 at 10:48

2 Answers2

0

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.

AStopher
  • 4,207
  • 11
  • 50
  • 75
  • Turns out it is users.php. I have yet to establish how though - it is just raw PHP; no HTML at all. Everything is wrapped between , not so much as a . Definitely no echo statements either... hmm, I guess I'll have to take a close look. – Ilmiont Dec 07 '14 at 10:54
  • @Ilmiont As my answer answers your question, please upvote and accept my answer (click the tick next to my answer). You might have some element that is more than the width and height of the page, the same issue has happened to me before. – AStopher Dec 07 '14 at 10:55
  • 1
    I will as soon as I can! I always accept; just waiting to be allowed to :) -Done – Ilmiont Dec 07 '14 at 10:58
0

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.

Community
  • 1
  • 1
Ilmiont
  • 2,032
  • 4
  • 27
  • 44