如何获得URL里的?key=123里的key参数

mike859

我在代码里写了 $key = isset($_GET)?$_GET:false;可好像一直都是false 框架里是这么获取的吗??

7515 8 0
8个回答

john

输出GET看看呢,可能GET没有获取到key的键

  • 暂无评论
mike859

我打印了 _GET _POST _SERVER貌似都没有得到 不知道为什么 我已经换了个方法提交了 谢谢啊

  • 暂无评论
john

用的什么框架啊

  • 暂无评论
mike859

还是这个框架 我让用户在聊天的时候 把这个参数一起提交给服务器了

  • 暂无评论
48021129

例如前端js这样调用

ws = new WebSocket("ws://workerman.net:7272/?name=xxx&password=xxx");

你是说的这个吧.

if(preg_match("/GET\s\/\?(.*?)\sHTTP\/1.1/", $message, $userinfo)){
    $userinfo=string_turn_array($userinfo);
    $user=$userinfo;
    $uid=$userinfo;
    GateWay::storeUid($uid);                                                                    // 记录uid到gateway通信地址的映射
    GateWay::notifyConnectionSuccess($uid);                                                     // 发送数据包到address对应的gateway,确认connection成功
    GateWay::sendToCurrentUid($new_message);                                                    // 发送数据包到客户端 完成握手
    return self::addUser($uid, $user);                                                          // 添加用户
}else{
    echo "error_action:$message";
    return false;
}

我是这样处理的.
string_turn_array这个函数是把字符串转成数组.

我今在才接触这个,希望大家一起研究啊.我想要有一个API接口.可以通过PHP连接聊天室,并查询和发送信息.研究半天没结果.希望哪位大神给点提示.

  • 暂无评论
hypcloud

为啥我把UID换成非数字形式,ChatDemo运行就会出现
PHP Notice: Undefined index: to_uid in /workerman-master/applications/PushDemo/Tests/Chat.php on line 56 整个socket没有写进去好像

hypcloud

两个问题
1、$sock = stream_socket_client("tcp://$ip:$port/?username=XXX&password=XXX");
这种方式连接在event中试过if(preg_match("/GET\s\/\?(.*?)\sHTTP\/1.1/", $message, $userinfo))取不到username和password值,应该怎么样取。

2、如果我是在本机连远程服务器,if(!$sock)exit("can not create sock\n");else{echo "OK";},这个能打印出OK,说明连上服务器了。但远程服务器的信息并不能返回给本机,这是什么原因。本机是在一个局域网。

  • 暂无评论
bcxz

参照 https://www.kancloud.cn/walkor/workerman/315305 ,可以获取。
例如:

/**
 * 当连接建立时触发的回调函数
 * @param $connection
 */
public function onConnect($connection)
{
    $connection->onWebSocketConnect = function ($connection, $http_header) {
        var_dump($_GET);
    };
}
  • 暂无评论
年代过于久远,无法发表回答
🔝