2012-03-08 8 views
0

メーリングリストにサインアップして詳細をデータベースに入力するメーリングリストフォームがあります。しかし、今私は、ユーザーがウェブサイト内で電子メールを作成し、メーリングリストにサインアップしたすべての人々に送ることができる管理セクションが必要です。これどうやってするの?ここでメーリングリストのサイトマネージャーを設定してお客様に一括してニュースレターを送付する方法

はもともとメーリングリストを作成するための私のコードです:

<?php 
// start the session handler 
require_once('dbfunction.php'); 

//connect to database 
$conn2 = DB2(); 

require_once('header.php'); 

/* 
* should we proceed with the form (if page is not submitted to itself echo the form) 
*/ 
if (isset($_POST['submit'])) { 

//detect if we have errors or not 
$errors = false; 
$error_msg = "Error, please try again"; 


if (!isset($_POST['full_name']) || $_POST['full_name'] == "") { 
$errors = true; 
    echo "<p style='color: red; position: absolute; top:115.5em; right:28em;'>Enter your full name</p>"; 
} 

if (!isset($_POST['email']) || $_POST['email'] == "") { 
$errors = true; 
    echo "<p style='color: red; position: absolute; top:120.1em; right:25.7em;'>Enter an email</p>"; 
} 

$email = $_POST['email']; 

//prepare and set the query and then execute it 
$stmt = $conn2->prepare("SELECT COUNT(email) FROM maillist WHERE email = ?"); 
$stmt->bind_param('s',$email); 
$stmt->execute(); 
$stmt->bind_result($count); 
while($stmt->fetch()){} 

if(!empty($count)){ 
    echo "<p class='red'>Email already registered, please enter an alternative email</p>"; 
} 
else 

//if we have no errors, do the SQL 
if (!$errors) { 
$full_name = $_POST['full_name']; 
$full_name = ucfirst($full_name); 

//insert data 
$stmt = $conn2->prepare("INSERT INTO maillist (billing_name, email) VALUES (?, ?)"); 

//bind the parameters 
$stmt->bind_param('ss', $full_name, $email); 

// Execute query 
$stmt->execute(); 

//if the query worked, put out the confirmation message (you can make this look however you want) 
if ($stmt) { 
    echo "<p class='black'>Thank you for joining out mailing list</p>"; 

//put out the footer and then stop the rest of the script from running, so we don't display the rest of the form (this is after the form has been submitted) 
require_once('footer.php'); 
exit; 
} 
} 
} 

答えて

1

管理者用コントロールパネル(ACP)別名バックオフィスは、PHPで簡単に作成できます。 あなたは、次の「論理」に従います新しいファイルまたはフォルダを作成することができます。

は、メンバーログイン中を1.IsとACPのための権限を持っていますか? (セッション/クッキー)

2.ログインフォームを印刷し、彼の詳細を確認してください。

2.1これらの詳細がDB adminテーブルに存在する場合は、クッキーまたはセッションを作成します。

3.ログインするとACPが表示されます。

管理者が電子メールを書いてすべての購読者に送信するオプションがあります。 (あなたの必要に応じて)。

したがって、件名とメッセージ(コンテンツ)の2つのフィールドを持つ簡単なフォームが必要です。 (例えば$_POST['title']

形式のデータし1.Get

全ての加入者を持つデータベースから

2.Fetch:フォームを送信すると は、それが行いますPHPスクリプトを実行しますループ(while

3.フェッチしている間に、mail機能を持つ電子メールを送信してください。

1

なぜ車輪の再発明。既にこれを行ういくつかの素晴らしいサービスがあります。それらはすべてあなたの加入者リストを構築するために使用できるAPI /機能を持っています。さらに、素晴らしいレポートとクリック/リンクのトラッキングと統計情報を得ることができます。この機能を自分で作成するには多くの労力が必要です。

個人的に私はキャンペーンモニター - http://www.campaignmonitor.com/を使用します。それは我々がここで:)

前80万電子メールのキャンペーンを送信するためにそれを使用しました、堅実なのはリストと加入者を管理することができますPHPのコード例は以下のとおりです。 https://github.com/campaignmonitor/createsend-php

1

あなたは外部の郵送を使用したいですリストマネージャに送信し、メッセージをリストアドレスに送信します。外部MLMは、Webホストからのメールのみを転送し、他のすべてをメーリングリスト管理者に転送するように設定されています。誰にもテストしないでくださいが、あなたはリストに投稿できます。

それでも、PHPでホイールを改革することは、痛みや苦しみ、メーリングリストの場合は公的屈辱につながるだけです。バウンス処理(電子メールを配信できない場合や、データベースに反応して更新したい場合など)など、考慮すべき点があまりにも多いので、確立された解決策を採用してください。

+0

自分で作成することで、新しいことを学び、開発スキルを向上させることができます。もちろん、時間と患者は必須です。 –

+0

原則として、そうですが、顧客関係にあまり影響を与えないものは、より良い訓練の場になります。 –

関連する問題