Kalium正确无误-WordPress界面中的路径是相对的,导致以这种方式访问时管理界面无法正常工作。
您的方法在某些方面令人担忧,因此,我想提出一些快速建议。
首先,我将尝试寻找一种方法来从硬编码中删除
$username和
$password变量。考虑一下这种破解有多么容易-
例如,如果密码是通过管理界面更新的,则代码中的硬编码值将不再正确,并且“自动登录”现在将失败。此外,如果有人以某种方式组成了该网站并获得了访问权
handshake.php-好,现在他们已经拥有了您博客的用户名和密码。
鉴于路径
/blog是相对的(在示例代码中),您的WordPress安装似乎与您编写的握手脚本位于同一服务器上。因此,我建议尝试模仿您在父应用程序登录中验证的会话。我过去已经做过几次-
只是不记得具体细节。因此,例如,您的登录脚本不仅会设置您的登录凭据,还会设置WordPress身份验证所需的会话密钥。
这个过程将涉及挖掘许多WordPress的代码,但这就是开源的美!不要使用cURL和硬编码值,而应尝试将WordPress的身份验证机制简单地集成到应用程序的登录机制中。我将从寻找来源
wp-login.php并从那里开始。
如果所有其他方法都失败了,并且您确定不尝试将会话身份验证机制与WordPress进行网格划分,那么可以通过对代码的以下更改立即解决您的问题(而无需解决与方法有关的更多方面):
首先,添加以下curl_opt:
curl_setopt($ch, CURLOPT_cookieFILE, $cookie); // Enables session support
然后,在关闭cURL处理程序之后添加以下代码:
curl_close($ch);// Instead of echoing the result, redirect to the administration interface, now that the valid, authenticated session has been establishedheader('location: blog/wordpress/wp-admin/');die();因此,在这种不太理想的解决方案中,您将使用cURL对用户进行身份验证,然后与其尝试将管理界面劫持到该当前页面中,而不是将其重定向到常规管理界面。
我希望这有帮助!让我知道您是否需要更多帮助/解决方案尚不清楚。



