Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Ajax成功返回空字符串_Php_Jquery_Ajax - Fatal编程技术网

Php Ajax成功返回空字符串

Php Ajax成功返回空字符串,php,jquery,ajax,Php,Jquery,Ajax,我试图使用ajax创建重置密码模块,但php文件中的返回值(console.log())始终为空。我的php文件中也没有错误,我甚至不回显空字符串。请帮忙,这是我的ajax请求 $.ajax({ type:'POST', url:'verify-change-pass', data: {_oldpass : op, _pass1 : p1, _pass2 : p2}, success:function(data) { data = data.tri

我试图使用ajax创建重置密码模块,但php文件中的返回值(
console.log()
)始终为空。我的php文件中也没有错误,我甚至不回显空字符串。请帮忙,这是我的ajax请求

$.ajax({
    type:'POST',
    url:'verify-change-pass',
    data: {_oldpass : op, _pass1 : p1, _pass2 : p2},
    success:function(data) {
        data = data.trim();

        switch(data){
            case "er_no_acc" : 
                $('#grp_oldpass').addClass('has-error');
                $('#feedback_oldpass').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_oldpass').innerHTML = "*No account found. Please refresh the page to generate new session.";
                //alert('Please enter your username');
                break;
            case "er_oldpass_empty" :
                $('#grp_oldpass').addClass('has-error');
                $('#feedback_oldpass').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_oldpass').innerHTML = "*Please enter old password.";
                // alert('Please enter your password');
                break;
            case "er_oldpass_invalid" : 
                $('#grp_oldpass').addClass('has-error');
                $('#feedback_oldpass').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_oldpass').innerHTML = "*Old password does not match.";                 
                // alert('Please enter your password');
                break;
            case "er_pass1_empty" :
                $('#grp_pass1').addClass('has-error');
                $('#feedback_pass1').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass1').innerHTML = "*Please enter password.";
                // alert('Please enter your password');
                break;
            case "er_pass2_empty" : 
                $('#grp_pass2').addClass('has-error');
                $('#feedback_pass2').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass2').innerHTML = "*Please enter password.";                 
                // alert('Please enter your password');
                break;  
            case "er_pass1_tooshort" :
                $('#grp_pass1').addClass('has-error');
                $('#feedback_pass1').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass1').innerHTML = "*Password must be more than 5 characters.";
                // alert('Password too short.');
                break;
            case "er_pass2_tooshort" :
                $('#grp_pass2').addClass('has-error');
                $('#feedback_pass2').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass2').innerHTML = "*Password must be more than 5 characters.";
                // alert('Password too short.');
                break;
            case "er_pass1_toolong" :
                $('#grp_pass1').addClass('has-error');
                $('#feedback_pass1').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass1').innerHTML = "*Password must be less than 20 characters.";
                // alert('Password too long.');
                break;
            case "er_pass2_toolong" :
                $('#grp_pass2').addClass('has-error');
                $('#feedback_pass2').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass2').innerHTML = "*Password must be less than 20 characters.";
                // alert('Password too long.');
                break;
            case "er_pass_notsame" :
                $('#grp_pass1,#grp_pass2').addClass('has-error');
                $('#feedback_pass1,#feedback_pass2').addClass('glyphicon glyphicon-remove form-control-feedback');
                document.getElementById('msg_pass1').innerHTML = "*Password does not match.";
                document.getElementById('msg_pass2').innerHTML = "*Password does not match.";
                // alert('Password does not match');
                break;                  
            case "y" :
                    ResetMyPassword(p1);    
                break;
            default:
                alert('Error occured : '+data);
        }


        /* Always put console.log for debugging */
        console.log(data);
    }
});
这是我的
verifychangepass.php

session_start();
if(!isset($_SESSION['username'])){
    echo "Error 404 : Page not found.";
    exit();
}
include("connectdb.php");

$par_uname = $_SESSION['username'];
$par_oldpass = isset($_POST['_oldpass']) ? $_POST['_oldpass'] : ''; 
$par_pass1 = isset($_POST['_pass1']) ? $_POST['_pass1'] : '';
$par_pass2 = isset($_POST['_pass2']) ? $_POST['_pass2'] : '';

trim($par_oldpass);
trim($par_pass1);
trim($par_pass2);
htmlspecialchars($par_oldpass);
htmlspecialchars($par_pass1);
htmlspecialchars($par_pass2);

$count=0;
$stmt = $mysqli->prepare("SELECT acc_hashedpass FROM admin_acc WHERE acc_uname=?");
$stmt->bind_param('s',$par_uname);
$stmt->execute(); 
$stmt->store_result();
$count = $stmt->num_rows;
$stmt->bind_result($hashed);
$stmt->fetch();
$stmt->close();

if($count != 1){
    echo "er_no_acc"; //no username found. check the session if fetched properly
    exit();
}

if ($par_oldpass == ""){
    echo "er_oldpass_empty"; //oldpass is empty
    exit();
}

if(!password_verify($par_oldpass,$hashed)){
    echo "er_oldpass_invalid" . password_verify($par_oldpass,$hashed); //invalid old password
    exit();
}

if ($par_pass1 == ""){
    echo "er_pass1_empty"; //password 1 is empty
    exit();
}

if($par_pass2 == ""){
    echo "er_pass2_empty"; //password 2 is empty
    exit();
}

if(mb_strlen($par_pass1) < 6){
    echo "er_pass1_tooshort"; //password is too short. Must be more than 8 characters
    exit();
}
if(mb_strlen($par_pass2) < 6){
    echo "er_pass2_tooshort"; //password is too short. Must be more than 8 characters
    exit();
}

if(mb_strlen($par_pass1) > 20){
    echo "er_pass1_toolong"; //password is too long. Must be less than 20 characters
    exit();
}
if(mb_strlen($par_pass2) > 20){
    echo "er_pass2_toolong"; //password is too long. Must be less than 20 characters
    exit();
}

if ($par_pass1 != $par_pass2){
    echo "er_pass_notsame"; //password doesnt match
    exit();
}

echo "y";
session_start();
如果(!isset($\u会话['username'])){
echo“错误404:找不到页面。”;
退出();
}
包括(“connectdb.php”);
$PARU uname=$会话['username'];
$par_oldpass=isset($_POST[''u oldpass'])$_张贴[“旧通行证]:”;
$par_pass1=isset($_POST[''u pass1'])$_邮政[''通行证]:'';
$par_pass2=isset($_POST[''u pass2'])$_邮政[''通行证2']:'';
修剪($par_oldpass);
修剪(每件1美元);
修剪(每平方米2美元);
htmlspecialchars($par_oldpass);
htmlspecialchars($par_pass1);
htmlspecialchars($par_pass2);
$count=0;
$stmt=$mysqli->prepare(“从admin\u acc中选择acc\u hashedpass,其中acc\u uname=?”;
$stmt->bind_param('s',$par_uname);
$stmt->execute();
$stmt->store_result();
$count=$stmt->num\u行;
$stmt->bind_result($hash);
$stmt->fetch();
$stmt->close();
如果($count!=1){
echo“er\u no\u acc”;//未找到用户名。如果获取正确,请检查会话
退出();
}
如果($par_oldpass==“”){
回显“er\u oldpass\u empty”;//oldpass为空
退出();
}
如果(!password\u verify($par\u oldpass,$hash)){
回显“er_oldpass_invalid”。密码验证($par_oldpass,$hash);//无效的旧密码
退出();
}
如果($par_pass1==“”){
echo“er_pass1_empty”;//密码1为空
退出();
}
如果($par_pass2==“”){
echo“er_pass2_empty”;//密码2为空
退出();
}
如果(百万欧元($par_pass1)<6){
echo“er_pass1_tooshort”;//密码太短。必须超过8个字符
退出();
}
如果(百万欧元($par_pass2)<6){
echo“er_pass2_tooshort”;//密码太短。必须超过8个字符
退出();
}
如果(百万英镑($par_pass1)>20英镑){
echo“er_pass1_toolong”;//密码太长。必须少于20个字符
退出();
}
如果(百万英镑($par_pass2)>20英镑){
echo“er_pass2_toolong”;//密码太长。必须少于20个字符
退出();
}
如果($par_pass1!=$par_pass2){
echo“er\u pass\u notsame”//密码不匹配
退出();
}
回声“y”;
如果正在工作,则来自
verify change pass.php
的第一个到第六个
的回显将起作用,此后,返回值始终为空字符串。请帮忙


顺便说一句,这段代码可以在
localhost
上运行,但在我在线上传后,代码就不起作用了。

显然我需要+50声誉来做评论,所以让我通过回答(lol)来评论

尝试将其添加到代码的顶部

另外,检查一下

include("connectdb.php");
内部有任何错误/可能的出口


您是否尝试过在最顶端回显一些内容?

尝试从php文件的代码中删除退出函数,该文件由ajax调用 只需打印您想要的消息,并尝试提醒您在ajax成功中得到的响应。 ->您可以尝试使用jQuery.trim(数据);而不是data.trim(); 希望它能起作用。
->在php的ajax文件中尝试else if而不是个别if

php文件中没有错误。在
include(connectdb.php)
和ajax返回成功之前,我也尝试了回显。此外,如果我输入了错误的旧密码,ajax请求将返回正确的值(即
“er\u oldpass\u invalid”
)。我无法理解为什么它在
localhost
中正常工作,但在联机上载时却不能正常工作/ajax只返回从第一个
if
到第六个
if
的值。除此之外,它返回一个空字符串。尝试使用else if而不是all if($count!=1){echo“er_no_acc”//未找到用户名。如果获取正确,请检查会话}elseif($par_oldpass==“”){echo“er_oldpass_empty”//oldpass为空}elseif(!password\u verify($par_oldpass,$hashed)){echo“er_oldpass\u无效”.password\u verify($par\u oldpass,$hash);//无效的旧密码}。。。。。else{echo“Y”}并删除所有exit();从状态
include("connectdb.php");