 <p>Regarding the blank-page issue: You're just processing, not outputting anything. You could simply post a redirect-header at the end - possibly according to errors occuring or not.</p> <pre><code>// 307 Temporary Redirect header("Location: /foo.php",TRUE,307); </code></pre> <p>..or just output stuff after processing. A good practice might be to keep processing and the form-display in one file - then you could pre-populate the form with the fields that did not produce errors and mark those that failed so the user can try again.</p> <p>Regarding the checkbox-group issue:</p> <pre><code>echo implode( ", ", $_POST['checkbox-group'] ); </code></pre> <p>to prove to yourself you actually got something passed along:</p> <pre><code>header("Content-type:text/plain;charset=utf-8"); echo print_r($_POST,TRUE); </code></pre>