我从其他问题中得到了许多提示,但还不能完全达到目的。我有很多静态网页,我想包括一个笔记(评论)字段,我可以每天添加到许多页面。我想在php snipet中包含一个隐藏的输入字段,将文件名传递给php处理页面,该页面将把它存储在我的数据库中,然后我就可以在每个页面上列出历史记录。我发布了隐藏的输入值,因为它只会将引号中的整个字段添加到数据库中,而不是变量内容。
你可能已经看到了,我已经尝试了一些被注释掉的东西:
`//<?php
//$pageName = basename($_SERVER['PHP_SELF']);
//?>
<form method="post" action="processNotes.php">
Notes : <textarea name="notes_text"></textarea><br />
<input type="hidden" name="page_name" value="<?php echo
basename($_SERVER['PHP_SELF']); ?>">
<input type="submit" value="Submit" />
</form>`
处理php将记录添加到数据库,除了将php片段逐字添加到数据库中的页面名称字段。
<?php
//processNotes.php
if ($_SERVER["REQUEST_METHOD"] == "POST") {//Check it is coming from a form
$mysql_host = "localhost";
$mysql_username = "xxx";
$mysql_password = "xxx";
$mysql_database = "xxx";
$conn = new mysqli($mysql_host, $mysql_username, $mysql_password,
$mysql_database);
if ($conn->connect_error) {
die('Error : ('. $conn->connect_errno .') '. $conn->connect_error);
}
$p_name = mysqli_real_escape_string($conn, $_POST['page_name']);
//$n_name = mysqli_real_escape_string($conn, $_POST['notes_text']);
//$p_name = filter_var($_POST["page_name"], FILTER_SANITIZE_STRING);
$n_text = filter_var($_POST["notes_text"], FILTER_SANITIZE_STRING);
$n_time = date("Y-m-d H:i:s");
if (empty($p_name)){
die("Please enter textA");
}
if (empty($n_text)){
die("Please enter textB");
}
$statement = "INSERT INTO notes_data (page_name, notes, date_time) VALUES('$p_name', '$n_text', '$n_time')"; //prepare sql insert query
//bind parameters for markers, where (s = string, i = integer, d = double,
b = blob)
//$statement->bind_param('ss',$n_text,$n_time); //bind values and execute
insert query
if($conn->query($statement) === TRUE){
echo "Record Added Sucessfully. ";
}
else
{
echo "Error" . $statement . "<br/>" . $conn->error;
}
$conn->close();
我认为我非常接近,并且原因是我不是一个专业的开发人员,或者我有很多快捷方式来达到这一点,但这真的很简单,我想帮助我完成我的项目。
猜测是带有表单的文件名为.html,并且不由php处理。因为代码看起来很好。