账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php ajax提交携带token的问题
    23
    0

    做项目为了防止crsf攻击,将编辑和删除改成了ajax post提交方式,但是不知道怎么在ajax中携带token,并在后台验证。我用的是thinkphp5的框架,用原生php实现也行,多谢赐教

    示例代码:

    <table id="bt">
                <thead>
                    <tr>
                        <th data-field="xh" >序号</th>
                        <th data-field="xm" >姓名</th>
                        <th data-field="price" >价格</th>
                        <th data-field="action" >操作</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>yxg</td>
                        <td>$1</td>
                        <td>
                            <div class="btn-group" role="group" aria-label="...">
                              <button type="button" class="btn btn-info" onclick="editOne(1);">编辑</button>
                              <button type="button" class="btn btn-danger" onclick="delOne(1);">删除</button>
                            </div>
                        </td>
                    </tr>
                    ......

    js部分

    /*ajax 提交封装函数 集成torken */
            function sendAjax(vurl,vtype,vdatatype,vdata){
                // 设置参数默认值
                vtype=vtype||'POST';
                vdatatype=vdatatype||'json';
                $.ajax({
                    url: vurl,
                    type: vtype,
                    dataType: vdatatype,
                    data: {'id':vdata},
                })
                .done(function(data) {
                    alert(data.msg);
                })
                .fail(function() {
                    console.log("error");
                })
                .always(function() {
                    console.log("complete");
                });
            }
            // 单条编辑
            function editOne(id){
                var url='edit.php';
                var type='POST';
                var datatype="json";
                var data=id;
                sendAjax(url,type,datatype,data);
            }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 剑鬼非人哉 普通会员 1楼

      在PHP中,如果你使用AJAX提交表单数据,并且需要携带token,你可以使用PHP的$_SESSION或$_FILE变量来存储token。

      以下是一个简单的示例:

      ```php

      $username, 'password' => $password ); // 使用session来存储token $_SESSION['token'] = $token; // 如果你希望将token发送到服务器 // ... } else { // 登录失败,你可以将错误信息发送到服务器 // ... } function generateToken() { // 生成一个随机的token // ... } function validateToken($token) { // 使用token来验证登录 // ... } ?>

      ```

      在这个示例中,我们首先在服务器端生成一个token,然后在客户端使用这个token来验证登录。如果你的token是正确的,那么服务器端会返回true,否则返回false。

      注意,这个示例假设你的登录表单字段是usernamepassword,你可以根据你的实际情况修改这些字段名。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部