我有一个注册表单,我正在尝试将表单填写的日期记录到MySQL表中。除日期外,我正在记录表格中要求的所有信息。有人能帮助我完成这项任务吗?
以下是我认为问题所在的PHP代码片段。我也在使用PHPmyadmin作为我的数据库;如果这是相关的。
以下是页面www.3elementsreview.com/sign-up
的链接 $value = $_POST['First'];
$value2 = $_POST['Last'];
$value3 = $_POST['City'];
$value4 = $_POST['State'];
$value5 = $_POST['Country'];
$value6 = $_POST['Email'];
$value7 = $_POST['Y-m-d H:i:s'];
$sql = "INSERT INTO members (First, Last, City, State, Country, Email, Date) VALUES ('$_POST[First]','$_POST[Last]','$_POST[City]','$_POST[State]','$_POST[Country]','$_POST[Email]','$_POST[Date]')";
答案 0 :(得分:2)
您的代码很危险并且允许SQL注入攻击。
首先关闭mysql_ *库。
其次,如果您要使用mysql_ *函数,请在所有POST字段上使用mysql_real_escape字符串。
第三,这将解决您的问题:
$value = mysql_real_escape_string($_POST['First']);
$value2 = mysql_real_escape_string($_POST['Last']);
$value3 = mysql_real_escape_string($_POST['City']);
$value4 = mysql_real_escape_string($_POST['State']);
$value5 = mysql_real_escape_string($_POST['Country']);
$value6 = mysql_real_escape_string($_POST['Email']);
$sql = "INSERT INTO members (First, Last, City, State, Country, Email, Date) VALUES ('$value','$value2','$value3','$value4','$value5','$value6',NOW())";
在mysql中,函数NOW()用于返回当前日期/时间。
答案 1 :(得分:0)
除非您的参数被称为Y-m-d%20H:i:s=____
,否则您应该收集$_POST['date']
变量或其他内容,然后在将其分配给变量后将其转换为日期。
$value7 = $_POST['date'];
$value7 = date('Y-m-d H:i:s', $value7);