0

我正在编写一个表单,用户可以在其中发送信息并附加一个文件,该文件通过电子邮件发送给某些用户。

我已经构建了一个 HTML 表单,并且因为我不想刷新页面,所以我通过隐藏的 iframe 发送了它。

一切正常,直到我在表单中添加了验证码。现在我有一个问题。我将生成的验证码字符串存储在主表单页面的会话中。但是因为表单是从 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 代码时,我收到错误“由对等方重置连接”。我能做些什么?

4

1 回答 1

0

您不能只创建一个<div id='htmlform'> </div>并使用 jquery 使其可见/不可见吗?

于 2012-09-14T13:54:13.883 回答