2012-01-18 11 views
0

私はクライアントが5分間サイトを閲覧した後、担当者に連絡フォームを記入して提出することをクライアントに要求したいと思うphpサイトを持っています。 Infoはデータベースに追加する必要はなく、オフィスの電子メールに送信するだけです。私はフォームを作成しましたが、ポップアップを処理してサイトを表示する前に必要なものにするための最善の方法は不明です。5分後の連絡先情報

+10

それは* *は必須作りますか?すべてのあなたの訪問の長さを確実にする方法は<5分です。 – Matt

+2

@Matt私は私の仕事でさらに愚かな要求を得る:P – Esailija

+2

私はあなたがセッション値を追跡できると思います。セッション開始時の現在のタイムスタンプに設定し、すべてのページ要求時の現在のタイムスタンプと比較します。比較が5分を超える場合は、フォームにリダイレクトします。それは...非常に良いユーザーエクスペリエンスではありません。しかし、私はそれが要件を定義した人の問題だと思う。 – David

答えて

1

あなたは、あなたがこれからそれらを話そうとしていない場合、あなたのクライアントに重大な害を与えています。人々がサイトにアクセスしないようにするには、開発しないようにする必要があります。人々がそれを訪問したい(または戻ってくる)ことを望むなら、彼らはこれを考慮すべきではありません。

これは、ある種のタイマーを設定してポップアップを表示させることができますが、多くのポップアップブロッカーがこれを処理することができます。どのようにそれを行うか(クッキー、別のページを提供するなど)にかかわらず、このようなスキームにはさまざまな方法がありますが、そのサイトで非常にユニークなものがない限り、クライアントの読者はおそらくさらに気にしません彼らは意図的に壊れていないサイトに行きます。

私はあなたのクライアントに連絡することを希望するユーザーがメールアドレスを入力できるボックスに入れておくことをお勧めします。それはあなたのユーザーを悩ますことはありませんが、興味のある人からのリードを引き受けることができます。

+0

+1は、それからクライアントを話す彼の義務を説明するために+1。 – Matt

+0

それを愛してください - 私は完全に同意します - それは私があなたのすべてのクライアントに言い続けていたことです - 皆さんが私を裏切っているのを聞いてうれしいです。それがどのように機能するのか、提案に感謝します! – user1156492

1

これはあなたを助けるかもしれません。

ウェブサイトのページのためのPHP

if (false === isset($_SESSION['startTime'])) { 
    $_SESSION['formSubmitted'] = false; 
    $_SESSION['startTime'] = time(); 
} 

jqueryCheck.phpのためのPHP

$return = 0; 

if (false == $_SESSION['formSubmitted']) { 
    if ((time() - $_SESSION['startTime']) > 300) { 
     $showForm = 1; 
    } 
} else { 
    $return = 2; 
} 

echo $return; 

PHPフォームを提出し、

$_SESSION['formSubmitted'] = true; 

を検証した後、jQueryの

var intervalId = setInterval(function(){ 
    $.ajax({ url: "jqueryCheck.php", success: function(showForm){ 
     switch (showForm) { 
      case 0: //not yet at 5 mins and not submitted 
      break; 
      case 1: //at 5 minutes no form submitted 
       //code to show form 
      break; 
      case 2: //form submitted 
       clearInterval (intervalId); 
      break; 
     } 
    }}); 
}, 60000); 
0

これはJavascriptをせずに、単純なソリューションです。

if (!isset($_SESSION['trial_end'])) { 
    $_SESSION['trial_end'] = time() + 5 * 60; 
} 

// Check if trial has expired and we are not already on the form 
if (time() > $_SESSION['trial_end'] && $_SERVER['REQUEST_URI'] !== '/form') { 
    header('Location: /form'); 
    exit; 
} 
関連する問題