正确的表单验证(PHP/MySql)
运行此代码时,我遇到以下错误: 解析错误:语法错误,第43行的/Applications/XAMPP/…results.php中出现意外的“,”和预期的“)” 第43行对应于下面的查询行 这是我的密码。变量与问卷页面的表单输入相关<代码>$source\u of_fund\u 1和正确的表单验证(PHP/MySql),php,mysql,forms,validation,Php,Mysql,Forms,Validation,运行此代码时,我遇到以下错误: 解析错误:语法错误,第43行的/Applications/XAMPP/…results.php中出现意外的“,”和预期的“)” 第43行对应于下面的查询行 这是我的密码。变量与问卷页面的表单输入相关$source\u of_fund\u 1和$source\u of_fund\u 1与单选按钮表单输入相关。其他变量与文本字段/区域相关。我正在对单选按钮变量和使用isset验证!文本字段/区域为空 <?php $source_of_fund_1 = $_PO
$source\u of_fund\u 1
与单选按钮表单输入相关。其他变量与文本字段/区域相关。我正在对单选按钮变量和使用isset验证!文本字段/区域为空
<?php
$source_of_fund_1 = $_POST['source_of_fund_1'];
$source_of_fund_2 = $_POST['source_of_fund_2'];
$repayment_date = $_POST['repayment_date'];
$do_differently = $_POST['do_differently'];
require_once 'connect.inc.php';
$query = "INSERT INTO tablename
(source_of_fund_1, source_of_fund_2, repayment_date, do_differently)
VALUES
('$source_of_fund_1', '$source_of_fund_2', '$repayment_date', '$do_differently')";
$result = @mysqli_query($link, $query);
if (($result) && !empty($repayment_date, $do_differently)
&& isset($source_of_fund_1, $source_of_fund_2)) {
echo 'Thank you for your submission.';
} else {
echo 'We were unable to process your information.'.mysqli_error($link).'Please ensure all required fields were filled out.';
}
mysqli_close($link);
?>
您的问题在于空呼叫。它不接受多个参数:
!empty($repayment_date, $do_differently)
应该是:
!empty($repayment_date) && !empty($do_differently)
你的问题是空电话。它不接受多个参数:
!empty($repayment_date, $do_differently)
应该是:
!empty($repayment_date) && !empty($do_differently)
我认为,直接的问题是,因为您正在使用带有多个参数的empty
——与isset
不同,它只需要一个参数
不过,还有一些其他问题
不要用@
抑制任何错误-如果出现问题,
你想知道这件事,这样你就能妥善处理
您正在将内容从$\u POST直接传递到SQL中,而无需进行健全性检查这不安全。至少你应该使用——但是如果你使用的是mysqli,为什么不把它做成一个准备好的语句,然后绑定变量呢?安全多了
我认为,直接的问题是,因为您正在使用带有多个参数的empty
——与isset
不同,它只需要一个参数
不过,还有一些其他问题
不要用@
抑制任何错误-如果出现问题,
你想知道这件事,这样你就能妥善处理
您正在将内容从$\u POST直接传递到SQL中,而无需进行健全性检查这不安全。至少你应该使用——但是如果你使用的是mysqli,为什么不把它做成一个准备好的语句,然后绑定变量呢?安全多了
非常确定您不能在PHP中使用多行字符串警告您的代码容易受到sql注入攻击!为什么要在运行MySQL查询后检查所有$\u POST
数据是否已填充?如何防止PHP中的SQL注入:谢谢大家的评论和提示!非常确定您不能在PHP中使用多行字符串警告您的代码容易受到sql注入攻击!为什么要在运行MySQL查询后检查所有$\u POST
数据是否已填充?如何防止PHP中的SQL注入:谢谢大家的评论和提示!嗨,谢谢!制作一个准备好的语句并绑定变量是什么意思?请看下面的答案:-这是一种帮助您编写更安全代码的方法。就目前情况而言,如果有人输入包含撇号的数据,它最多只能打断您的查询;而且可能做得更糟。事先准备好的声明有助于避免这种情况。谢谢!非常感谢!嗨,谢谢!制作一个准备好的语句并绑定变量是什么意思?请看下面的答案:-这是一种帮助您编写更安全代码的方法。就目前情况而言,如果有人输入包含撇号的数据,它最多只能打断您的查询;而且可能做得更糟。事先准备好的声明有助于避免这种情况。谢谢!非常感谢!很乐意帮忙。如果它对你有用,你应该接受这个答案,以备将来人们遇到这个问题时参考。很高兴为你提供帮助。如果它对你有用,你应该接受这个答案,以备将来人们遇到这个问题时参考。