会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

<?php
  $username=$_POST['myName'];
  $password=$_POST['myPassword'];
  $success=array('msg'=>'ok');
  $con=mysqli_connect('localhost','root','','beixidb');
  if($con){
     mysqli_query($con,'set names utf8');
     mysqli_query($con,'set character_set_client=utf8');
     mysqli_query($con,'set character_set_results=utf8');
     $sql="select * from userinfo where 1";
     $result=$con->query($sql);
     //解析查询的结果
     if($result->num_rows>0){
      $info=[];
      for($i=0;$row=$result->fetch_assoc;$i++){
           $info[$i]=$row;
           }
           //得到解析数组后判断用户发来的数据是否存在数据库中
           $flag=0;//只要执行break就变为1否则一直为0
           for($j=0;$j<count($info);$j++){
              //判断是否与当前用户名相同
              if($info[$j]['username']==$username){
                 //如果相同继续判断是否是当前条目的密码
                 if($info[$j]['password']==$password){
                    $success['infoCode']=0;
                    $flag=1;
                    break;
                 }
              }

           }
           if($flag=0){
              $success['infoCode']=1;
           }
           $success['infoCode']=$info;
     }else{
      $success['infoCode']=1;
     }
  }else{
      $success['infoCode']=2;//0代表登陆成功1代表登录失败2代表数据库连接失败
  }

  //返回给前端
  echo json_encode($success);
?>

老师我代码运行不报错但是也没有结果,你看看这段代码有问题吗?

WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 1楼

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
   public function valid()
    {
        $echoStr = $_GET["echostr"];

        //valid signature , option
        if($this->checkSignature()){
           echo $echoStr;
           exit;
        }
    }

    public function responseMsg()
    {
      //get post data, May be due to the different environments
      $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

       //extract post data
      if (!empty($postStr)){
                /* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of xml by yourself */
                libxml_disable_entity_loader(true);
               $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
                $textTpl = "<xml>
                     <ToUserName><![CDATA[%s]]></ToUserName>
                     <FromUserName><![CDATA[%s]]></FromUserName>
                     <CreateTime>%s</CreateTime>
                     <MsgType><![CDATA[%s]]></MsgType>
                     <Content><![CDATA[%s]]></Content>
                     <FuncFlag>0</FuncFlag>
                     </xml>";             
            if(!empty( $keyword ))
                {
                  $msgType = "text";
                   $contentStr = "我是你爸爸";
                   $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                   echo $resultStr;
                }else{
                   echo "Input something...";
                }

        }else {
           echo "";
           exit;
        }
    }
      
   private function checkSignature()
   {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
              
      $token = TOKEN;
      $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
      sort($tmpArr, SORT_STRING);
      $tmpStr = implode( $tmpArr );
      $tmpStr = sha1( $tmpStr );
      
      if( $tmpStr == $signature ){
         return true;
      }else{
         return false;
      }
   }
}

?>


老师,我在用阿里云服务器对接我的微信订阅号,服务器是lamp环境,域名是我用来练习的域名charles666.xyz,已备案,可以正常访问。

在微信公众号后台-基本配置-服务器配置时,将服务器和微信公众号对接,注释掉上面代码中的“

$wechatObj->responseMsg()

”,解除下面这个方法调用的注释,

$wechatObj->valid()

提示“提交成功”,已经将服务器配置好了。接下来解除

$wechatObj->responseMsg()

的注释,并注释掉下面这个方法的调用,

$wechatObj->valid()

这时候我在公众号中输入任意文字时,公众号应该弹出“我是你爸爸”的回复消息,但实际上提示的是“该公众号提供的服务出现故障,请稍后再试”。

想问下老师,这个故障怎么解决?我哪一步写错了?

WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 2楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 3楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 4楼

login完整案例.zip

老师,没有任何错误,但也不会弹出提示

WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 6楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 7楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 8楼
WEB前端全系列/第五阶段:前后端交互/服务器与数据库交互 9楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 10楼
WEB前端全系列/第五阶段:前后端交互/服务器 11楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 12楼

老师 有三个问题

老师 为啥我后台接受前台的值会报错?

第二

$arrInfo[$j]['username']==$pass&&$arrInfo[$j]['password']==$user这个判断语句要怎么写

第三为啥汇报跨域错误?

<?php

try {
    $pdo=new PDO('mysql:host=127.0.0.1;dbname=beixidb','root','');
    $pdo->exec('set names utf8');
} catch (PDOException $err) {
    echo '连接失败'.$err->getMessage();
}
$pass=$_POST['pword'];
$user=$_POST['uname'];
$sql='select *from login';
$pdoSo=$pdo->prepare($sql);
$pdoSo->execute();
$pdoSo->bindColumn(1,$uer);
$pdoSo->bindColumn(2,$pass);
$arrInfo=[];
for($i=0;$pdoSo->fetch(PDO::FETCH_COLUMN);$i++){
   
    $arrInfo[$i]=array('username'=>$uer,'password'=>$pass,);

}
print_r($arrInfo);
$info=false;
for($j=0;$j<=count($arrInfo);$j++){
    if($arrInfo[$j]['username']==$pass&&$arrInfo[$j]['password']==$user){
       
        $info=true;
        echo '登陆成功';
        break;
    }
}
if(!$info){
    echo '账号或者密码错误';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<div id="login">  
    <span>用户:</span><input type="text" id="usernameInput" class="u1"><br>
    <span>密码:</span><input type="password" id="passwordInput">
</div>
  <button>提交</button>
<script src="../libs/myAjax.js"></script>
<script src="../libs/jquery.min.1.9.1.js"></script>
  <script>
   
      var btn=document.querySelector('button');
      var uInput=document.querySelector('#usernameInput');
      var pInput=document.querySelector('#passwordInput');
   
     
      btn.onclick=function(){
               myAjax({
                   type:'post',
                   url:'111.php',
                   datas:{
                       uname:uInput.value,
                       pword:pInput.value,
                   },
                   succes:function(res){
                       console.log(res);
                   }
               })
      }

  </script>
</body>
</html>

以下是我的封装ajax请求

image.png

WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 13楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637