> $cimg = (isset($_REQUEST['cimg']) ? $_REQUEST['cimg'] : 'true');
$_R is not good practice. But that's prob'ly not the problem here, as
long as you are using either GET or POST consistently when testing.
For one thing, if the var is not passed, you are setting the value to
the string 'true', not boolean true. While the two will often end up
being interchangeable thanks to automatic type coercion, if you really
want booleans, use booleans from the start.
define("INVALID_BOOL_DEFAULT",true);
$cimg = isset($_GET['cimg'])
? ( $_GET['cimg'] !== "false" and $_GET['cimg'] != false or $_GET['cimg'] ===
"" ) and ( $_GET['cimg'] === "true" or $_GET['cimg'] == (int)true or
INVALID_BOOL_DEFAULT )
: INVALID_BOOL_DEFAULT;
Set INVALID_BOOL_DEFAULT to the default boolean value you want to
assign if
- no matching varname is passed
- the var is passed but is empty
- the var is set to any value other than 0, 1, "false", or "true"
It is a better idea to coerce the JS booleans to integers 0 and 1
before sending them, but this approach allows you to pass JS bools (as
strings, of course) and convert back into PHP bools on the server. I
don't know what exact problem you were having, however.
-- Sandy