";未定义变量“;数据库表单提交中出现错误消息


"undefined variable" error message in database form submission

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

我的代码基于课堂上的一个非常好用的例子。然而,当表单加载时,我会收到以下消息

注意:未定义的变量:第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中的State

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

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

注意:未定义的变量:第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
    }
}
}
?> 

您正在测试各种$_POST变量的存在性,如果您找到了所有这些变量,则可以针对它们设置一些局部变量。

如果没有找到它们,则继续尝试将信息写入数据库。

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

旁注:

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

  • 您正在使用trim(strip_tags())作为某种形式的消毒。这远远不够好。您应该使用mysql_real_escape_string()(用于mysql),或者考虑使用准备好的语句。