• ベストアンサー

PHPでエラーが出る

PHPでNotice: Undefined indexとエラーが出ます。 <?php $data1=$_POST["data1"]; echo $data1; ?> でエラーが出ます。  @$_POSTでやるとエラーは消えるのですが、これでは解決してないので他のやりかたを教えてください。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

http://www.php.net/manual/ja/function.array-key-exists.php if (array_key_exists("data1",$_POST)==true) {  $data1=$_POST["data1"]; }else{  $data1=null; } かな。 あと、エラーじゃなくてワーニングだと思います。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

何度も紹介されていますが、以下のような処理が妥当 <?php $data1=isset($_POST["data1"])?$_POST["data1"]:""; echo $data1;

関連するQ&A

  • phpの定義していない変数について

    phpを使用してwebページの作成を勉強しています。 モードによってphpの内容を変えるページを作成したのですが、 ページを開いた際、モードの変数が入力されていなかったり(最初に開いたとき等)、 前のページのフォーム画面で、 セレクトボックスを何も選択せず送信した空のデータを受け取ると、 Notice:Undefined indexエラーが表示されます。 Noticeエラーを非表示にすれば表示はされなくなるとは思いますが、 根本の解決にはなっていないので後々問題にならないか心配です。 どうしたら空のデータ受け取り時に Notice:Undefined indexエラーが表示されなくなるでしょうか? ご回答、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP 下記エラーメッセージの解消について

    下記PHP エラーメッセージの解消方法と、正常にプログラムが動くための簡単なスクリプトも添えていただければ幸いです。よろしくお願い申し上げます。 ■エラーメッセージ (1)Notice: Undefined variable: error in C:\xampp on line 66 (2)Notice: Undefined variable: error in C:\xampp on line 69 ■スクリプト <body> <h1>ログインする</h1> <form action="" method="post"> <dl> <dt>メールアドレス</dt> <dd> ⇒(ここからPHP文です) <input type="text" name="email" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['email']); ?>" /> <?php if ($error['login'] == 'blank'): ?> <p class="error">* メールアドレスとパスワードをご記入ください</p> <?php endif; ?> <?php if ($error['login'] == 'failed'): ?> <p class="error">* ログインに失敗しました。正しくご記入ください。</p> <?php endif; ?> ⇒(ここまでPHP文です) </dd> <dt>パスワード</dt> <dd> <input type="password" name="password" size="35" maxlength="255" value="<?php echo htmlspecialchars($_POST['password']); ?>" /> </dd> ......省略 </form> なのですが、 下記エラーメッセージが出てしまいます。 (1)Notice: Undefined variable: error in C:\xampp on line 66 (2)Notice: Undefined variable: error in C:\xampp on line 69 これは、上記スクリプトのPHP文を指しております。 どのように初期化をすればよいかわからず、ここで立ち止まっておりました。 ☆どうすればこのエラーメッセージを解消でき、また、本スクリプトが正常に作動しますでしょうか? ☆初期化のためのスクリプトを添えて頂ければ嬉しく思います。 みなさまのお力を貸して頂ければ幸いでございます。 よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpのエラー

    phpで $fp = fopen("test.txt", a);//ココ1 $jyusin = $_POST['score'];//ココ2 fwrite($fp, $jyusin); fclose($fp); $f = fopen("test.txt", r);//ココ1 echo fgets($f); fclose($f); ココ1の場所でUse of undefined constant...というエラー ココ2の場所でUndefined index...というエラー 上記のエラーはどうしたら直りますか。 因みにissetで隠す方法以外でお願いします。

    • ベストアンサー
    • PHP
  • PHPのフォームでエラーが出ます

    どなたかお力添えをお願いします。 【全体の流れ】 step1.php ラジオボタンで、商品を3種類選択する template.php 選択した商品名を表示し、金額を計算して表示する step2.php 「template.php」を表示し、規約に同意する step3.php 個人情報入力画面へ ・ ・ ・ という流れでフォームを作っていますが、step1.phpでつまずいています(涙)。 step1.phpのコード(html部分は省略してます)は以下のとおりです。 商品を3つ選んだ場合は、問題なく実行できるのですが、1つ、または2つ選択 した場合、画面上部に Notice: Undefined index: plan in C:\xampp\htdocs\step1_1.php on line 10 Notice: Undefined index: uq in C:\xampp\htdocs\step1_1.php on line 11 などとエラーメッセージが出ます。 ほかは正常に動いています。このメッセージを出なくさせる方法をぜひ、教えてください! よろしくお願いいたします。 <?php session_start(); $error = ""; if(isset($_POST["submit"])==TRUE){ $_SESSION["product1"]=$_POST["product1"]; $_SESSION["product2"]=$_POST["product2"]; $_SESSION["product3"]=$_POST["product3"]; $choice1 = $_SESSION["product1"]; $choice2 = $_SESSION["product2"]; $choice3= $_SESSION["product3"]; //未入力チェック if($choice1== null){ $error .="端末を選択してください<br />"; } if($choice2== null){ $error .="プランを選択してください<br />"; } if($choice3== null){ $error .="UQ Wi-Fiサービスの利用有無を選択してください<br />"; } if($error == null){ $url = "step2.php"; header("Location: ".$url); exit(); } } ?>

    • ベストアンサー
    • PHP
  • PHPのエラーについて

    データベースから出力し、リンクをつけたいと考えていますが、下記のようなエラーが出力されます。 どのように対応すれば解消されるでしょうか? データベースにはthread_idという項目は存在します。 echo から始まる列が38行目にあたります。 よろしくお願いします。 【コード】 <?php $sql = "SELECT * FROM thread WHERE category_id =1"; $date = mysql_query($sql,$link); while ($post = mysql_fetch_assoc($date)) { $thread_id = $post['thread_id']; echo '<br>' . '<a href="thread.php?id=<?php echo htmlspecialchars($post['thread_id']); ?>">' . $post['thread_title'] .'</a>'.'<br>'; } ?> 【エラー】 Parse error: syntax error, unexpected 'thread_id' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\index.php on line 38

    • 締切済み
    • PHP
  • PHP5.2.2について

    はじめまして、こんばんは。 PHPを触り始めて間もない者ですが、困り果てて投函させて頂くことにいたしました。 先日、OS(WinXPsp2)を再インストールした際、PHP(5.2.2)、Apache(2.0.59)、MySQL(4.1.22)を以前利用していたものより新しいバージョンをインストールしたのですが、以前作成したスクリプトを表示させたところ、これまで何ら問題ないところでエラーが出てきて、その対処が分からずご指導いただければ・・と思っております。 index.php <?php session_start(); require_once("./auth.php");  ・  ・ auth.php <?php session_start();//Notice: A session had already been started - ignoring session_start() $mail = $_POST['mail'];//Notice: Undefined index: mail $passwd = $_POST['passwd'];//★ if($mail != "" || $passwd != ""){  ・  ・ 上記、コメントの箇所にエラーが出てしまうのですが、これまでは同じソースでも問題がなかったための質問です。説明不足名ところがあるかとは思いますが、上記エラーはインストール時の設定が間違っているのか?それともバージョンによるものなのか?(その場合は対処法など・・)を知りたく投函させていただきました。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPアンケート集計のスプリクトエラーに困っています。

    現在、PHPで下記のような集計して表示しようとしてます。値は、dataフォルダからカンマ区切りのテキストデータを読み込み集計されて表示はされるのですが・・・PHP4を使ってテストしたときはエラーは出なかったのですが、PHP5に変更してから走らせたところ下記のエラーが出てしまい困っています。どうやら値が未定義・初期値を与えないといけないらしいとこまでは、少し分かったのですが、そこからいろいろと試したのですがうまく動きません。スクリプトは「WebクリエイティブのためのPHPサンプルブック」を参考したもので、間違っているとは考えにくいのですが…。 エラーの内容 =================================================== Notice: Undefined variable: corner in/var/www/html/test/XXXXX.php on line 30 Notice: Undefined index: 3 in /var/www/html/test/XXXXX.php on line 30 Notice: Undefined index: 1 in /var/www/html/test/XXXXX.php on line 30 Notice: Undefined index: 2 in /var/www/html/test/XXXXX.php on line 30 スクリプトの内容 ============================================== $cnt=0; $i=0; $d = dir("data/"); //print_r($d); //検索対象ディレクトリ指定 while (($entry = $d->read())) { //ディレクトリ検索 if(eregi("2008",$entry)){ $l=file("data/$entry"); //該当ファイル読み込み $lines[$cnt]=$l[0]; //データベース$linesの各行に格納 $cnt++; } } $d->close(); function cmp ($a, $b) { if ($a == $b) return 0; return ($a > $b) ? -1 : 1; } foreach($lines as $l){ $op=explode(",",$l); $key=$op[4]; $corner[$key]++; } uasort($corner,"cmp"); $label=array("ほぼ毎日","週1~2回","月1~2回","半年に1~2回","今回がはじめて"); echo"<table width=600 border=1>"; echo"<tr><td colspan=2><b>問1.XXXXXXXXにどのくらいの頻度で訪問していますか。</b></td></tr>"; foreach($corner as $key => $value){ $ratio=$value/count($lines); $length=300*$ratio; echo"<tr><td>$label[$key]</td><td width=350>"; echo"<img src=\"./square.gif\" height=\"10\" width=\"$length\">"; echo" $value</td></tr>"; } echo"</table>"; 環境:Apache2 PHP5 MySQL5です。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpについについて質問3

    テキストボックスの内容を送信する事は成功しました。 しかし複数のテキストボックスはできませんでした。 <h1>PHPのテストです</h1> <form action="9.php" method="POST"> <p><input type="text" size="20px" name="ad1"></p> <p><input type="text" size="20px" name="ad2"></p> <p><input type="submit" value="送信"></p> <?php print"ようこそ"; print$_POST["ad1"]; print$_POST["ad2"]; print"様"; ?> </form> これは間違いでしょうか? エラーもでてました Notice: Undefined index: ad1 in C:\xampp\htdocs\6.php on line 37 Notice: Undefined index: ad2 in C:\xampp\htdocs\6.php on line 38 様 とでてます すいません いつもいつも 入力された内容を受け取るという作業ができれば なんとなく一応目標達成だとおもいます

    • ベストアンサー
    • PHP
  • 【PHP】Googleアドセンスが出力されない! $_SERVERのせい?

    こんにちわ。PHP でエラーが出てしまって困っています。質問させてください。 サイトに、Googleアドセンスを使ったテキスト広告が出力されません。 もしかすると、$_SERVERで、データを取得できてないからかな? エラーレポートは、こうです。 Notice: Undefined index: HTTPS in (サイトのルートディレクトリ)g_adsense.php on line 7 Notice: Undefined index: HTTP_REFERER in (サイトのルートディレクトリ)m/g_adsense.php on line 13 Notice: Undefined index: HTTP_UA_PIXELS in (サイトのルートディレクトリ)m/g_adsense.php on line 35 Notice: Undefined index: HTTP_X_UP_DEVCAP_SCREENPIXELS in (サイトのルートディレクトリ)m/g_adsense.php on line 38 エラーは全て、$_SERVER['HTTPS'] とか $_SERVER['HTTP_REFERER'] とか、サーバー環境変数の行です。 もしかして、どこかで設定されててだめなのかな?PHPコードについて、サーバー内でどんな設定がされているのかわかっていません。 設定を初期化する方法あったら教えてください。 ・Movable Type4.01で吐き出してます。 ・ケータイキットというプラグインを使ってます。 ・携帯向けのサイト ・PHP Version 4.4.7 ・サーバー=アパッチ。なにか良い方法ありますか?

    • ベストアンサー
    • PHP
  • ローカルでは正常に動くのにサーバーにあげるとエラーがでる

    題のとうりなのですがローカルでは正常に動いていたのですがサーバーにあげたとたんPOSTで受信しているところでエラーがでているようなのです。 Notice: Undefined index: param in ~ 上記のようなエラーが表示されるのですがどうしたら良いのでしょうか?よろしくお願いします

    • ベストアンサー
    • PHP