1

My code has a user input form, where they input Address, City, State, and Zip.

My code works without a drop down form for states.

I need to direct the user to the next part of the account creation process, so I am using header("location: nextpage.php") in my IF statement for isset(($_POST['submitbutton']). Is there another way to direct to this page? Do I have to remove the drop down box for states to use the header function?

<!DOCTYPE html>
<html lang="en">

<?php
//Start the session
session_start();
?>


<head>
    <title>Placeholder</title>
    <meta charset="utf-8">

<!--*** External CSS Link ***-->
<link href="style.css" rel="stylesheet">    
</head>
<body>


<!--*** Header ***-->    
<header><?php include 'inc_header_aries0653.php';?></header>


<!--*** H tags ***-->        
<h1>New Account Creation</h1>    




<!--*** Form Start ***-->    
<form method="post" name="Lab5Form" id="Lab5Form" 
      action="#">
    <fieldset>
        <legend>Address</legend>



        <!-- Form Fields [All Required] -->

         <!-- Street Address -->
        <label for="address">Street Address: </label><br>
        <input type="text" name="address" id="address" size="30" 
                             maxlength="30" placeholder= "51 Groom Lake" 
                             required="required"><br><br>

         <!-- City -->
        <label for="city">City: </label><br> 
        <input type="text" name="city" id="city" 
                             size="30" 
                             maxlength="20" placeholder= "Roswell" 
                             required="required"><br><br>  


         <!-- State -->  
        <label for="state">State: </label><br>
        <select name="state" id="state">
            <option value="AL">Alabama</option>
            <option value="AK">Alaska</option>
            <option value="AZ">Arizona</option>
            <option value="AR">Arkansas</option>
            <option value="CA">California</option>
            <option value="CO">Colorado</option>
            <option value="CT">Connecticut</option>
            <option value="DE">Delaware</option>
            <option value="DC">District of Columbia</option>
            <option value="FL">Florida</option>
            <option value="GA">Georgia</option>
            <option value="HI">Hawaii</option>
            <option value="ID">Idaho</option>
            <option value="IL">Illinois</option>
            <option value="IN">Indiana</option>
            <option value="IA">Iowa</option>
            <option value="KS">Kansas</option>
            <option value="KY">Kentucky</option>
            <option value="LA">Louisiana</option>
            <option value="ME">Maine</option>
            <option value="MD">Maryland</option>
            <option value="MA">Massachusetts</option>
            <option value="MI">Michigan</option>
            <option value="MN">Minnesota</option>
            <option value="MS">Mississippi</option>
            <option value="MO">Missouri</option>
            <option value="MT">Montana</option>
            <option value="NE">Nebraska</option>
            <option value="NV">Nevada</option>
            <option value="NH">New Hampshire</option>
            <option value="NJ">New Jersey</option>
            <option value="NM" selected>New Mexico</option>
            <option value="NY">New York</option>
            <option value="NC">North Carolina</option>
            <option value="ND">North Dakota</option>
            <option value="OH">Ohio</option>
            <option value="OK">Oklahoma</option>
            <option value="OR">Oregon</option>
            <option value="PA">Pennsylvania</option>
            <option value="RI">Rhode Island</option>
            <option value="SC">South Carolina</option>
            <option value="SD">South Dakota</option>
            <option value="TN">Tennessee</option>
            <option value="TX">Texas</option>
            <option value="UT">Utah</option>
            <option value="VT">Vermont</option>
            <option value="VA">Virginia</option>
            <option value="WA">Washington</option>
            <option value="WV">West Virginia</option>
            <option value="WI">Wisconsin</option>
            <option value="WY">Wyoming</option>
        </select><br><br>



        <!-- Zip Code [Size=10] -->
        <label for="zip">Zip Code: </label><br> 
        <input type="text" name="zip" id="zip" size="10" 
                             maxlength="10" placeholder= "30077-XXXX" 
                             required="required"><br><br>   


        <!--Submit/Reset Buttons -->    
        <input type="submit" value="Submit" name="submitbtn id="submit"> 
        <input type="reset">
    </fieldset>
    </form>

<!-- PHP -->  
<?php
//require_once functions
require_once ("inc_functions.php");


//filter_input from POST form
 $add = (filter_input(INPUT_POST, 'address'));
 $ct = (filter_input(INPUT_POST, 'city'));
 $st = (filter_input(INPUT_POST, 'state'));
 $zp = (filter_input(INPUT_POST, 'zip'));


 //manipulating user form input for less errors/security
 $address = (ucwords(strtolower(trim($add)))); 
 $city    = (ucwords(strtolower(trim($ct))));
 $state   = ($st);
 $zip     = (trim($zp));



  //if submitbutton is not clicked, die
  if (isset($_POST['submitbtn'])){

//RegEx Functions Run on each input field, see [inc_functions_aries0653]
// Grouped by function, not order
AddCheck ($address);
NameCheck ($city);
ZipCheck ($zip);


// Set session variables
$_SESSION["address"] = $address;
$_SESSION["city"]    = $city;
$_SESSION["state"]   = $state;
$_SESSION["zip"]     = $zip;


header("location: AccessInfo.php");        
}


?>
Peter O.
  • 32,158
  • 14
  • 82
  • 96

1 Answers1

0

Ok. The first solution was wrong.

You should make no output before session starts, and you should buffer your output.

<?php
//Start the session
session_start();
ob_start();
?>

<!DOCTYPE html>
<html lang="en">
...

Then you should correct your form submit id:

<!--Submit/Reset Buttons -->    
<input type="submit" value="Submit" name="submitbtn" id="submit">

And at the end of your code:

//if submitbutton is not clicked, die
if (isset($_POST['submitbtn'])){

    //...

    header("Location: AccessInfo.php");        
}
ob_end_flush();
?>
Gennadiy Litvinyuk
  • 1,536
  • 12
  • 21