Checking form input data on submit with pure PHP
It's incredibly repetitive.  Repetitive code is hard to maintain because you have to apply the same change in many places.  It's also hard to see at a glance where the similarities and differences lie.

Here is how it could be rewritten:

&lt;?php
    $params = array('name', 'address', 'email');

    session_start();
    $_SESSION['first_page'] = true;

    foreach ($params as $p) {
        $$p = $_SESSION[$p] = '';
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            if (empty($_POST[$p])) {
                $errorVarName = "${p}Error";
                $$errorVarName = 'Missing';
            } else {
                $$p = $_SESSION[$p] = $_POST[$p];
            }
        }
        if ($_SESSION[$p] == '') {
            $_SESSION['first_page'] = false;
        }
    }
    if ($_SESSION['first_page'])) {
        # None of the expected params is an empty string
        header('Location: http://localhost/formProcessing2.php');
    }
?&gt;


To go one step further, I would suggest using $val[$p] and $err[$p] instead of $$p and $$errorVarName, respectively.  That's because variably named variable names are icky, and smell vaguely of the stink associated with register_globals.  An additional benefit of using an associative array is that you can pass all of the processed parameter values as a single argument to a function, which you can't do if they are individual variables.  The template would need to be modified to say

Name &lt;input type="text" name="name" value="&lt;?php echo htmlspecialchars($val['name']);?&gt;"&gt;
&lt;span class="error"&gt;&lt;?php echo $err['name'];?&gt;&lt;/span&gt;