表单值不能输入到mysql,但可以连接mysql(PHP)

时间:2013-04-10 07:37:24

标签: php mysql forms

我想知道一个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>

4 个答案:

答案 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']")`
  • 第三,像Danny所说,在HTML中你需要给输入一个名字,所以它们可以在PHP中使用。我还不够。所以<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>  ";
}
?>