However the scripts work ok. I'm using PHP 4.1 and win2k
Just because it works ok, it doesn't mean that you can leave the program as it is. If the next developer comes in and adds more functionality to your script, and then 10 more developers come after him and add their own stuff, how hard is it going to be for whichever developer to track down bugs just because someone 'assumed' that the script works ok...
Anyway, you must use quotes (single or double, it doesn't matter in this case):
if ($memberinfo['id'] || $memberinfo['otherid']) { ... }
The reason PHP doesn't complain about the 'otherid' not having quotes, is because the left side of the OR operator is always true so the OR operator does what it's called short-circuit, which means that since one side is true, no matter what the other side is, the result will always be true, so it doesn't evaluate $memberinfo['otherid'], therefore PHP doesn't complain about it not having quotes.
How can
mysql_query("UPDATE $memberinfo[dbprefix]table SET time = '$hour' WHERE id = '$memberinfo[id]'");
work if $memberinfo is undefined? You should save the query statement into a variable and print it out to see what it actually is...
Diego