1

I have built a submit form my website. The information entered into the form gets stored in a database, and the photo gets stored in a folder on a server, and a link the image is stored in the database.

I based my code off of an example I have from class that works perfectly. However, when the form loads I get the following message

Notice: Undefined variable: Name in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: Photo in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: Bio in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: City in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: State in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: Zipcode in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: Genre in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Notice: Undefined variable: Link in C:\HTML\mgertenbach\BAND\submitband.php on line 28

Nothing I've tried has been able to make the page work and I cannot figure out the issue with my code.

Thank You!

$dbc=mysql_connect('localhost', 'mgertenbach', 'mollyr');
mysql_select_db('mgertenbach', $dbc);

$problem = FALSE;
if (!empty($_POST['bandname']) && !empty($_POST['bandbio']) && !empty($_POST['bandcity']) && !empty($_POST['bandstate']) && !empty($_POST['bandzipcode']) && !empty($_POST['bandgenre']) && !empty($_POST['bandlink'])) {
    $Name = trim(strip_tags($_POST['bandname']));
    $Bio = trim(strip_tags($_POST['bandbio']));
    $City = trim(strip_tags($_POST['bandcity']));
    $State = trim(strip_tags($_POST['bandstate']));
    $Zipcode = trim(strip_tags($_POST['bandzipcode']));
    $Genre = trim(strip_tags($_POST['bandgenre']));
    $Link = trim(strip_tags($_POST['bandlink']));
}else {
if (!$problem) {
    $query = "INSERT INTO band_information (Name, Photo, Bio, City, State, Zipcode, Genre, Link) 
            VALUES ('$Name', '$Photo', '$Bio', '$City', '$State', '$Zipcode', '$Genre', '$Link');";
    if($_SERVER['REQUEST_METHOD']=='POST'){
        if(move_uploaded_file($_FILES['thefile']['tmp_name'], "C:\\HTML\\mgertenbach\\BAND\\photos\\{$_FILES['thefile']['name']}") && @mysql_query($query, $dbc)){
            print '<p>Thanks for submitting your band!</p>';
        } else {
            print '<p>Could not submit band because: <br/>' .
            mysql_error($dbc) . '</p>';
        }
    }
else {

?>
    
    <h3>Please fill out the following information.</h3>
    
    <form action="submitband.php" method="post">
        <fieldset><legend>Who Are You?</legend>
            <label>Band Name: <input type="text" id="bandname" name="bandname" size="10"/></label>
            <br/><br/>
            <label>Upload Photo*: <input type="file" id="bandphoto" name="bandphoto"/></label>
            <br/>&nbsp;&nbsp;&nbsp;*image must be a square file
            <br/><br/>
            <label>Enter a short bio: <br/><textarea id="bandbio" name="bandbio" cols="40" rows="10"></textarea></label>
        </fieldset>
        <br/><br/> 
        <fieldset><legend>Where Are You From?</legend>
            <label>City: <input type="text" id="bandbio" name="bandcity" size="10"/></label>
            <br/><br/>
            <label>State: 
                <select id="bandstate" name="bandstate">
                        <option value=""> </option>
                        <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">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></label>  
            <br/><br/>
            <label>Zipcode: <input type="text" id="bandzipcode" name="bandzipcode" size="10"/></label>
        </fieldset>  
        <br/><br/>
        <fieldset><legend>What's Your Music Like?</legend>
            <label>Genre: 
                <select id="bandgenre" name="bandgenre">
                        <option value="country">Country</option>
                        <option value="electronic">Electronic</option>
                        <option value="folk">Folk</option>
                        <option value="indie">Indie</option>
                        <option value="punk">Punk</option>
                        <option value="rock">Rock</option>
                </select>
                </label>
            <br/><br/>
            <label>Share a link to where we can hear it: <input type="text" id="bandlink" name="bandlink" size="40"/></label>
        </fieldset>
        <br/><br/>
        <input type="submit" value="submit"/>          
    </form>
<?php
    }
}
}
?> 
Community
  • 1
  • 1
user3081307
  • 1,211
  • 2
  • 10
  • 8

1 Answers1

0

You're testing for the presence of various $_POST variables, and if you find them all you set some local variables against them.

If you don't find them all you go on to try and write the information to the database.

Look long and hard at how your if...then...else is supposed to work.

Side notes:

  • mysql_*() functions are deprecated. Don't use them. Use mysqli_*() or PDO instead.

  • You're using trim(strip_tags()) as some form of sanitization. This is nowhere near good enough. You should use mysql_real_escape_string() (for mysql), or consider moving to prepared statements.