我想知道一个php测验,当你有完整的成绩时,你可以将你的信息输入我的数据库,但是当我填写表格并输入总结时。有这个错误〜
注意:未定义的索引:第19行的C:\ xampp \ htdocs \ record.php中的firstname
注意:未定义的索引:第19行的C:\ xampp \ htdocs \ record.php中的姓氏
注意:未定义的索引:第19行的C:\ xampp \ htdocs \ record.php中的年龄 mysql_connect.inc.php
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
//資料庫設定
//資料庫位置
$db_server = "localhost";
//資料庫名稱
$db_name = "quiz";
//資料庫管理者帳號
$db_user = "root";
//資料庫管理者密碼
$db_passwd = "123456";
//對資料庫連線
if(!@mysql_connect($db_server, $db_user, $db_passwd))
die("can't connect mysql");
//資料庫連線採UTF8
mysql_query("SET NAMES utf8");
//選擇資料庫
if(!@mysql_select_db($db_name))
die("can't connect db");
?>
record.php
<?php ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
session_start();
include("mysql_connect.inc.php");
$con = mysql_connect("localhost","root","123456");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin', '35')");
mysql_query("INSERT INTO Persons (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire', '33')");
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
mysql_close($con)
?>
process.php
<html>
<head>
<style type="text/css">
#wrapper {
width:950px;
height:auto;
padding: 13px;
margin-right:auto;
margin-left:auto;
background-color:#fff;
}
</style>
</head>
<?php
$fid = $_GET['id'];
?>
<body bgcolor="#e1e1e1">
<div id="wrapper">
<center><font face="Andalus" size="5">Your Score</font></center>
<br />
<br />
<?php
$answer1= $_POST['answerOne'];
$answer2= $_POST['answerTwo'];
$answer3= $_POST['answerThree'];
$score = 0;
if ($answer1 == "A"){$score++;}
if ($answer2 == "B"){$score++;}
if ($answer3 == "C"){$score++;}
echo "<center><font face='Berlin Sans FB' size='8'>Your Score is <br> $score/3</font></center>";
?>
<br>
<br>
<Center>
<?php
if ($score == 3)
{
echo "
<form action='record.php' method='post' >
ID: <input type='text' id='firstname'/><br>
Phone: <input type='text' id='lastname'/><br>
E-mail: <input type='text' id='age'/><br><br>
<input type='submit' value='Submit Data' />
</form> ";
}
?>
</Center>
</div><!--- end of wrapper div --->
</body>
</html>
答案 0 :(得分:1)
您的输入字段也需要具有“名称”属性。
答案 1 :(得分:0)
你忘了引用数组键。
$_POST['firstname'] ...
答案 2 :(得分:0)
首先,('$_POST[firstname]','$_POST[lastname]','$_POST[age]')
应该是("$_POST[firstname]","$_POST[lastname]","$_POST[age]")
“”而不是''获取解析内的变量。否则,您可能会在数据库中插入$ ....而不是变量的内容。
其次,如Vidario所述
您需要数组索引的引号。含义$_POST[firstname]
应为$_POST['firstname']
或$_POST["firstname"]
。由于我们已经在变量周围“”,现在让我们使用''作为索引。
所以现在你有:
`("$_POST['firstname']","$_POST['lastname']","$_POST['age']")`
<input type="..." id="blah" name="blah" />
答案 3 :(得分:-1)
替换它:
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
用这个:
$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST['firstname']','$_POST['lastname']','$_POST['age']')";
并为表单添加名称属性,如下所示:
<?php
if ($score == 3)
{
echo "
<form action=\'record.php\' method=\'post\' >
ID: <input type=\'text\' name=\'firstname\' id=\'firstname\'><br>
Phone: <input type=\'text\' name=\'lastname\' id=\'lastname\'><br>
E-mail: <input type=\'text\' name=\'age\' id=\'age\'><br><br>
<input type=\'submit\' value=\'Submit Data\'>
</form> ";
}
?>