未定义的索引:第2行中的fname及更多

时间:2013-08-19 14:55:53

标签: php syntax-error

所以这是代码。我们被分配了创建一个简单的表单。我已经阅读了很多关于PHP的教程,这里的所有代码都来自互联网。你能帮我解决这个问题吗-_-每当我尝试打开它时它会继续显示PARSE ERROR:SYNTAX ERROR并注意:未定义索引:fname第2行直到第8行。

<?php
$fname = $_POST["fname"];
$lname = $_POST["lname"];
$gender = $_POST["gender"];
$food = $_POST["food"];
$textbox = $_POST["textbox"];
$leducation = $_POST["leducation"];
$time = $_POST["time"];
if (!isset($_POST['submit']))
{
?>
<html>
<body>
<head>
<title> Midterm Exam </title>
</head>
<form action"jr.php" method="post">
First Name : <input type="text" size="12" maxLength="15" name="fname">
<br>
Last Name : <input type="text" size="12" maxLength="15" name="lname">
<br>
Gender: <br>
Male : <input type="radio" value="Male" name="gender"> <br>
Female : <input type="radio" value="Female" name="gender"> <br>
Please Choose Your Favorite Foods:<br>
Steak:<input type="checkbox" value="Steak" name="food[]"> <br>
Pizza: <input type="checkbox" value="Pizza" name="food[]"> <br>
Pasta : <input type="checkbox" value="Pasta" name="food[]"> <br>
<textarea rows="4" cols="30" name="textbox" > Enter your Favorite Quote!</textarea><br>
Select a Level of Education:<br>
<select name="leducation">
<option value="PS">Pre-School</option>
<option value="E">Elementary</option>
<option value="HS">High School </option>
<option value="C"> College </option>
</select><br>
Select Your Favorite time of the Day:<br>
<select name="time" size="3">
<option value="Morning">Morning</option>
<option value="Day">Day</option>
<option value="Night">Night</option>
</select><br>
<input type="submit" value="Submit" name="Submit">
</form>
<?php
} 
else {
echo "Hello , ".$fname." ".$lname.". <br>";
echo "You are ".$gender." . and you like";
foreach ( $food as $fod)
{
echo $fod."<br>";
echo "<i>".$quote."</i><br>";
echo "You're Favorite time is ".$time.", and you passed ".$leducation."!<br>";
}
}
?>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

首次加载页面时,没有提交。

所有这些行都应该在else的{​​{1}}子句中。

答案 1 :(得分:0)

第一次运行此表单时,$ _POST中没有值,因为您没有按下发送POST数组的按钮。

您需要在第一部分PHP周围添加一些代码,以确定这是第一次运行还是数据已经发布,即按下按钮。

尝试: -

if (!isset($_POST['submit'])) {       
    $fname = $_POST["fname"];
    $lname = $_POST["lname"];
    $gender = isset( $_POST["gender"] ) ? $_POST["gender"] : '';
    $food = $_POST["food"];
    $textbox = $_POST["textbox"];
    $leducation = $_POST["leducation"];
    $time = $_POST["time"];

?>
<html>
<head>
   <title> Midterm Exam </title>
</head>
<body>
    <form action"jr.php" method="post">
        First Name : <input type="text" size="12" maxLength="15" name="fname"><br>
        Last Name : <input type="text" size="12" maxLength="15" name="lname"><br>
        Gender: <br>
        Male : <input type="radio" value="Male" name="gender"> <br>
        Female : <input type="radio" value="Female" name="gender"> <br>
        Please Choose Your Favorite Foods:<br>
        Steak:<input type="checkbox" value="Steak" name="food[]"> <br>
        Pizza: <input type="checkbox" value="Pizza" name="food[]"> <br>
        Pasta : <input type="checkbox" value="Pasta" name="food[]"> <br>
        <textarea rows="4" cols="30" name="textbox" > Enter your Favorite Quote!</textarea><br>
        Select a Level of Education:<br>
        <select name="leducation">
            <option value="PS">Pre-School</option>
            <option value="E">Elementary</option>
            <option value="HS">High School </option>
            <option value="C"> College </option>
        </select><br>
        Select Your Favorite time of the Day:<br>
        <select name="time" size="3">
            <option value="Morning">Morning</option>
            <option value="Day">Day</option>
            <option value="Night">Night</option>
        </select><br>
        <input type="submit" value="Submit" name="Submit">
    </form>
<?php
} else {
    echo "Hello , ".$fname." ".$lname.". <br>";
    echo "You are ".$gender." . and you like";
    foreach ( $food as $fod) {
        echo $fod."<br>";
        echo "<i>".$quote."</i><br>";
        echo "You're Favorite time is ".$time.", and you passed ".$leducation."!<br>";
    }
}
?>
</body>
</html>

您的<head>标记也在<body>,所以我把它移到了正确的位置。