数据库表单提交中的“未定义变量”错误消息

时间:2013-12-09 02:21:16

标签: php html database forms form-submit

我已经在我的网站上建了一个提交表单。输入表单的信息存储在数据库中,照片存储在服务器上的文件夹中,图像存储在数据库中。

我的代码是基于我在类中完美运行的示例。但是,当表单加载时,我收到以下消息

  

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的名称

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的照片

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的Bio

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的城市

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的状态

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的Zipcode

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的流派

     

注意:未定义的变量:第28行的C:\ HTML \ mgertenbach \ BAND \ submitband.php中的链接

我尝试过的任何内容都无法使页面正常工作,我无法弄清楚代码的问题。

谢谢!

$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
    }
}
}
?> 

1 个答案:

答案 0 :(得分:0)

您正在测试各种$_POST变量的存在,如果您找到它们,则只需针对它们设置一些局部变量。

如果您找到所有内容,请继续尝试将信息写入数据库。

仔细观察if...then...else应该如何运作。

附注:

  • mysql_*()函数已弃用。不要使用它们。请改用mysqli_*()PDO

  • 您使用trim(strip_tags())作为某种形式的清理工作。这远远不够好。您应该使用mysql_real_escape_string()(对于mysql),或考虑转移到准备好的语句。