【问题标题】:Manpulate $_session with AJAX使用 AJAX 操作 $session
【发布时间】:2011-01-05 17:25:18
【问题描述】:

我确定有一个解决方案,我已经尝试用谷歌搜索我正在寻找的内容,但还没有分析器,所以这是我的小问题,我有一个带有验证码的表单,验证码是$_SESSION['PASSWORD'] 中的原始字符串,所以我想验证用户是否使用与 $_SESSION['PASSWORD'] 中相同的字符串。

好吧,我想我在这里需要一点 ajax,在我提交表单之前,我必须检查 $_SESSION['PASSWORD'] 与 ajax 并将其与用户磁带进行比较

请提供任何帮助,“我不是 ajax 专业人士”,如果您能从我这里变得非常简单,那就太好了。

【问题讨论】:

    标签: php ajax session captcha


    【解决方案1】:

    HTML

    <input type="text" id="captcha" name="captcha"> <!-- This is your captcha input -->
    

    JQuery:

    $.get('verify.php', { captcha: $('#captcha').val() }, function(data){
        if(data === 'OK'); //Validation is ok
        else; //Validation is wrong
    });
    

    PHP(验证.php):

    <?php
        session_start();
        if($_GET['captcha'] === $_SESSION['password']) echo 'OK';
        else echo 'ERROR';
        exit();
    ?>
    

    就是这样,看到你的接受率只有 20%,希望你能接受答案

    【讨论】:

    • 但是在validation.php中你需要一个session_start();在顶部;)
    【解决方案2】:

    创建一个新的 php 文件并对该文件执行 ajax 请求。比检查你得到的是真还是假。

    session_start();
    if($_SESSION['PASSWORD'] == $_POST['PASSWORD']) {
      echo "true";
    }
    echo "false";
    

    注意:这不是很安全。最好在提交表单时检查它(假设这是您使用验证码的原因)。如果您使用 ajax 或正常提交表单的方式发布表单,则无关紧要。如果您仅使用 ajax 检查验证码,则仍然可以使用自定义 http 请求发布数据,或者通过禁用 javascript(大多数机器人所做的)更简单。

    【讨论】:

    • 好吧,一旦我提交了 $_SESSION['PASSWORD'] 更改的表单,我就无法再次使用前一个进行验证,有什么帮助吗?
    • 将其存储在另一个变量中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    • 2015-08-14
    • 1970-01-01
    相关资源
    最近更新 更多