1

我想DIY一个php测验,当你满级时,你可以将你的信息输入到我的数据库中,但是当我填写表格并放入sumbit时。有这个错误~

注意:未定义索引:第 19 行 C:\xampp\htdocs\record.php 中的名字

注意:未定义索引:第 19 行 C:\xampp\htdocs\record.php 中的姓氏

注意:未定义的索引:年龄在 C:\xampp\htdocs\record.php 第 19 行 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");
?>  

记录.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)
?>

进程.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>
4

4 回答 4

1

您的输入字段也需要具有“名称”属性。

于 2013-04-10T07:40:18.060 回答
0

您忘记引用数组键。

$_POST['firstname'] ...
于 2013-04-10T07:41:01.447 回答
0
  • 首先,('$_POST[firstname]','$_POST[lastname]','$_POST[age]')应该是("$_POST[firstname]","$_POST[lastname]","$_POST[age]")“”而不是“”获取变量里面的解析。否则,您将在数据库中插入 $.... 而不是变量的内容。

  • 其次,正如 Vidario 所述,数组索引需要引号。意思$_POST[firstname]应该变成$_POST['firstname']or $_POST["firstname"]。由于我们已经在变量周围有“”,现在让我们使用 ' ' 作为索引。

所以现在你有:

`("$_POST['firstname']","$_POST['lastname']","$_POST['age']")`
  • 第三,正如 Danny 所说,在 HTML 中您需要为输入项命名,以便它们可以在 PHP 中使用。身份证不够用。所以<input type="..." id="blah" name="blah" />
于 2013-04-10T08:42:03.290 回答
-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>  ";
}
?>
于 2013-04-10T07:47:02.997 回答