分页: 1 / 1

初次求助AI不果纪实

发表于 : 2025-05-04 19:34
寂默心流
  我一直在试图搞定phpBB3和CloudFlare里turnstile模块的融合,目的是在打开网站时做人机的甄别,以减轻网站的压力,减少卡顿。但我是百般挣扎确实搞不定,最后陷入了死循环。这时我突然想到AI编程不是很火爆嘛,微软里30%的程序都已经是AI写的了。于是我求助一美国著名AI帮忙。它理解能力很强,我要的它一下子就从我十几个字的描述中get到了,并很快给出以下代码:

代码: 全选

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $secret = 'YOUR_SECRET_KEY';
    $response = $_POST['cf-turnstile-response'] ?? '';
    $remoteip = $_SERVER['REMOTE_ADDR'];

    $verify = file_get_contents("https://challenges.cloudflare.com/turnstile/v0/siteverify", false, stream_context_create([
        'http' => [
            'method' => 'POST',
            'header' => "Content-type: application/x-www-form-urlencoded\r\n",
            'content' => http_build_query([
                'secret' => $secret,
                'response' => $response,
                'remoteip' => $remoteip
            ])
        ]
    ]));

    $result = json_decode($verify, true);

    if ($result['success']) {
        $_SESSION['turnstile_verified'] = true;
        header("Location: index.php");  // 验证通过后跳转首页
        exit;
    } else {
        $error = "验证失败,请重试。";
    }
}
?>
<!DOCTYPE html>
<html>
<head>
    <title>人机验证</title>
    <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
    <h2>请先进行人机验证</h2>
    <?php if (!empty($error)) echo "<p style='color:red'>$error</p>"; ?>
    <form method="POST">
        <div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
        <br/>
        <button type="submit">提交验证</button>
    </form>
</body>
</html>
  我初看很给力,有板有眼儿,仔细一看又觉得味道不对,怎么php代码和html代码直接写进同一个php程序,可以这么多元吗?于是问它测试过没有,它回答没测试,但代码符合规范。

  于是我又一次布置了CloudFlare,拿到turnstile的两个密钥。一测试直接就报服务器500错误。正可谓不出意外的话那就出了意外。

  我生出感概,看来AI可以帮到那些行家里手,也可以完成减员,但要彻底取代人类目前还不可能。看似AI产出很多,很快,但点睛之笔还得人类来。AI就像一个才高八斗的万精油,二把刀,谈起来头头是道,很是唬人,但出来的东西感觉有点儿东西,但过不得细。总之,AI的东西给我的感觉是这么个模式:

代码: 全选

正确+正确+正确=错误
  唉,天佑人类,还能在职场苟几年啊。

Re: 初次求助AI不果纪实

发表于 : 2025-05-06 14:04
寂默心流
  回到阿里云的我还是不死心,昨晚又努力了一把。我问gemma3怎么在phpBB上布置reCAPTCHA。果然还是Google的大模型熟悉google的验证机制啊,又是写了好几大篇。我一看,专业啊,对胃口,很是像样。一运行又是服务器500错误。问它怎么办,又是刷刷刷几大页,全包围,跟医生开化验单似的。我一看全查是不行了。还是鼓足勇气看看它代码吧。一看果然有情况,它验证成功的if分支导向的是出错处理!一问它,立马承认,态度老好了。我懵圈了,这也能出错?!

  用它改正后的代码运行,果然有效果,崩出了google经典的图片验证画面。当我费劲通过了什么桥啊车啊楼梯啊的验证后,画面停住了,不跳转。再问它,又是刷刷刷。这回我干脆自己continue,return折腾了一大圈,最后还是稳稳待在验证成功的原地。时间不早了,假期结束了,不可恋战。我直接问它是不是陷入死循环了,它回答有可能……

  我怀疑首帖那个也是栽在了死循环。2025年上半年的AI编程就是这么个状况,像实习生,精力充沛,理论懂得不少,写个局部逻辑问题不大,但整体思路是混乱的,是不自洽的。死循环是这样,if分支错也是这样。我呼吁航空的,航天的,军事的和医疗操作的程序先别让AI写,不放心啊~~~

Re: 初次求助AI不果纪实

发表于 : 2025-05-08 16:08
寂默心流
  刚才又求助了通义千问3-235B-A22B,答得很专业,感觉不错。
要在用户一打开网页时就进行Cloudflare Turnstile验证,你需要在页面加载时显示Turnstile小部件,并在用户通过验证后允许他们继续浏览网站。这通常涉及到在每个页面加载时检查是否已经通过了验证。

以下是实现这一功能的步骤:

### 1. 注册并获取Cloudflare Turnstile的密钥
首先,确保你已经在Cloudflare Turnstile注册并获得了`site key`和`secret key`。

### 2. 在phpBB模板中添加Turnstile
我们需要在每个页面的头部添加Turnstile小部件。打开你的phpBB安装目录,导航到 `styles/prosilver/template/overall_header.html` 文件,并在适当的位置插入以下HTML代码:

```html
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
```

记得替换 `"YOUR_SITE_KEY"` 为从Cloudflare获得的实际site key。

### 3. 创建一个中间页来处理验证
为了确保用户在进入任何页面之前都通过了验证,我们可以创建一个中间页来进行验证。这个页面会显示Turnstile小部件,并在用户通过验证后重定向到实际的目标页面。

#### 创建中间页文件
在你的phpBB根目录下创建一个新的PHP文件,例如 `turnstile_verify.php`,并在其中添加以下代码:

```php
<?php
// 引入必要的phpBB文件
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// 启动会话
$user->session_begin();
$auth->acl($user->data);
$user->setup();

// 检查是否已经通过验证
if (!isset($_SESSION['turnstile_passed'])) {
if (isset($_POST['cf-turnstile-response'])) {
// 验证Turnstile响应
$turnstile_response = $_POST['cf-turnstile-response'];

// Cloudflare提供的验证URL
$verify_url = "https://challenges.cloudflare.com/turns ... siteverify";

// 设置POST参数
$data = array(
'secret' => 'YOUR_SECRET_KEY',
'response' => $turnstile_response,
'remoteip' => $_SERVER['REMOTE_ADDR']
);

// 发送POST请求
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data),
);

$result = curl_exec(curl_init_with_options($verify_url, $options));
$json_result = json_decode($result, true);

if ($json_result['success']) {
// 验证成功,设置会话变量
$_SESSION['turnstile_passed'] = true;
header('Location: ' . $_SESSION['redirect_url']);
exit;
} else {
// 验证失败,显示错误消息
$error_message = 'Turnstile validation failed. Please try again.';
}
}

// 显示Turnstile小部件
include($phpbb_root_path . 'styles/prosilver/template/turnstile_verify.html');
} else {
// 已经通过验证,重定向到目标页面
header('Location: ' . $_SESSION['redirect_url']);
exit;
}
?>
```

#### 创建中间页模板
在 `styles/prosilver/template/` 目录下创建一个新的模板文件 `turnstile_verify.html`,并在其中添加以下内容:

```html
<!DOCTYPE html>
<html>
<head>
<title>Turnstile Verification</title>
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script>
</head>
<body>
<h1>Please complete the Turnstile challenge to continue</h1>
<?php if (isset($error_message)): ?>
<p><?php echo $error_message; ?></p>
<?php endif; ?>
<form method="post" action="turnstile_verify.php">
<div class="cf-turnstile" data-sitekey="YOUR_SITE_KEY"></div>
<input type="hidden" name="redirect_url" value="<?php echo htmlspecialchars($_SESSION['redirect_url']); ?>">
<button type="submit">Submit</button>
</form>
</body>
</html>
```

### 4. 修改全局重定向逻辑
为了确保所有页面访问都经过验证,我们可以在 `index.php` 或其他入口文件中添加逻辑,将未验证的用户重定向到中间页。

打开 `index.php` 文件,在适当的位置(例如在会话开始之后)添加以下代码:

```php
// 检查是否已经通过验证
if (!isset($_SESSION['turnstile_passed'])) {
// 保存当前请求的URL
$_SESSION['redirect_url'] = $_SERVER['REQUEST_URI'];

// 重定向到验证页面
header('Location: turnstile_verify.php');
exit;
}
```

### 5. 测试
现在,当你访问论坛的任何页面时,如果还没有通过验证,会被重定向到 `turnstile_verify.php` 页面。完成验证后,用户将被重定向回原来的请求页面。

这样,你就实现了在用户打开网页时进行Cloudflare Turnstile验证的功能。希望这对你有帮助!
  但结果是一样的死循环。我太难了。

  可以搞不定,但大家都是同一个死法,这让我很崩溃,果然是一个GPT师傅教的啊。

  目前的大语言模型搞不定复杂逻辑,比如满屏幕的按钮,按钮之间有连锁关系或先后解锁关系,肯定搞不定。再如高层电梯的逻辑也一定搞不定。我有点儿心痛那些裁员后剩下的,被逼着用AI协助编程的程序员了,你们辛苦了,你们现在应该能理解苏格拉底的临终遗言了:有些人即将死去,有些人还将活着,究竟谁更好,只有天知道。 :mrgreen:

Re: 初次求助AI不果纪实

发表于 : 2025-05-25 15:45
寂默心流
  万万没想到啊,我以为只有我这样的外行才会被AI戏耍,原来微软这浓眉大眼的家伙也被玩儿啊。
微软AI公开折磨微软员工,修Bug唯一贡献是改了PR标题,GitHub评论区成吃瓜现场

“微软用垃圾AI折磨微软员工,真是可悲又可笑。”

合着这AI忙活了半天,唯一的“贡献”其实是把标题给改了,也是学会摸鱼的精髓了。

本来应该是机器辅助人类工作的,现在倒过来成了人类被迫辅助机器。
https://www.36kr.com/p/3307392870570502

Re: 初次求助AI不果纪实

发表于 : 2025-07-23 15:53
健康百年
高深!我换了电脑,却不想搞这个了

Re: 初次求助AI不果纪实

发表于 : 2025-07-23 16:09
寂默心流
健康百年 写了: 2025-07-23 15:53 高深!我换了电脑,却不想搞这个了
呵呵,正常,不要刻苦自己。你我都一样,本意是升级电脑来本地配置大模型的,结果真升级完电脑,发现还是打游戏香啊。

你的电脑现在跑大模型应该飞快了。

Re: 初次求助AI不果纪实

发表于 : 2025-07-27 15:02
健康百年
哈哈,就是,游戏香啊!大表哥打的入迷了