@souwasora (takei souwa)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

php if (empty($_POST)) について

Q&A

解決したいこと

if (empty($_POST)) {
省略

の記述だと
formで名前打ち込んでも表示がされない為解決したい

例)
phpで 名前を入力して 私の名前は山田太郎ですと表示させたいです。
if (empty($_POST)) {

では表示されませんが、issetだと表示されます。
解決方法を教えて下さい。

発生している問題・エラー

empty isset 共に初期画面で Notice: Undefined index: last_name in と表示

例)

NameError (uninitialized constant World)

または、問題・エラーが起きている画像をここにドラッグアンドドロップ
image.png

該当するソースコード

ソースコードを入力

例)

<?php
if (empty($_POST)) {
    $lastName = $_POST["last_name"];
    $firstName= $_POST["first_name"];
    if ($lastName != null && $firstName != null) {
        echo "私の名前は".$lastName.$firstName."です。";
    }
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>デバック練習</title>
</head>
<body>
<form action = "Lesson1.php" method="POST">
        <h2>テスト</h2>
        <label>姓 :</label>
        <input type="text" name="last_name">
        <label>名 :</label>
        <input type="text" name="first_name" >
        <input type="submit" value="送信する">
    </form>
</body>
</html>

自分で試したこと

issetだと名前打ち込むと表示されますが、
できればemptyで表示がさせたいです。
また、Notice: Undefined index: last_name inはどうしたら消えるのでしょうか
解決策、よろしくお願いします。。

0 likes

1Answer

if (empty($_POST)) {は、$_POSTが空の場合に進む処理なので、当然$_POST["last_name"]などというindexはありません。なので上記のエラーになるのは当たり前です。
if (!empty($_POST)) {の間違いではないですか?

0Like

Comments

  1. @souwasora

    Questioner

    回答ありがとうございます!
    まさにその通りです。。

Your answer might help someone💌