2

使用:

  • MySQL 5.1.68-cll
  • PHPmyadmin 3.5.5
  • Interspire E メール マーケター 6.1.2

Interspire では、メール ニュースレターのリンクで、変数 e=[その購読者のメールの MD5 ハッシュ] を渡したいと考えています。どうすればそれができるかについて何か考えはありますか?e という名前のカスタム フィールドを作成し、それにハッシュ値を入力する関数を実行する必要がありますか、それともその場でそれを行う方法はありますか?

また、誰かが私のメーリング リストに参加するたびにハッシュを作成する方法はありますか?

ありがとうございました!

4

3 に答える 3

1

私のデータベースでは、ハッシュを含む列を作成したいと考えています。これを hash_of_email としましょう。新しいレコードが作成されるたびに常に電子メール アドレスのハッシュを作成し、既存のすべてのハッシュを作成するように定義することは可能ですか? もしそうなら、どうすればできますか?理想的には、これらすべてを PHP で行いますが、Interspire を使用しているので、PHP やコードを十分に知らないため、ファイルを編集したくありません。私ができることは、データベースを操作し、HTML エディターでカスタム変数を呼び出すことです。

テーブルのストレージ エンジンとして INNODB を使用している場合は、それが可能です。

hash_of_email列のハッシュ値を保持するために新しい列を追加するとしemailます。

現在の値を更新するには

UPDATE `table` SET `hash_of_value` = MD5(`email`)

新しいレコードを自動的に更新するには

MySQL のトリガーを参照してください。必要なのは、上の BEFORE CREATE TRIGGERtableです。やってみましょう:

DELIMITER $$
CREATE TRIGGER `TG_table__before_insert`
    ON `table` BEFORE INSERT FOR EACH ROW
BEGIN
    SET NEW.`hash_of_email` = MD5(NEW.`email`);
END $
DELIMITER ;

幸運を、

于 2013-05-24T04:10:59.843 に答える
0

PHP と MySQL の両方で、md5 は標準関数です。次のように使用できます。

PHP:

$e = md5($Email);

MySQL:

md5(EmailField)

どちらもクエリでも使用できます。URL でクエリ文字列として渡す予定なので、次の PHP の例のようにエンコードしても安全です。

$EncodedEmail = urlencode($e);//where $e is from above.

そしてもちろん、urldecode()それを逆にするために使用する必要があります。

詳細: MySQL クエリ内で示したように、md5 関数を使用するだけです。しかし、私は Interspire に詳しくないので、アドバイスすることはできません。

クエリで md5 関数を使用する場合の例を次に示します。

$strSQL = "Update MyTable Set
  EmailHash = md5(EmailAddress)";

しかし、あなたがPHPを使えないと言うと、少し戸惑います。ある時点で、PHP 変数をメールに移動し、メール情報を PHP コードに移動できるようにする必要があります。

于 2013-05-24T03:40:54.973 に答える
0

mysqlの最新バージョンでは、次のことができます

select md5(email_address) from whatevertable;

または、すでに取得したメールに対しても実行できます

$md5edEmail = md5($email_address);
于 2013-05-24T03:35:33.977 に答える