2013-02-25 43 views
0

我的问题是,当我将数据输入到我的html表单并单击提交时,它会调用我的php文件,但它不会发送参数。HTML表单不会将变量发送到PHP/MySQL

我甚至尝试使用工作代码来测试它,甚至工作代码不通过变量。我不确定为什么这样做,坏的PHP安装?不知道。

这是它,如果你想看看它是否至少适合你。但我没有得到任何传递到我的PHP文件中的变量。谢谢您的帮助。

<html> 
    <head> 
    <title>Home</title> 
    </head> 
<body> 

<form method="get" action="reg.php"> 
Firstname: <input type="text" name="firstname"> 
Lastname: <input type="text" name="lastname"> 
Age: <input type="text" name="age"> 
<input type="submit" value="Submit"> 
</form> 

</body> 
</html> 

这里是php文件:

<?php 
echo $_SERVER['REQUEST_METHOD']; 

if(isset($_GET['firstname'])){ 
    $firstname = $_GET['firstname']; 
} 
else{ 
    $firstname = 'null'; 
} 
if(isset($_GET['lastname'])){ 
    $lastname = $_GET['lastname']; 
} 
else{ 
    $lastname = 'null'; 
} 
if(isset($_GET['age'])){ 
    $age = $_GET['age']; 
} 
else{ 
    $age = 'null'; 
} 

$con = mysqli_connect("127.0.0.1","root","", "my_db"); 


$sql="INSERT INTO persons (FirstName, LastName, Age) 
VALUES 
('$firstname','$lastname','$age')"; 
$result = mysqli_query($con, $sql); 
if ($result) 
    { 
echo "1 record added"; 
    } 
else{ 
    echo "Did not work"; 
} 


error_reporting(E_ALL); 
mysqli_close($con); 
?> 

当我看到错误报告,它说未定义指数每一次,每件工作我测试代码。我测试了4个工作代码文件,但都没有工作,但被证明他们做到了。我开始认为我有一个不好的PHP安装或更深入的问题。再次感谢。

+2

'$ _GET'的输出是什么?做一个'var_dump($ _ GET)'。 – mcryan 2013-02-25 13:10:53

+1

你很容易受到[SQL注入攻击](http://bobby-tables.com/)**,并且应该学会如何[防御](http://stackoverflow.com/questions/60174/best-way -to-prevent-sql -injection-in-php)你自己。 – Quentin 2013-02-25 13:10:56

+0

它表示未定义索引处于打开状态?另外,通过将变量声明为空,您可以大大减少代码行数 – bizzehdee 2013-02-25 13:11:55

回答

-5

三件事:

  1. 我会建议你使用的不是GET POST。
  2. 给你的输入字段一个ID,它应该工作。
  3. 在将数据写入数据库之前,您需要清理数据。
+5

1.应该发表评论。 2.'id'只用于客户端,如何在这里添加一个帮助? 3.应该发表评论。 – Quentin 2013-02-25 13:13:29

+3

我上次检查'id'与提交表单完全无关。只有'name'属性才能起作用。 – 2013-02-25 13:13:35

+0

@TillHelgeHelwig真的吗?然后,我一生都给我的投入一个不需要的ID。抱歉! – Sven 2013-02-25 13:15:40