未定义变量PHP+;MySQL
我知道stackoverflow不赞成重复提问,但请容忍我,因为我浏览了许多类似的问题,但没有找到对我有帮助的具体解决方案。(他们大多提到避免数据库插入) 我遇到以下错误消息:未定义变量PHP+;MySQL,php,mysql,database,global-variables,undefined,Php,Mysql,Database,Global Variables,Undefined,我知道stackoverflow不赞成重复提问,但请容忍我,因为我浏览了许多类似的问题,但没有找到对我有帮助的具体解决方案。(他们大多提到避免数据库插入) 我遇到以下错误消息: here db connection success Notice: Undefined variable: firstname in C:\xampp\htdocs\practice_connection_app\submit.php on line 10 Notice: Undefined variable: l
here db connection success
Notice: Undefined variable: firstname in C:\xampp\htdocs\practice_connection_app\submit.php on line 10
Notice: Undefined variable: lastname in C:\xampp\htdocs\practice_connection_app\submit.php on line 10
Notice: Undefined variable: conn in C:\xampp\htdocs\practice_connection_app\submit.php on line 11
Fatal error: Call to a member function exec() on null in C:\xampp\htdocs\practice_connection_app\submit.php on line 11
第一个结果只是显示我已连接到使用phpMyadmin创建的数据库
以下是我的相关代码(我的html提交页面调用php操作):
学生信息
在相应的框中输入您的名字和姓氏。
第一:
最后:
数据库连接(我想)
和我的php提交页面
<?php
echo 'here ';
$dsn = 'mysql:host=localhost;dbname=practice_students';
try {
$db = new PDO($dsn);
echo 'db connection success';
$sql = "INSERT INTO people (firstname, lastname)
VALUES ('$firstname', '$lastname')";
$conn->exec($sql);
echo "Now we know your name! Hi," . " " . $firstname . " " . $lastname;
} catch (PDOException $e) {
$error_message = $e->getMessage();
include('database_error.php');
exit();
}
?>
不确定您一直在阅读哪本手册,最终以该代码结束
当然,在清理后,您需要访问POST变量(使用$\u POST['firstname']
)
编辑:
要访问发布的变量,可以执行以下操作:
$firstname = $_POST['firstname'];
但您确实需要进行一些santization,您可以使用php的filter\u var
:
$firstname = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);
不过,你可以做得更好,并且对你的过滤器/消毒剂的使用要求非常严格。。。在您的代码“正常工作”后,请调查此部分:)1。您没有在任何地方创建db连接($conn
)-您希望如何使用它?2.在您的代码中,您从$\u POST
中填充$firstname
和$lastname
的位置在哪里?我不太确定这是否正确,但我可能应该将此页添加到问题中:请不要在注释中转储代码,因为这几乎是不可能的破译。编辑原始问题以添加任何新信息。说。即使是这样也不安全!了解有关如何在我的php中合并“POST”方法的语句?我想这就是我感到困惑的地方。谢谢编辑答案,向您展示如何访问post Var。这将非常有用!您还提到了清理,我现在拥有的是数据库插入的风险吗?您拥有bomb.com的域吗?因为那就是你。哈哈,非常感谢!你不知道我在这上面花了多长时间。
$firstname = $_POST['firstname'];
$firstname = filter_var($_POST['firstname'], FILTER_SANITIZE_STRING);