【问题标题】:Add a generated ID number in email subject在电子邮件主题中添加生成的 ID 号
【发布时间】:2019-03-01 22:38:48
【问题描述】:

我在我的网站和我的 PHP 中有一个联系表,我使用

$subject = $_POST['subject'];

将电子邮件的主题设置为用户在 name='subject' 字段中输入的内容。

有什么方法可以在主题末尾添加一个 ID,以便每封电子邮件的 ID 号都 +1?

我猜 PHP 需要将它存储在某个地方才能知道最后一个 ID 号是什么,但我不确定如何处理。

完成后,我收到的电子邮件将包含以下主题:

user2354 typed subject [ID:000001]
user3456 typed subject [ID:000002] 
(and so on ...)

【问题讨论】:

  • 您想使用数据库还是使用跟踪 ID 的文本文件就足够了?
  • 将电子邮件记录到带有 ID 的数据库表中。在主题中使用该 ID。
  • 根据你计划以后使用这个ID,数据库存储可能很好,甚至是一个sqlite db。
  • 我知道数据库以后有更多潜在的选择,但现在纯文本文件就足够了。只需要最简单的解决方案。

标签: javascript php html


【解决方案1】:

如果你想用一个文件来存储id,你可以使用这段代码:

<?php 

$filename = __DIR__.'/id.txt'; // The file

if(!file_exists($filename)) { // File not exist start at 0
    $id = 0;
}
else {
    $id = file_get_contents($filename); // Get the id from the file
}

$id++; // Increment the id

file_put_contents($filename, $id); // Put the new id in the file

// The subject of the message
$subject = $user.' typed subject '.$_POST['subject'].' [ID:'.str_pad($id, 6, 0, STR_PAD_LEFT).']';

【讨论】:

  • 这项工作很漂亮。谢谢。附言我编辑了一下,因为user3456 typed subject 只是$_POST['subject'] 的一个示例输出
【解决方案2】:

您可以使用数据库,但一个简单的解决方案是,如果您不必在网站中存储其他内容,则将 ID 存储在文件中:

//Read id
$file = fopen("myfile", "r");
fscanf($file, "%u", $id);
fclose($file);

//Write new id
$file = fopen("myfile", "w");
fprintf($file, "%u", $id + 1);
fclose($file);

如果您必须存储更多数据,最简单有效的解决方案是使用数据库,例如带有PDO class 的 MySQL。

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 2016-05-31
    • 2019-01-09
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多