I have this code to check that my ToS checkbox is checked:
if (!isset($_POST['tosagree'])) {//if the user did not agree to ToS
$errors[] = '<span>Please agree to the Terms of Service.<span>';
}
For some reason it is allowing me to register even with that code there. The weird thing is that if any other field is not field and that field is not checked it will print the error, but if that is the only problem it allows the user to register.
Update: seems like its a problem with something weird in my code. If you feel like looking through 217 lines of code here is all the code: http://pastebin.com/YkERYpeF
Whether
!isset($_POST['tosagree'])will be enough depends on the browser.To be safe, always set the
valueattribute of the checkbox. Then, you simply check if that value is present:Then do this:
Also, when the
valueattribute is not explicitly specified, browsers will usually setvaluetoOnwhen it is checked.Edit
Ok, I know what’s happening. In your PHP code, you have this block:
Then later you have this line:
The problem is that you don’t have a flag for when the TOS checkbox isn’t checked. The error can’t be printed because in the
ifstatement you have a call toexit().