2013-04-10 55 views
1

我想自己动手做一个PHP测验,当你有满级,你可以输入你的信息,我的数据库,但是当我填写表格并把这个sumbit。有此错误〜形式值不能输入到MySQL,但可以连接mysql(PHP)

注意:未定义指数:姓在C:\ XAMPP \ htdocs中\ record.php第19行

注意:未定义指数:名字在C:\ XAMPP \ htdocs中\ record.php上线19

说明:未定义指数:年龄在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([email protected]_connect($db_server, $db_user, $db_passwd)) 
     die("can't connect mysql"); 

//資料庫連線採UTF8 
mysql_query("SET NAMES utf8"); 

//選擇資料庫 
if([email protected]_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

遵循它。 http://stackoverflow.com/questions/15785519/variables-occasionally-empty-how-to-prevent-undefined-variable-error/15785579#15785579 – Neo 2013-04-10 07:49:57

回答

1

你输入字段需要有一个 “name” 属性了。

0

你忘了引用数组键。

$_POST['firstname'] ... 
+0

实际上并不是双引号内必需的,但你也可以做这里面的双引号“ ”布拉布拉{$ _ POST [ '名']}布拉布拉“'' – Danny 2013-04-10 07:56:16

+0

解析错误:语法错误,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在C:\ XAMPP \ htdocs中\记录。12号线上的php' 我已经改变了,但有这个错误。 – 2013-04-10 08:04:19

+0

@Danny他们是必需的。实际上,他们应该发出警告,指定不存在这样的常量,并且字符串是ASSUMED。 – 2013-04-10 08:45:06

-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> "; 
} 
?> 
+0

'解析错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在第12行的C:\ xampp \ htdocs \ record.php中。' 我已更改,但有此错误。 – 2013-04-10 08:02:51

+0

@DanteMan只是一个问题,为什么每次提交表单时,都会将Peter Griffin和Glenn Quagmire插入数据库? – Daanvn 2013-04-10 08:14:22

+0

仅用于测试数据库...但表单无法在数据库中输入数据。 thxü – 2013-04-10 08:19:53

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']")` 
  • 三,就像丹尼说,在HTML,你需要给输入一个名字,这样他们就可以在PHP中使用。 Id是不够的。所以<input type="..." id="blah" name="blah" />