我想有一个页面,当有人点击我发送的预先格式化的链接时,会将URL中的变量写入MySQL数据库并显示"谢谢你"或对用户的东西。
示例:
用户可以点击格式为http://www.example.com/click.php?id=12345
的链接当页面加载时,12345将写入MySQL数据库中的一个表,它会显示一个谢谢你,就是这样。
似乎它应该足够简单,但我无法找到任何内容。我可能错了,因为这对我来说都是新手。
答案 0 :(得分:2)
您最好的选择是使用$ _GET ['id'],它将从您的网址中获取值。
从你的url中获取id后,你会想要使用PDO或mysqli预处理语句来保护自己免受sql注入。
我希望这会有所帮助。
根据Kevin Voorn的评论更新。
if(isset($_GET['id']) && !empty($_GET['id'])) {
$logged_id = $_GET['id'];
$stmt = $mysqli->prepare("INSERT INTO tableName (`logged_id`) VALUES (?)");
$stmt->bind_param('i', $logged_id);
$stmt->execute();
if($stmt->affected_rows > 0){
echo "Thank You.";
}
$stmt->close();
}
答案 1 :(得分:1)
用户$ _GET来检索该值并将其放入您的表中。 例如:
code.php中的代码
CNullDecorator () { return ; }
答案 2 :(得分:0)
感谢您的回复。我最终找到了这个页面:https://www.binpress.com/tutorial/using-php-with-mysql-the-right-way/17,描述了使用mysqli连接到我的数据库的过程。我使用该页面在../db.php
中创建必要的函数,并将其包含在捕获url的实际PHP脚本中。我的脚本最终看起来像这样:
<?php
require '../db.php';
date_default_timezone_set('UTC');
$date = date("Y-m-d H:i:s T");
$db = new Db();
$db_id = $db -> quote($_GET['id']);
$db_date = $db -> quote($date);
$result = $db -> query("INSERT INTO `table` (`id`,`GUID`,`AccessTime`) VALUES (NULL, " . $db_id . "," . $db_date . ")");
if($result === false) {
exit();
} else {
echo "<html><body><center><br><h1>Thank You!</h1></center></body></html>";
}
?>