![登录后从 PHP 页面获取结果](https://linux22.com/image/1123898/%E7%99%BB%E5%BD%95%E5%90%8E%E4%BB%8E%20PHP%20%E9%A1%B5%E9%9D%A2%E8%8E%B7%E5%8F%96%E7%BB%93%E6%9E%9C.png)
我有 10 个 php 文件,例如
0.php、1.php、2.php 等
所有这些文件都包含一个身份验证表单,该表单通过 post 向其自身发送两个输入的用户名和密码。
登录后会显示一条消息。
我正在尝试编写一个脚本,填写每个页面的登录表单,然后在新行上回显每个页面的消息。
我知道我可以使用 wget 或 curl 来填写表格,但我不太清楚如何操作。
我尝试使用 curl -u username:password /host/files/0.php 但似乎它只显示该文件的 html 输出。
我正在考虑编写一个执行以下操作的 shell 脚本:
pages = [0.php; 1.php; etc...]
foreach page in pages
access page via curl or wget, fill in the form with username and password which are the same for all files
echo respons
newline
我怎样才能实现这个目标?
答案1
据我所知,您执行的“-u 用户名:密码”是一种 HTTP 基本身份验证,与填写表单并通过 POST 发送不同。这应该有效:
#!/bin/bash
pages="0.php 1.php 2.php"
for page in ${pages}; do
wget -q --post-data 'user=username&password=password' --save-cookies cookies "http://server/${page}"
wget -O- --load-cookies cookies -p "http://server/${page}"
done