Website not displaying products after migration

Hi

We moved a site that was developed by outsource company from old to new server and seem to be experiencing some issues on the new server. The products don’t show up anymore and no changes have been done on the code. When I turn errors on like http://mlungisi-001-site1.smarterasp.net/products.php there are some notices but surprisingly it worked on the old server.

Windows 2008, IIS7 Server

Errors turned on

Notice: A session had already been started - ignoring session_start() in H:\root\home\mlungisi-001\www\site1\libs\products.php on line 27

session_start();

Notice: Undefined variable: iAUID in H:\root\home\mlungisi-001\www\site1\libs\users.php on line 73

GetAU($iAUID, $AUID, $Email, $Firstname, $Surname, $COID, $CellNo, $PWord, $Active_Tag);

Notice: Undefined offset: 0 in H:\root\home\mlungisi-001\www\site1\libs\users.php on line 74

GetAU($iAUID, $AUID, $Email, $Firstname, $Surname, $COID, $CellNo, $PWord, $Active_Tag);

Notice: Undefined offset: 0 in H:\root\home\mlungisi-001\www\site1\libs\users.php on line 75

$_SESSION['uSurName'] = $Surname[0];

Notice: Undefined index: uUserTypeID in H:\root\home\mlungisi-001\www\site1\libs\products.php on line 1244

if ($_SESSION['uUserTypeID'] == 2)

I have tried to kill sessions before starting a new one but that didn’t help either. I am caught between a latch and a door, don’t know whether its code issue or PHP configurations or MySQOL. Please share ideas

Products.php

Users.php

Remove ALL whitespace above your opening <?php tag. <?php needs to be the first line and YOU can’t call echo/print or any other related output methods before session_start() is called.

It is hard for me to tell what $iAUID is supposed to be… is it supposed to be the value of $_SESSION[‘uAUID’]? If so, the following should resolve this one:

$AUID = '', $Email = '', $Firstname = '', $Surname = '', $COID = '', $CellNo = '', $PWord = '', $Active_Tag = '';
        GetAU($_SESSION['uAUID'], $AUID, $Email, $Firstname, $Surname, $COID, $CellNo, $PWord, $Active_Tag);

I think you copied the wrong line here and meant to copy

$_SESSION['uFirstName'] = $Firstname[0];

That indicates you are not getting a value back when calling GetAU for $Firstname, so it is empty. That is because your $iAUID is not correct so it can’t find the user.

Granted this is still a valid concern, to remove the notice all together, check the sizeof the array before accessing it.

$_SESSION['uFirstName'] = (sizeof($Firstname) > 0) ? $Firstname[0] : '';

That indicates you are not getting a value back when calling GetAU for $Surname, so it is empty. That is because your $iAUID is not correct so it can’t find the user.

Granted this is still a valid concern, to remove the notice all together, check the sizeof the array before accessing it.

$_SESSION['uSurName'] = (sizeof($Surname) > 0) ? $Surname[0] : '';

$_SESSION[‘uUserTypeID’] isn’t set yet. Use isset first

if (isset($_SESSION['uUserTypeID']) && $_SESSION['uUserTypeID'] == 2)

Thanks cparadio,

Im going to look into your suggestions or opt for a completely new site :frowning:

I’d lean toward the latter for purely one reason. I know there are more issues in those two files than what I simply stated, apart from that, there are likely “bigger” issues in other files on your site. I’m not sure who you hired and who developed it for you, but PHP wasn’t their strongest language at the time.

Whatever decision you make, I wish you the best of luck in getting what you need so your site is functional again.