Udemyにホームページをカンタンに変更できるElementorの講座を新しくリリースしました。

やっぱり基礎知識は大事!ChatGPTに丸投げではプログラミングはうまくいかない。

こんにちは
島村竜一です。

ここのところ毎日ChatGPTと格闘する毎日です。
さらに来月からとある専門学校でAIを利用したプログラミングの授業をもつことになったため。。。

より一層AIプログラミングをいろいろ試しているところです。

この記事を読んでほしい人

ファイルアップロードの処理をつくってみた

ChatGPTでアップロード処理を作ってみました。

書いたプロンプトはこんな感じです。

条件にしたがってプログラムを作成してください。

# 条件 ------
・PHP
・日本語が扱えるようにしてください
・作成するファイルはindex.php,upload.phpの二つとする
・index.php
---パソコン上に存在するファイルを選択してアップロードする。
---処理はupload.phpに引き継がれる
・upload.php
---アップロードした画像をuploadフォルダに保存に保存すること
---testという名前に置換してください
error_reporting(E_ALL);
ini_set('display_errors', 1);
var_dump($_FILES);ini_set('display_errors', 1);

足りない処理があったら指摘をしてください。

そしたらChatGPTさんが頑張ってプログラムを作ってくれました。

こんな感じです



<?php
// 日本語の文字化けを防ぐための設定
header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ファイルアップロード</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
    ファイルを選択:
    <input type="file" name="uploadedFile">
    <input type="submit" value="アップロード">
</form>
</body>
</html>

<?php
// エラー表示を有効にする
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: text/html; charset=utf-8');

// ファイルがアップロードされているか確認
if ($_FILES['uploadedFile']['error'] == UPLOAD_ERR_OK) {
    $upload_dir = 'upload/';
    // フォルダが存在しない場合は作成
    if (!is_dir($upload_dir)) {
        mkdir($upload_dir, 0755, true);
    }

    // アップロードされたファイルの保存先パス
    $destination = $upload_dir . 'test';

    // アップロードされたファイルを指定したパスに移動
    if (move_uploaded_file($_FILES['uploadedFile']['tmp_name'], $destination)) {
        echo 'ファイルが正常にアップロードされました。';
    } else {
        echo 'ファイルのアップロードに失敗しました。';
    }
} else {
    echo 'ファイルがアップロードされていません。';
}

// アップロードされたファイル情報の確認用
var_dump($_FILES);
?>

よしできたということでreplitに張り付けて実行してみると。。。
ファイルはアップロードされたけどエラーになる。

なんでやねん。。。

思わず突っ込みたくなりました。

何回やってもアップロードはできるがエラーとなる

そしてエラー内容をはりつけると。

指摘を受けた通りに直してもまたエラー。。

やってもやってもきりがない。

だんだんと同じエラーばかり画面にでてきます。

そしてChatGPTからの回答は同じ回答ばかり。

いやあなたの言った通りやってるでしょう。

処理の流れから判断してみる

実行して状況からみてupload.phpが二回呼ばれているのではないかと思いもしかするとupload.phpが一度に二度実行されているのかもしれません。


対応してください。
と質問したところ

処理が成功したら success_page.phpに画面遷移する処理を作ってくれました。
ついでに失敗したらerror_page.phpに遷移する処理も作ってくれました。

そしてこの後無事ファイルアップロードが完成して問題なく動きました。

まとめ:AIにまだまだ丸投げは危険!やっぱり最後に頼りになるのは人間の判断でした

今回ファイルアップロード処理はすぐできたけど、なかなかエラーがでてきませんでした。
エラー処理をそのままChatGPTにはりつけても同じ回答ばかり。

そんなとき処理の流れからupload.phpが何度も実行されているのではと思い
二重実行を防ぐように依頼したところうまくいきました。

AIは局所的にここがおかしいのではという指摘はできますが、
全体の流れからこうしたらいいいのではという判断はできないようです。

こういった判断をするためにもなにごとにも基礎知識は必要になりますね。

AIがでてきたからなんでもやってくれると思わずに人はキチンと基礎知識を学んで対応する必要はやっぱりありますね。

ここまで読んでくださってありがとうございます。
また次のブログでお会いしましょう。