Php Notice: Undefined variable: test in /var/www/html/ - PHPプロ!Q&A掲示板

4834

  • 0P

Php Notice: Undefined variable: test in /var/www/html/

質問日時 / 2017年3月31日 10:27    回答数 / 6件

Questioner:  hysk82  このエントリーをはてなブックマークに追加 

変数が定義されてないのエラーですがどのように修正すればわかりません、
教えていただきませんか?

confirm.phpのformの送信ボタンを押すとエラが出ます。
エラーは下記:です。
Notice: Undefined variable: param in /var/www/html/test/confirm.php on line 268
Notice: Undefined variable: name in /var/www/html/test/confirm.php on line 277
Notice: Undefined variable: emai in /var/www/html/test/confirm.php on line 283
Notice: Undefined variable: tel in /var/www/html/test/confirm.php on line 290

下記はソースコードです。

index.php:
<script>

        window.onload = function onLoad() {
            param = GetQueryString();
            target = document.getElementById("param");
            target.innerHTML = param["q"];
            document.getElementById("test").value = param["q"];
        }

        function GetQueryString() {
            if (1 < document.location.search.length) {
                var query = document.location.search.substring(1);
                var parameters = query.split('&');
                var result = new Object();
                for (var i = 0; i < parameters.length; i++) {
                    var element = parameters[i].split('=');

                    var paramName = decodeURIComponent(element[0]);
                    var paramValue = decodeURIComponent(element[1]);
                    result[paramName] = decodeURIComponent(paramValue);
                }
                return result;
            }
            return null;
        }

</script>
<form action="confirm.php" method="post"  name="form" onsubmit="return validate()" >
  <input type="hidden" name="test" id="test" value="">


<div><label>ID</label></div>
<div name="param" id="param"></div>
            
<div><label>名前</label></div>
    <input type="text" name="name" value="">

<div><label>メール</label></div>
    <input type="text" name="email"  value="">

<div><label>電話番号</label></div>
 <input type="text" name="tel"  value="">

    <button type="submit">確認画面へ</button>
</form>


下記は
confirm.php:
if ($_SERVER["REQUEST_METHOD"] == "POST") {
                $param = $_POST["test"];
$name = $_POST["name"];
$email = $_POST["email"];
$tel = $_POST["tel"];

}

<form action="confirm.php" method="post">
             <input type="hidden" name="param" value="<?php echo $param; ?>">
             <input type="hidden" name="name"       value="<?php echo $name; ?>">
     <input type="hidden" name="email"        value="<?php echo $email; ?>">
             <input type="hidden" name="tel"  value="<?php echo $tel; ?>">       
             //下記がエラーの原因です
             <div><span> ID</span></div>
                    <p><?php  echo $param;  ?></p>

             <div><span>お名前</span></div>
                    <p><?php echo $name; ?></p>

            <div><span>メール</span></div>
                    <p><?php echo $email; ?></p>

            <div><span>電話番号</span></div>
                    <p><?php echo $tel; ?></p>

<button  type="submit" name="submit">送信する</button>
</form>

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┗A01shimix> //下記がエラーの原因です > <div><sp
 ┣A01-1hysk82ありがとうございます。 まず下記のソースコードで$p
 ┃┗A01-1-1shimix>下記のソースコードで$param以外の値が表示されまし
 ┃ ┗A01-1-1-1hysk82値は取得できましたが、POSTでは取得されていますがそ
 ┗A01-2hysk82><input type="hidden" name="param" value="<?php ec
  ┗A01-2-1shimix知恵袋に移動しました https://detail.chiebukuro.

回答一覧

並び替え:

A01
answerershimix [3月31日 12:29]

> //下記がエラーの原因です
>             <div><span> ID</span></div>
>                    <p><?php  echo $param;  ?></p>

この行がエラーになっていて、

><input type="hidden" name="param" value="<?php echo $param; ?>">

こちらはエラーになっていないのでしょうか?

エラーの行番号も9,6,7おきになっていて提示されたソースが「すべて」ではないと推測されますが、実際にどういうソースなのかはエスパーではないのでわかりません。


#RequestMethodがPOSTだったら全部の項目がPOSTされている前提の
#ソースなのはアレですが、それはいったん置いといて(汗


if ($_SERVER["REQUEST_METHOD"] == "POST") {
$param = $_POST["test"];
$name = $_POST["name"];
$email = $_POST["email"];
$tel = $_POST["tel"];
}

の直後に

printf('%s<br />%s<br />%s<br />%s<br />', $param, $name, $email, $tel);

と書いたらエラーになりますか?

この意見に回答する

ツリーへ TOPへ

A01-1
replyerhysk82 [3月31日 12:40]

ありがとうございます。
まず下記のソースコードで$param以外の値が表示されました。
printf('%s<br />%s<br />%s<br />%s<br />', $param, $name, $email, $tel);

この意見に回答する

ツリーへ TOPへ

A01-1-1
replyershimix [3月31日 13:04]

>下記のソースコードで$param以外の値が表示されました。

$paramは$_POST['test'}ですから、JavaScriptで値をセットしている部分ですね。これはJavaScriptの話なので(汗

いずれにしても

<input type="hidden" name="param" value="<?php echo $param; ?>">

の時点で存在していた$paramが

<p><?php  echo $param;  ?></p>

でなくなるというのは謎すぎます。

明示的にunsetしているかfunctionを書いてその内側でエラーになっている(あるいは$paramなどに値をセットしている部分がfunctionになっている)としか考えられません。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1
replyerhysk82 [4月3日 15:10] (最終編集:4月3日 15:11)

値は取得できましたが、POSTでは取得されていますがその下の
if (isset($_POST["submit"])) の【  ID 】 {$param}       ここが取得できてないです。

下記のエラーが出ています。
PHP Notice:  Undefined index: test in


ソースコードは下記です。

<?php 

// フォームのボタンが押されたら
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$param = $_POST["test"];
$email = $_POST["email"];
$tel = $_POST["tel"];

}
// 送信ボタンが押されたら
if (isset($_POST["submit"])) {

        mb_language("Japanese");
mb_internal_encoding("UTF-8");
         $subject = "[自動送信]お問い合わせ内容の確認";
$body = <<< EOM
{$name} 様

===================================================
【  ID 】 
{$param}       ///ここが取得できてないです。

【 お名前 】 
{$name}

【 性別 】 
{$sex}

【 電話番号 】 
{$tel}

【 メール 】 
{$email}


EOM;
        
// 送信元のメールアドレスを変数fromEmailに格納
$fromEmail = "no-reply@test.com";
$fromName = "Test";

// ヘッダ情報を変数headerに格納する
$header = "From: " .mb_encode_mimeheader($fromName) ."<{$fromEmail}>";
$to = 'info@test.com';
mb_send_mail($email, $subject, $body, $header, $to);

  // サンクスページに画面遷移させる
header("Location:thanks.php");
exit;
}
?>

この意見に回答する

ツリーへ TOPへ

A01-2
replyerhysk82 [3月31日 12:41] (最終編集:3月31日 12:43)

><input type="hidden" name="param" value="<?php echo $param; ?>">

こちらはエラーになっていないのでしょうか?

回答:こちらの行はエラーになっていません


>>エラーの行番号も9,6,7おきになっていて提示されたソースが「すべて」ではないと推測されますが、実際にどういうソースなのかはエスパーではないのでわかりません。

はい、他にも生年月日などの幾つがあります。

この意見に回答する

ツリーへ TOPへ

A01-2-1
replyershimix [4月3日 17:25]

知恵袋に移動しました

https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11172537351

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)

Q&A掲示板 新着情報