• 締切済み

「ようこそ○○様」をPHPで出力するためには

下記スクリプトを実行しても反映されません。 エラーが数個出てしまいます。非力ながら訂正をしますが、動きません。 下記の場合何を変更すればよろしいでしょうか。 .恐れ入りますがご指導頂ければ幸いでございます。 <?php session_set_cookie_params(50000,$_SERVER['PHP_SELF']); session_start(); $_SESSION["vars"]; $pagetitle="Travel Route planner"; $id=$_COOKIE['PHPSESSID']; if($id==""){ //初回の処理 $mode="init"; $vars['count']=0; }else{ //二回目以降の処理 $mode="normal"; $x=$_POST['map_x']; //x座標 $y=$_POST['map_y'];//y座標 if($x && $y){ if(($x>466 && $x<518)&&($y>475 && $y<501)){ $_SESSION['vars']['count']=0; }else{ //座標を保存 $namex=sprintf("xpos%d",$_SESSION['vars']['count']); $namey=sprintf("ypos%d",$_SESSION['vars']['count']); $townname=sprintf("townname%d",$_SESSION['vars']['count']); $_SESSION['vars'][$namex]=$_POST['map_x']; $_SESSION['vars'][$namey]=$_POST['map_y']; $_SESSION['vars'][$townname]=$_POST['townname']; $_SESSION['vars']['count']++; } } //名前の処理 if(isset($_POST['cmd'])=="登録"){ if($_POST['username']==""){ $_SESSION['vars']['username']="[Unknown]"; }else{ $_SESSION['vars']['username']=$_POST['username']; } } //image.phpにわたす $param="?count={$_SESSION['vars']['count']}&"; $param.="username={$_SESSION['vars']['username']}&"; for($i=0;$i<$_SESSION['vars']['count'];$i++){ $namex=sprintf("xpos%d",$i); $namey=sprintf("ypos%d",$i); $townname=sprintf("townname%d",$i); $str=sprintf("%s=%s&%s=%s&%s=%s&", $namex,$_SESSION['vars'][$namex], $namey,$_SESSION['vars'][$namey], $townname,$_SESSION['vars'][$townname]); $param.=$str; } //ユーザー名付加 $pagetitle.=" for {$_SESSION['vars']['username']}"; } ?> <!DO..省略.> <form action="<?php echo"{$_SERVER['PHP_SELF']}";?>" method="POST"> 名前<input type="text" name="username"> <input type="submit" name="cmd" value="登録"> </form> .. .. </body> <?php endif;?> <?php if($mode=="normal"):?> <head><title><?php echo"$pagetitle";?></title></head> <form action="<?php echo"{$_SERVER['PHP_SELF']}";?>" method="POST"> <input type="text" name="townname"> <input type="image" src="./image.php<?php echo"$param";?>" name="map"> .. </html> お願い申し上げます。

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

みんなの回答

  • golgo-goo
  • ベストアンサー率47% (8/17)
回答No.1

エラーの内容が分からないので、なんとも言えませんが、とりあえずPHPは動いているのでしょうか。 <?php echo "ようこそ○○様" ; ?> が動くかの確認をまずしたほうが良いかと思います。 それからは、POSTのデータがちゃんと取得できているかや、各位置で変数の値が適切かを echoやvar_dumpとか使って調べていけば、切り分けができると思います。

kikansya_tomas
質問者

補足

ご回答ありがとうございます。 ご指摘いただいたエラー内容なのですが、 下記に具体的にエラーが出た箇所と、エラー内容を記しますので、ご覧頂ければ幸いです。 ■エラー箇所 (1) //image.phpにわたす $param="?count={$_SESSION['vars']['count']}&"; $param.="username={$_SESSION['vars']['username']}&"; (2) //ページタイトルにユーザー名を付加 $pagetitle.=" for {$_SESSION['vars']['username']}"; ■エラー内容 Notice: Undefined index: username in C:\xampp\htdocs.... Notice: Undefined index: username in C:\xampp\htdocs.... となっているので、初期化がうまくいっていないみたいで、 私はまだあまり知識がなく、初期化をする際には、 if (isset($_SESSION['vars']['username'])) { } などしか思いつかなく、これですとエラーが出たままです。 ですので、この初期化さえうまくいけば作動する可能性もあるので、 大変恐れ入りますが、この場合には、どうしたスクリプトが適しているのか、 具体例などもご提示して頂ければ大変嬉しく思います。 何卒よろしくお願い申し上げます。

関連するQ&A

  • PHPで$_GET[’m’]の意味が分かりません。

    市販の本を参考にPHPを勉強しています。 以下の(2箇所あります)$_GET['m']の'm'とは何なのでしょうか。mを得たらリセット・・?でもmを得るってなんなんでしょう?? 突然出てきて困っております。 初歩的な質問かもしれませんが、よろしくお願いします。 <?php //------------------------------------------------------- //宝探しゲーム //----------------------------------------------------- //セッションの開始 session_start(); //タイトルと説明表示 echo "<h1>宝探し</h1>"; echo "<p>マップ上の適当な場所をクリック!</p>"; //ゲーム状態を判定する $stat = $_SESSION['stat']; if (!$stat || $_GET['m'] == "reset"){ //初めての場合、リセット時 init_game(); draw_map(); exit; } //パネルを開くとき if ($_GET['m'] == 'click'){ click_panel(); } // ゲームパラメータの初期化 function init_game() { //ゲームの初期化 $_SESSION['stat'] ='playing'; $_SESSION['turn'] =0; //宝の位置を設定する $_SESSION['takara_x'] = rand(0,8); $_SESSION['takara_y'] = rand(0,8); //マップを初期化 for ($y = 0; $y < 9; $y++){ for ($x = 0; $x < 9; $x++){ $_SESSION["map"][$y][$x] = "*"; } } } //マップの描画(tableタグ表示) function draw_map() { //マップを描画する $map = $_SESSION['map']; $s = "<table border='1'>"; for ($y = 0; $y < 9; $y++) { $s .="<tr>"; for ($x = 0; $x < 9; $x++){ $v = $_SESSION["map"][$y][$x]; $color = "#FFFFFF"; if ($v == "*"){ $v = "<a href ='?m=click&x=$x&y=$y'>*</a>"; $color = "#COCOCO"; } $s .= "<td width='24' align='center' bgcolor='$color'>"; $s .= "$v</td>"; } $S .="</tr>"; } $s .= "</table>"; echo $s; echo "<p>現在、{$_SESSION['turn']}手目です。</p>"; echo "<p><a href='?m=reset'>* RESTART *</a></p>"; } //パネルクリック時の処理 function click_panel() { $x = intval($_GET['x']); $y = intval($_GET['y']); $takara_x = $_SESSION['takara_x']; $takara_y = $_SESSION['takara_y']; $_SESSION['turn']++; //宝を有無を判定 if ($takara_x == $x && $takara_y == $y) { //宝を見つけた判定 $_SESSION["map"][$y][$x] = '<font color="red">@</font>'; echo '<h1>☆大当たり☆</h1>'; draw_map(); init_game(); }else{ //間違えた場合は宝までの距離を表示 $dist = abs($takara_x - $x) + abs($takara_y - $y); $_SESSION['map'][$y][$x] = $dist; echo "<p>残念でした!ヒント・・あと $dist の距離のところ</p>"; draw_map(); exit; } } ?>

    • ベストアンサー
    • PHP
  • php、クエリ生成について

    OS:Mac OS X 10.6.8 Snow Leopard 環境:MAMPを使ったローカル環境 PHP:5.3.6 MySQL:5.5.9 PHPとMYyQLを使って検索システムを作ってみている者です。 検索結果がどうしても全件表示になってしまいます。 また、$queryにはSELECT * FROM テーブル名 にwhereで条件を付加してるのですが、 $queryをprintしてみても、SELECT * FROM テーブル名 しか表示されません。 いろいろ調べたり試したりしてみたのですが、原因がつかめず、解決策が見つかりません。 どうか、アドバイスご教示お願いします。 <body> <?php $debug = false; //DB Connect $url = "localhost"; $user = "ユーザー名"; $pass = "パスワード"; $db = "DB名"; $link = mysql_connect($url,$user,$pass) or die("No Connected"); $sdb = mysql_select_db($db,$link) or die("No Connected"); if($debug) echo_r($HTTP_POST_VARS); //Error Check //Request Method Check if($_SERVER["REQUEST_METHOD"] != "POST") { echo "Error: invalid method"; exit(); } //Create Query $query = "SELECT * FROM テーブル名"; //Create Search Criteria $where = array(); if (isset($_POST['type'])and($_POST['type'] !== '')) { $where[] = sprintf("(type='%s')", mysql_real_escape_string($_POST['type'])); } if (isset($_POST['name'])and($_POST['name'] !== '')) { $where[] = sprintf("(name='%s')", mysql_real_escape_string($_POST['name'])); } if (isset($_POST['address'])and($_POST['address'] !== '')) { $where[] = sprintf("(address like '%%%s%%')", mysql_real_escape_string($_POST['address'])); } if (isset($_POST['description'])and($_POST['description'] !== '')) { $where[] = sprintf("(description like '%%%s%%')", mysql_real_escape_string($_POST['description'])); } if (count($where) <> 0) { $query .= ' where ' . implode(' and ', $where); } echo $query; //Result $result = mysql_query($query) or die($query . '<br />' . mysql_error() . '<hr />'); $num_rows = mysql_num_rows($result); ?> <h2>Search Result</h2><br> <?php if($num_rows == 0) { $message = "No date"; } else { $message = $num_rows ."hits"; echo $message; } ?> <table> <tr> <td>Type</td> <td>Company</td> <td>Address</td> <td>Description of Business</td> </tr> <?php while($row = mysql_fetch_assoc($result)): ?> <tr> <td><?php echo $row['type']; ?></td> <td><?php echo $row['name']; ?></td> <td><?php echo $row['address']; ?></td> <td><?php echo $row['description']; ?></td> </tr> <?php endwhile; ?> </table> </body>

    • ベストアンサー
    • PHP
  • PHPのセッションIDについて

    PHP5.3.14を使っています。 セッションについて勉強中です。 セッションを使ってページの表示回数をカウントアップするソースと、 そのセッションを破棄するソースの2種類を用意しました。 ※それぞれ、session_id()をecho表示しています。 クッキーを使った状態でこれらを動かすと、 リセットする(リンクを押してリロードする)度にセッションIDが変わるのですが、 クッキーを使わずに定義済み定数SIDを使って動かすと、 カウント値は元に戻るのですが、 リセットしてもセッションIDが変わりません。 どうすれば、新しいセッションIDを発行(SIDの値を更新)できるのでしょうか? よろしくお願いします。 【以下、ソース2種類と、iniファイルの一部です】 ●up.php <?php session_start(); if (empty($_SESSION['count'])) { $_SESSION['count'] = 1; } else { $_SESSION['count']++; } echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); ?> <p> <?php echo $_SESSION['count']; ?> 回目。 </p> <p><a href="up.php">カウントアップ</A> </p> <p> <a href="reset.php">リセット</A> </p> ●reset.php <?php session_start(); echo ("###".'"'.session_name().'='.session_id().'"'."</br>"); echo ("##### ". $_SESSION['count']."回表示しました。</br>"); $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } if(isset($_REQUEST[session_name()])){ $_REQUEST[session_name()]="" ; } session_destroy(); ?> <p> <a href="up.php">初めからカウントする</A> </p> ●php.ini (クッキーを使わずSIDを使うを設定) session.use_trans_sid = 1 session.use_only_cookies=0 session.use_cookies=0

    • 締切済み
    • PHP
  • PHPで作成した2つのプログラムが不安定だが、原因不明。宝探しゲーム編

    キチンと動作する場合と、上手く動作しない場合のあるプログラムがあるのですが、原因が全く分かりません。いずれも、「たまに」動作します。原因が分かる方はぜひ御回答ください。環境はWin XAMPP1.7.2を使用しました。非常に長くなってしまい、申し訳ありません。 宝探しゲーム(文字は表示されるが、ゲーム部分がスッポリ無い) <?php //------------------------------------------------------- //宝探しゲーム //----------------------------------------------------- //セッションの開始 session_start(); //タイトルと説明表示 echo "<h1>宝探し</h1>"; echo "<p>マップ上の適当な場所をクリック!</p>"; //ゲーム状態を判定する $stat = $_SESSION['stat']; if (!$stat || $_GET['m'] == "reset"){ //初めての場合、リセット時 init_game(); draw_map(); exit; } //パネルを開くとき if ($_GET['m'] == 'click'){ click_panel(); } // ゲームパラメータの初期化 function init_game() { //ゲームの初期化 $_SESSION['stat'] ='playing'; $_SESSION['turn'] =0; //宝の位置を設定する $_SESSION['takara_x'] = rand(0,8); $_SESSION['takara_y'] = rand(0,8); //マップを初期化 for ($y = 0; $y < 9; $y++){ for ($x = 0; $x < 9; $x++){ $_SESSION["map"][$y][$x] = "*"; } } } //マップの描画(tableタグ表示) function draw_map() { //マップを描画する $map = $_SESSION['map']; $s = "<table border='1'>"; for ($y = 0; $y < 9; $y++) { $s .="<tr>"; for ($x = 0; $x < 9; $x++){ $v = $_SESSION["map"][$y][$x]; $color = "#FFFFFF"; if ($v == "*"){ $v = "<a href ='?m=click&x=$x&y=$y'>*</a>"; $color = "#COCOCO"; } $s .= "<td width='24' align='center' bgcolor='$color'>"; $s .= "$v</td>"; } $S .="</tr>"; } $s .= "</table>"; echo $s; echo "<p>現在、{$_SESSION['turn']}手目です。</p>"; echo "<p><a href='?m=reset'>* RESTART *</a></p>"; } //パネルクリック時の処理 function click_panel() { $x = intval($_GET['x']); $y = intval($_GET['y']); $takara_x = $_SESSION['takara_x']; $takara_y = $_SESSION['takara_y']; $_SESSION['turn']++; //宝を有無を判定 if ($takara_x == $x && $takara_y == $y) { //宝を見つけた判定 $_SESSION["map"][$y][$x] = '<font color="red">@</font>'; echo '<h1>☆大当たり☆</h1>'; draw_map(); init_game(); }else{ //間違えた場合は宝までの距離を表示 $dist = abs($takara_x - $x) + abs($takara_y - $y); $_SESSION['map'][$y][$x] = $dist; echo "<p>残念でした!ヒント・・あと $dist の距離のところ</p>"; draw_map(); exit; } } ?>

    • ベストアンサー
    • PHP
  • PHPでカレンダーを作成するにあたって(祝日)の出力

    PHP初心者です。 勉強をかねて、PHPでカレンダーを作成しています。 カレンダー自体は作成できたと思うのですが、祝日も考慮したいので、どうコーディングすれば良いでしょうか? カレンダーは下記のように作成致しました。 <html> <head> <title>カレンダー</title> <link rel= "stylesheet" href="ookawa.css" type="text/css"> </head> <body> <table> <th colspan="7"><font size="+1"> <?php echo date("Y"); ?> <?php echo "/"; ?> <?php echo date("m"); ?> </font><font size="+1"></font></th> <tr> <td><font size="-1">日</font></td> <td><font size="-1">月</font></td> <td><font size="-1">火</font></td> <td><font size="-1">水</font></td> <td><font size="-1">木</font></td> <td><font size="-1">金</font></td> <td><font size="-1">土</font></td> </tr> <?php //当月の1日の曜日 $startwday = date("w", mktime(0, 0, 0, date("n"), 1, date("Y"))); //当月の最後の曜日 $endmday = date("t"); //当月の1日までの空欄 for($i = 0 ; $i < $startwday ; $i++) { if(($count % 7) == 0) { echo "<tr>"; } echo "<td> </td>"; $count++; } //●日付の書き込み for($i = 1 ; $i <= $endmday ; $i++) { if(($count % 7) == 0) { echo "<tr>"; } if($i == date("j")) { //☆本日の場合、背景色を黄色にする☆ echo "<td bgcolor=\"FFFF00\">"; } else { echo "<td align=\"center\ bgcolor=\"FFFF00\">"; } if(($count % 7) == 0) { //☆日曜日の場合、文字色を赤色にする☆ echo "<font color=\"red\">"; } elseif(($count % 7) == 6) { //☆土曜日の場合、文字色を青色にする☆ echo "<font color=\"blue\">"; } echo "$i"; if(($count % 7) == 0 or ($count % 7) == 6) { echo "</font>"; } echo "</td>"; $count++; if(($count % 7) == 0) { echo "</tr>\n"; } } //当月の最終日以降の空欄 for( ; ($count % 7) != 0 ; ) { echo "<td> </td>"; $count++; if(($count % 7) == 0) { echo "</tr>\n"; } } ?> </table> </body> </html> アドバイスを宜しくお願い致します。

    • 締切済み
    • PHP
  • HTML→PHPへ値を渡して再びHTMLに結果出力

    HTMLからPHPへ値を渡して、再びHTMLに結果を表示したいと思っています。 以下のような簡単なコードを書いてみましたが、HTMLのページに"OK"という文字が表示されません。 PHPのパーミッションは755でやっており、PHPが動作するサーバーでテストしています。 どう修正すれば良いのか、アドバイスをお願い頂けますでしょうか? どうぞよろしくお願い致します。 【HTML】 <html> <head> </head> <body> </body> <script type="text/javascript" src="http://xxx.com/test/jsphptest.php?param=1"></script> </html> 【PHP】 <?php $param = $_GET['param']; header("Content-type: application/x-javascript"); if ($param == '1') { echo "document.write(\"OK\")"; } else { echo "document.write(\"NG\")"; } ?>

    • ベストアンサー
    • PHP
  • PHPのセッションについて。

    <?php if(isset($_POST['cmdSubmit'])){ session_start(); $user = $_POST['user_name']; $_SESSION['user_name'] = $user;  header('Location:./test.php'); } ?> アンケートフォームの内容をセッションに入れて 別ページで <?echo $_SESSION['user_name'];?> という感じで出力させたいのですがうまく行きません。 セッションに登録されているかチェックするために 移動する前にecho $_SESSION['user_name']; で内容が表示されるかどうか確認したのですが そのときは問題なく内容が表示されるので、 headerで他のページに移動する前までは問題なさそうだと思います。 なにかアドバイスいただけたらとおもいます。 よろしくおねがいします。

    • ベストアンサー
    • PHP
  • phpがうまく動きません。

    phpで4択のクイズを作りたいのですが 正解のラジオボタンを選んでもカウントされないのと 答え合わせを押すと正解だった箇所を赤く表示したいのですがなんて書けばよいのか どこにそのコードを入れるのかよくわかりません <状態> ・5つのデータがmyadminに保存されています ・データベースの内容は表示されます。 ・答え合わせを押すと正解のラジオボタンを選んだ数が表示されるようにしたいです ・保存ボタンは閉じても答えを保存するためにあります ・q_noは8ケタ固定であり、左から5つ目までは固定であと3桁は999問入れられるよう設定してあります ・q_ansはデータベースに答えの値(1~4)が入れてあります ・データベース名はproblemです <省略> $res_set = mysql_query($sql); while ($row=mysql_fetch_array($res_set)){ ?> <form method="POST" action="H2102.php"> <?php echo $row['q_no'] . " "; ?> <br> <?php echo $row['q_text'] . " "; ?><br><br> <br> <?php echo "ア"; ?> <input type="radio" name="q_ans" value="1"> <?php echo $row['q_point1'] . " "; ?> <br><br><br> <?php echo "イ"; ?> <input type="radio" name="q_ans" value="2"> <?php echo $row['q_point2'] . " "; ?> <br> <br><br> <?php echo "ウ"; ?> <input type="radio" name="q_ans" value="3"> <?php echo $row['q_point3'] . " "; ?> <br><br><br> <?php echo "エ"; ?> <input type="radio" name="q_ans" value="4"> <?php echo $row['q_point4'] . " "; ?> <br><br><br> <br> <input type = "submit" name="save" value="保存"> <?php if(isset($_POST['save'])){ $_SESSION['save'] = $_POST['q_ans']; //保存すると選んだ回答を保存 } ?> <?php } ?> </form> <form method="POST" action="H2102.php"> <input type = "submit" name="ans" value="答え合わせ"> <?php //正解かどうかをチェック if(isset($_POST['ans'])){ $a = $_SESSION['a']; if($row['q_no'] == $_POST['q_no'] && $_POST['q_ans'] || $_SESSION['save'] == $row['q_ans'] ){ $_SESSION['a'] = $a + 1; //q_noが一致かつ保存した値または選んだ解答(値)が一致していれば1問につき1つカウントする $a = $_SESSION['a']; } echo $a; //カウントされているかをチェック } ?> <input type = "submit" name="del" value="カウント初期化"> <?php if(isset($_POST['del'])){ session_unset(); } ?> </form> <br> <?php } ?> 足りない情報があれば追記します

    • 締切済み
    • PHP
  • PHPでUndefined variableエラー

    PHPでUndefined variableエラーが発生します: <b>Notice</b>: Undefined variable: result in <b>/opt/lampp/htdocs/samples/chapter3/3-2/gen_defined_vars.php</b> on line <b>58</b><br /> どうやって直せばいいのか教えてください。 58行目がおかしいと出ていますが、$resultが未定義なので54行目のことだと思います。 ちなみに 9ー12行目は自分で直しました。お願いします。 1 <html> 2 <head> 3 <title>環境変数コード生成フォーム</title> 4 </head> 5 <body> 6 <?php 7 // 選択リストの値を取得 8 $name = "param"; 9 if ( isset($_POST[$name]) ) { 10 $selected_value = $_POST[$name]; 11 } 12 //$selected_value = isset($_POST[$name]) ? $_POST[$name] : ""; 13 14 // 定義済み変数を取得 15 $array = get_defined_vars(); 16 17 // 配列から選択リストを作成する関数 18 // パラメータ:配列/選択リスト名/選択値 19 function disp_list($array, $name, $selected_value = "") { 20 echo "<select name=\"" . $name . "\">"; 21 while (list($value, $text) = each($array)) { 22 echo "<option "; 23 if ($selected_value == $value) { 24 echo " selected "; 25 } 26 echo " value=\"".$value."\">" . $value . "</option>"; 27 } 28 echo "</select>"; 29 } 30 31 // 入力内容を処理する 32 $temp = "<?php echo \$_SERVER[\"%s\"] ?>"; 33 if (isset($_POST["param"])) { 34 $param = $_POST["param"]; 35 $result = sprintf($temp, $param); 36 } 37 else { 38 $param = ""; 39 } 40 41 ?> 42 <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> 43 <table cellpadding="10"> 44 <tr> 45 <td>環境変数を選択:<br /> 46 <?php echo disp_list($array["_SERVER"], $name, $selected_value); ?> 47 <input type="submit" value="作成" name="sub1"> 48 </td> 49 </tr> 50 <tr> 51 </tr> 52 <tr> 53 <td>作成されたコード:<br /> 54 <textarea name="ta1" rows="3" cols="40"><?php echo $result ?></textarea> 55 </td> 56 </tr> 57 </table> 58 </form> 59 </body> 60 </html>

    • ベストアンサー
    • PHP
  • phpのif文について

    phpでログイン処理のif文を書いています。 nameとpasswordのフィールドが記入されているのかをチェックするif文を書いたのですが、機能してくれません。何かが間違っているのでしょうか。 何も入力しないor間違った情報を入力する ということをしてもログインが出来てしまいます。 どなたかテェックお願い致します。 <?php require('dbconnect.php'); session_start(); if ($_COOKIE['name'] != '') { $_POST['name'] = $_COOKIE['name']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if (!empty($_POST)) { // ログインの処理 if ($_POST['name'] != '' && $_POST['password'] != '') { $sql = sprintf('SELECT * FROM members WHERE name="%s" AND password="%s"', mysql_real_escape_string($_POST['name']), sha1(mysql_real_escape_string($_POST['password'])) ); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { // ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time(); // ログイン情報を記録する if ($_POST['save'] == 'on') { setcookie('name', $_POST['name'], time()+60*60*24*14); setcookie('password', $_POST['password'], time()+60*60*24*14); } header('Location: index.php'); exit(); } else { $error['login'] = 'failed'; } } else { $error['login'] = 'blank'; } } ?>

    • ベストアンサー
    • PHP