2012-09-14 68 views
0

我正在寫一個表單,用戶可以在這裏發送信息,並附加一個文件,通過電子郵件發送給某些用戶。通過iframe發送表單到php

我構建了一個HTML表單,並且因爲我不想刷新我通過隱藏的iframe發送的頁面。

一切正常,直到我添加了captcha到我的表單。現在我遇到了問題。我在主窗體頁面的會話中爲驗證碼存儲生成的字符串。但由於表單是從iframe發送的,我認爲PHP正在創建一個新的會話,該會話是空的。

任何人都可以建議如何將iframe和我的表單頁面連接到相同的會話?我想提一下,當用戶點擊發送表單時,iframe是由JavaScript動態創建的。

感謝您的意見!

編輯: 我的代碼 HTML表單頁面:

<input type="text" name="name"/><br /> 
<input type="text" name="email"/><br /> 
<textarea name="message"></textarea><br /> 
<input type="file" name="file"/><img id="captchaimg" src="http://xxx/mailsend.php?application=xxx&image=get"/><input type="text" name="captcha"/> 
<input type="button" id="send" value="send"/> 

我的JS文件:

function sendFromIframe() { 
    if ($('#hiddeniframe').length == 0) { 
     var iframe = ('<iframe name="hiddeniframe" id="hiddeniframe" src="" border="0" height="0" width="0" style="display:none"></iframe>'); 
     $("body").append(iframe); 
    } 
    setTimeout(function() { 
     var form = $('#feedback'); 
     form.attr('target', 'hiddeniframe'); 
     form.attr('method', 'POST'); 
     form.attr('action', 'http://xxx/mailsend.php'); 
     form.attr("enctype", "multipart/form-data"); 
     form.attr("encoding", "multipart/form-data"); 
     form.submit(); 
     wait4refresh(); 
    }, 550); 
} 
function wait4refresh(counter){ 
    var counter = counter || 0; 
    var bolean = false; 
    var request = $.ajax({ 
     async: false, 
     url: 'http://xxx/mailsend.php', 
     type: 'GET', 
     data: 'application=' + $('input[name="application"]').val() + '&issend' 
    }); 
    request.done(function(msg){ 
     if (msg == 'true'){ 
      bolean = true; 
     } 
    }); 
    if (bolean){ 
     refreshCaptcha(); 
    } 
    else if (counter > 10){ 
     return false; 
    } 
    else{ 
     setTimeout(function(){ 
      counter++ 
      wait4refresh(counter); 
     },500); 
    } 
} 
function refreshCaptcha() { 
    var application = $('input[name="application"]').val(); 
    d = Math.round(Math.random() * 100); 
    $('#captchaimg').attr('src', 'http://xxx/mailsend.php?application=' + application + '&image=get' + '&' + d); 
} 

和PHP文件:

我得到錯誤「連接重置由同伴「當我試圖在這裏添加我的PHP代碼。我能做什麼?

+0

請將您的代碼發送 –

回答

0

難道你不是隻是創建一個<div id='htmlform'> </div>,只是讓它可見/不可見與jQuery?