Oddly enough, I couldn't repro this on Chrome or Firefox;
I remained logged in after quit/restart browser,
even though the cookie said it was for this browsing session only.
The SETI@home result table is about to run out of 32-bit IDs,
so we need to move to 64-bit result IDs.
This will happen to the workunit table at some point too.
I changed the server C++ code to use the "long" type for all DB IDs
(and to use appropriate conversion codes like %lu).
"long" is 64 bit on 64-bit machines.
For uniformity I did this for all tables,
even ones (like app) that will never get big.
I chose NOT to change the DB schema for now.
The new code will work with 32-bit ID fields in the DB.
As projects approach the 32-bit limit on a table they can change
its ID field, and fields that reference this table, to BIGINT.
This is likely to happen only on the result and workunit tables.
I put functions in html/ops/db_update.php
to change the IDs of these tables.
Previously the feature that lets people send email about the project
to their friends only worked if the project supplied a message.
Remove this restriction; supply a default message.
Also make it work with or without PHPMailer.
Projects can still supply a default subject and message;
the user can now edit these.
Remove the ability to send HTML email
and to macro-substitute names in the message.
Because we don't use transactions, there are situations
(like if a moderator clicks "OK" repeatedly)
where decrementing thread/post counts makes them negative.
Prevent this.
In "strict mode", inserts fail if they don't supply values
for columns with no default defined in the schema
(in non-strict mode, 0 and '' are implicit defaults).
Starting with MySQL version 5.6, strict mode is the default.
This breaks some of the BOINC web code,
which does inserts without giving values to some columns.
There are two ways to solve this:
1) change the schema to give defaults everywhere
2) change the PHP code to supply values for more columns.
I'm using 1) in some cases and 2) in others.
This commit fixes some of the errors; there are others.