小编Bor*_*rov的帖子

PHP require()相对路径错误

我有以下文件结构:

rootDIR
    dir1
        subdir1
           file0.php
           file1.php
    dir2
       file2.php
       file3.php
       file4.php   

file1.php 需要来自dir2的file3和file4,如下所示:

require('../../dir2/file3.php')
Run Code Online (Sandbox Code Playgroud)

file2.php要求file1.php如下:

require('../dir1/subdir1/file1.php')
Run Code Online (Sandbox Code Playgroud)

然后在file1中要求无法打开file3和file4(可能是由于路径相对性)

然而是什么原因,什么我可以做file2.php这样file1.php正确地要求文件3和文件4

php relative-path

42
推荐指数
3
解决办法
4万
查看次数

如何在MYSQL中找到所有db触发器?

我使用SQL创建了一个触发器,如何在phpMyadmin中使用MySQL查看触发器?

mysql database phpmyadmin database-trigger

13
推荐指数
2
解决办法
2万
查看次数

Laravel 5:使用Laravel会话数据进行Socket.io客户端身份验证

我想根据Laravel创建的客户端会话数据对socket.io客户端进行身份验证.

我想到的是:

A - 从客户端向服务器发送用户名和电子邮件;

B - 用户登录后在我的socket.io服务器需要的数据中存储我的socket.io服务器需要的数据,然后根据会话cookie id在Node.js中读取它.sessionId -> "email, name"如果我更喜欢这种方法,我可能不得不在Redis中存储.

C - 在Laravel中使用Redis会话驱动程序,解码由Laravel设置的cookie,从Node.js访问Laravel会话值,反序列化和解码它们;

方法A显然非常不安全,只能用于证明概念.

方法C似乎更好,因为我不必复制或管理会话数据,而只是解码它.然而,这种方式将我的应用程序与Laravel托管会话的实现细节相结合,因此似乎不合适.

方法B看起来更有前景,实施起来更简单.但是,使用方法B意味着我必须自己管理一些会话数据,以便socket.io能够读取它.这样做可能会使我在Redis中存储的Laravel会话数据和会话数据相互不一致,这将在某个时间点发生.在某些极端情况下,例如,可以重用过期的会话ID,并且某些socket.io客户端将被错误地作为另一个用户进行身份验证.我现在无法想到更简单的案例,但由于这种不适应性,我认为可能存在这样的情况,安全性和用户体验都可能受到损害.

什么是基于socket.io应用程序中的Laravel会话数据实现用户身份验证的更优雅,健壮和安全的方法?如果没有明显更好的方法,我认为方法B是最好的,我可以做些什么来提高我使用Redis和Laravel会话数据管理的会话数据之间的一致性.

就我总结而言,重点实际上是访问Laravel和php之外的Laravel会话数据,并通过sessionId,email和username识别客户端.

php authentication node.js socket.io laravel

7
推荐指数
1
解决办法
4021
查看次数

pcre正则表达式匹配前两个单词,数字

我需要一个正则表达式来匹配字符串中的前两个单词(它们可能包含字母、数字、逗号和其他标点符号,但不包含空格、制表符或新行)。我的解决方案是,([^\s]+\s+){2}但如果它匹配以下内容:'123 word' *in '123 word, hello'*,它不适用于只有两个单词且后面没有空格的字符串。

这项任务的正确正则表达式是什么?

php regex string pcre

5
推荐指数
1
解决办法
6972
查看次数

如何使用 PHP Webdriver 在 Chrome (-headless) 中禁用 Javascript

我正在无头地使用 Chrome。

我尝试设置--disable-javascript命令行参数。

我尝试使用实验选项:

        $options->setExperimentalOption('prefs', [
            'profile.managed_default_content_settings.javascript' => 2//this does not work
            //,'profile.default_content_setting_values.javascript' => 2//this does not work, too
        ]);

        $capabilities = DesiredCapabilities::chrome();
        $capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
Run Code Online (Sandbox Code Playgroud)

到目前为止,这两个都不起作用。

如何使用 Facebook PHP Webdriver 在 Chrome 中禁用 javascript?

这是一个检查 JavaScript 是否启用的测试:

        $this->driver->get('https://www.whatismybrowser.com/detect/is-javascript-enabled');
        return [
            $this->driver->getTitle(),
            $this->driver->findElement(WebDriverBy::cssSelector('.detected_result'))->getText()
        ];
Run Code Online (Sandbox Code Playgroud)

javascript php selenium google-chrome ubuntu-16.04

5
推荐指数
1
解决办法
4071
查看次数

防止将 Telegram bot 添加到任何组或频道(允许将其添加到白名单组/频道)

就我阅读 Telegram Bot API 的文档而言,Telegram 不会以任何方式限制对您的 webhook 回调的调用。

我正在创建一个 Telegram Bot,它仅适用于我将列入白名单的组和频道。

我可以过滤掉我在 webhook 回调中收到的消息。但是,恶意用户可以将我的机器人添加到一千个大组中,并可能导致所有其他用户拒绝服务。

即使 Telegram 实施了一些速率限制,此类用户操作仍可能导致所有其他用户拒绝服务。

如何指定 Telegram 机器人可以添加到的组和频道。

security telegram telegram-bot php-telegram-bot telegram-webhook

5
推荐指数
2
解决办法
4408
查看次数

谷歌地图api-3:更改多边形的默认光标

我可以更改地图的draggableCursor例如,但即使我更改它,多边形的光标仍然是指针,因为地图位于多边形后面.我想将多边形的光标设置为"移动",以便清楚多边形是可拖动的.

更改多边形光标的正确方法是什么?有没有财产或方法来做到这一点?(我读过谷歌的文档,但我没找到任何东西)

PS.我有理由在Polyline上使用Polygon,因此Polyline不是一个选项.

javascript google-maps google-maps-api-3

4
推荐指数
1
解决办法
2865
查看次数

如何使用 Selenium (Java) 在浏览器中禁用 JavaScript?

在我的功能自动化中,我需要在浏览器中禁用 JavaScript 并运行流程。如何禁用 JavaScript?

为 Firefox 和 Chrome 尝试了 DesiredCapabilities。

DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, false)
Run Code Online (Sandbox Code Playgroud)

DesiredCapabilities dc = new DesiredCapabilities();
dc.setJavascriptEnabled(false);
Run Code Online (Sandbox Code Playgroud)

对于 Firefox,尝试过 1) 为 Firefox 设置配置文件

2) 添加附加组件 - noScript.xpi

3) profile.setPreference("javascript.enabled", false);

4)通过用户界面,尝试将“about:config”中的标志“javascript.enabled”更改为false。在这里,打开 Firefox 并给“about:config”一个警告——“这可能会使你的保修失效!”。有一个按钮——“我会小心的,我保证!” 带有 id - 警告按钮。应单击此按钮以继续进行。要单击此按钮,请使用 driver.findElement(By.id("warningButton")).click(); 但它不起作用。

以上所有选项都不起作用。任何建议都会有所帮助。

java firefox selenium selenium-chromedriver selenium-webdriver

2
推荐指数
1
解决办法
9880
查看次数

我可以使用while在PHP中什么也不做,如果可能的话,这是一个好的做法吗?

我想在PHP中做这样的事情

function doSomething() { /* ... */ }

while(my_array[] = doSomething()) { }
Run Code Online (Sandbox Code Playgroud)

而不是使用额外的变量: while(myValue = doSomething()) { myArray[] = myValue; }

使用while block什么都不做好练习?如果不是 - 为什么?

php loops while-loop

1
推荐指数
2
解决办法
238
查看次数