php - 允许在没有传统身份验证的情况下访问 MySQL 数据库 - PHP

标签 php mysql html database database-connection

我正在开展一个学习 PHP 的项目,并且我意识到我还有很长的路要走。

我正在创建一个基本网站,允许用户创建传统帐户并进入并构建电子邮件列表。然后,他们可以发送一封个性化的电子邮件并制作套用信函。在这封信的末尾,我添加了一个链接,读者可以访问该链接(对每个人来说都是唯一的),他们可以在其中选择并填写一个简短的表格,我希望能够将其处理回数据库中的另一个表中。始终跟踪谁说了什么。

我现在一切都工作得很好,但直到刚刚我才意识到它工作的唯一原因是因为我已经作为主用户进行了身份验证(当我打开测试电子邮件并保存我的回复时)。因此,当我打开电子邮件并转到链接并在没有缓存任何 cookie 或 session 变量的计算机上填写表单时,我无法保存,因为我无权访问数据库。

我的问题

显示在每个人的电子邮件中的 URL 末尾都有一个 guid,该 guid 由唯一标识该人的内容的组合组成。我真的不想让电子邮件收件人在我这里注册帐户,但我需要能够处理他们的回复。

即使他们没有完整的登录凭据,我如何才能授予他们写入数据库的权限?我知道它们是合法的,基于它们的 URL,可以以某种方式使其工作吗?

编辑:一些代码

以下是电子邮件中 ​​URL 的示例:

mysite.com/process.php?guid=abcdefghijklmnopqrstuvwxyz

单击后,我从 $_GET 中提取 guid 并查找有关它的一些信息。现在我想了一下,我可以立即在数据库中查找内容并没有真正意义,但这是另一个问题。填写表格并按下保存按钮后,将发生以下情况:

<?php

   drequire("library/database.inc.php");
   require("library/check-user.inc.php");

   include("library/head1.inc.php"); // Load meta data
   include("library/head2.inc.php"); // Load scripts
   include("library/header.inc.php"); // Load header

$email = $_POST['email']; 
$eqp = $_POST['eqp'];
$month = $_POST['month'];   

$sqlDel = "DELETE FROM results WHERE eqp = $eqp AND month = '$month' AND email = '$email'";
mysql_query($sqlDel) or die('Error, could not delete.');

$sqlIns = "INSERT INTO results (month, email, eqp) VALUES ('$month', '$email', $eqp);";

mysql_query($sqlIns) or die('Error, could not insert.');

echo'Success! Keep up the good work!';
 ?>

但是插入没有发生。我假设这是因为我确实没有与数据库的连接。

最佳答案

您需要发布一些代码,但作为伪代码答案

function post_for_user_to_write($special_user_ID_in_email)
{
       if ($special_user_ID_in_email == valid_special_ID())
       {
              // Connect to database
              // Post data to database
       }
}

关于php - 允许在没有传统身份验证的情况下访问 MySQL 数据库 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10771985/

相关文章:

php - 如何制作成对的数组值?

mysql,子查询或按条件加入分组

来自另一个表的 MySQL JOIN 值基于该表中原始表的(重复)值

javascript - 为什么在文本框中按 Enter 键会单击第一个按钮并提交表单

php - 为什么/user/{username} 没有自动显示?

php - Laravel 中过滤重复的外键

mysql - brew services list 显示已启动但 mariadb 无法连接

html - 段落标记中的文本对齐因浏览器而异

html - 根据提交的表单值更改表格颜色

javascript - 如何使用php,mysql在上传之前预览图像