PHPサイトからMySQL内のデータを知る方法

このQ&Aのポイント
  • PHPサイトからMySQL内のデータを表示する方法について質問しています。
  • 現在、PHPサイトではnameとaddのデータを表示していますが、memoの内容が表示されない問題が起きています。
  • 質問者はmemoの内容も表示させたいが、memoが表示されない原因が分からないため質問しています。
回答を見る
  • ベストアンサー

PHPサイトからMySQL内のデータを知る方法

質問失礼いたします。 MySQLにあるデータベースをPHPサイトに表示しています。 PHPでは、 【datab.php】で、データベースへ接続し $link = mysql_connect('localhost', 'user', 'pass'); 【hyouji.php】にて、データを表示しています require_once("datab.php"); //SQL文 mysql_close($link); //データ配列 MySQL内のカラムには name , add , memo の3つがあり、PHPに表示させているのは name , add のみです。 しかし、どうやら memo にある内容が閲覧している人にわかったらしいのですが、 どこを見ても、memoの内容は表示されていません。 すみません、うまく言えないのですが… 上記にある【datab.php】の接続方法では、 MySQL内のデータがバレてしまうのでしょうか…? 原因も分からないのですが、何がお知恵をいただけたらと思います。 宜しくお願い致します。

  • MySQL
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • g_liar
  • ベストアンサー率52% (382/728)
回答No.1

う~ん…これだけだとハッキリとは言えないのですが… 可能性1.ブラウザの画面には表示されなくとも、HTML内のコメントや非表示項目などで出力してしまっていませんか?ブラウザで右クリック→ソースの表示を行ってみてください。memoが表示されてませんか? 可能性2.画面遷移する際にテキスト入力欄があるのなら、プログラムに「SQLインジェクション」の脆弱性がありませんか?memoなんて名前の列名は第三者が容易に想像できてしまいます。「SQLインジェクション」に関しては検索してください。解説&対策が書いてあるページがたくさん出てきます。

rabbit-kimura
質問者

お礼

ありがとうございます!! 可能性1.はなかったようなので、可能性2.で検索してみます!!

関連するQ&A

  • PHP MySQL で updateができません

    はじめまして。Amazon.co.jpなどでよくある 「このレビューは参考になりましたか?」 Yes/No でレビューに対する評価機能をPHPで組みたいのですが、 update set でうまくデータ更新ができず困っております。 以下ソース 【入力画面】 ----------------------------------------------------------- <? while ( $adp = mysql_fetch_array( $result6 ) ) { ?> <form name="register" action="rev.php" method="post"> //レビュー内容 <?php $str = nl2br($adp['description']); echo $description . $str ; ?> //レビュー内容 このレビューは参考になりましたか? <input type="radio" name="vote" value="2" checked>参考になった<br> <input type="radio" name="vote" value="1">参考にならなかった<br><br> <? echo $adp['add_id'] ?> <input name="add_id" type="hidden" value="<?= $adp['add_id'] ?>"> <input type="submit" value="- 登録 -"> <input type="reset" value="リセット"> </form> <? } ?> 【完了画面】 ----------------------------------------------------------- <? require( '../config.php' ); require( '../lib.php' ); $link = db_connect(); $sql = "update adp set vote = '" . mysql_real_escape_string( $_POST['vote'] ) . "' where add_id = '" . mysql_real_escape_string( $_GET['add_id'] ) . "'"; $result = mysql_query( $sql ); echo mysql_error(); // ?> 投票完了 ----------------------------------------------------------- 要するに adpのデータベースのadd_idが同じテーブルの中の voteの値を1か2に更新したいだけなのですが、 1人で色々と試してもどうしても更新できずに 困っております。 どなたかお分かりの方がいらっしゃいましたら是非 お教えいただけますと幸いです。 足りない情報などございましたらご連絡ください。 補足させていただきます。 すみません、どうかお願いします。

    • ベストアンサー
    • PHP
  • PHPでMySQLのデータを検索したい

    お世話になります。 PHPでMySQLのデータを検索したいと思い、 以下のようにしてみたのですがうまく表示されません。 -- $name = $_POST["name"]; $link = mysql_connect('localhost', '', ''); $db_selected = mysql_select_db('', $link); mysql_set_charset('utf8'); $sql = "SELECT * FROM search WHERE". $name; $result = mysql_query($sql); while($row = mysql_fetch_array($name)) { print $row['name']; } $close_flag = mysql_close($link); -- どう改善すればいいのでしょうか? 初心者の為、少々お見苦しい点があるかと思いますが どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP+MySQL mysql_connectのエラー

    PHP初心者なのですが、 PHPを使用して外部ホストのMySQLデータベースから データを取り出すプログラムを開発しています。 mysql_connect関数でデータベースに接続する段階で 内部エラーとなってしまいます。 プログラムは以下のようなものです。 $url = "000.000.00.00";//外部ホストのアドレスです $user = "username"; $pass = "password"; $db = "databasename"; $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); ホストアドレスやユーザー名、パスワードは 以前VisualBasic+ODBC+MySQLでデータを読み込んでいたときに 使用していたものなので、間違いはないと思います。 非常に初歩的な質問で申し訳ありませんが、 非常に困っております。 ご助言よろしくお願いします。

    • 締切済み
    • PHP
  • phpでmysql接続について

    こんにちは。phpでmysqlに接続するときmysql_connect関数を使っています。 VB等でデータベースに接続するとき、ADOなどの種類がありますが、mysql_connectはどのようにしてmysqlに接続しているのでしょうか? その仕組みを知りたいのですが、関数についてしか載ってません。 ご教授お願いいたします。

    • 締切済み
    • PHP
  • PHPとMySQLについて

    PHPとMySQLについて PHP、MySQLともに初心者の者です。 ネットの情報を参考に以下のようなプログラムを作成しました。 <?php //ファイルを読み込み require_once("DB47.php"); // クエリを送信する $sql = "SELECT * FROM japanDB ORDER BY PREF_CD"; $result = executeQuery($sql); //結果セットの行数を取得する $rows = mysql_num_rows($result); //表示するデータを作成 if($rows){ while($row = mysql_fetch_array($result)) { $tempHtml .= "".$row["PREF_CD"]." ".$row["PREF_NAME"]." "; $tempHtml .= "\n"; } $msg = $rows."件のデータがあります。\n\n"; }else{ $msg = "データがありません。\n\n"; } //結果保持用メモリを開放する mysql_free_result($result); ?> <?= $msg ?> <?= $tempHtml ?> これはデータベースに 1、北海道 2、青森 ・  ・ ・  ・ ・  ・ 47、沖縄 といった情報を与えており、PHP側でMySQLに接続し、その内容をコマンドプロンプト上で表示するといったものです。 しかし、PHPプログラムを実行してしまうと、全データが一気に表示されてしまうので、見づらいものとなっています。 そこで、地名や番号を入力すれば、地名を表示するような検索機能を付けたいのですが、PHPからMySQLデータベース内を検索する方法が分かりません。検索機能をこのプログラムに組み込みたいのですが・・・。 どなたかご教授お願いいたします。 ***環境*** OS : Windows XP Pro PHP4.2.3 、MySQLインストール済み **********

    • ベストアンサー
    • PHP
  • phpでmysqlのデータがupdateできません。

    仕様Apache2.0 PHP5.1.6 MySQL5.0.27 です。 以下の通りです。どこがだめですか? <FORM method="POST" action="order_regist.php"> <INPUT type="hidden" name="id" value="<?=$id?>"> <INPUT type="hidden" name="order_day" value="<?=$order_day?>"> <INPUT type="hidden" name="order" value="依頼あり"> <INPUT type="submit" value="同意して作業を依頼"> </FORM> 上記を次ページへ送信 以下次ページ /* MySQL DB接続情報の設定 DB名/ユーザー名/パスワード */ define("DB_NAME", "*****"); define("DB_USER", "*****"); define("DB_PASS", "*****"); /* リクエストデータの取得 */ $id = $_REQUEST["id"]; $order_day = $_REQUEST["order_day"]; $order = $_REQUEST["order"]; /* MySQLに接続 */ $link = mysql_connect("localhost", DB_USER, DB_PASS) or die("MySQLとの接続に失敗しました。"); /* 接続データベースを選択 */ mysql_select_db(DB_NAME) or die("データベースとの接続に失敗しました。"); /* クライアントのキャラクタセットを変更 */ mysql_query("SET NAMES ujis") or die( "クエリーの実行に失敗しました" ); /* データを更新するクエリーを設定 */ $query = "UPDATE all_cleaning_user SET order = '" . $order . "', order_day = '" . $order_day . "' WHERE id = " . $id; /* データベースにクエリーを実行 */ mysql_query($query) or die("クエリーを実行できませんでした。"); /* MySQLより切断 */ mysql_close($link); クエリーを実行できませんでしたのエラーが出ます。なぜですか?

    • ベストアンサー
    • PHP
  • PHPでMySQLへの接続

    お世話になります。 phpを用いてMySQLへ接続したのですが、データが空で戻ってきました。lowは件数表示されましたし、行数もその分返ってきています。何か原因は考えられるでしょうか? <html> <head> <title>PHP TEST</title> </head> <body> <?php $link = mysql_connect('localhost', 'XXXX', 'XXXX'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); $db_selected = mysql_select_db('XXXX', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } print('<p>uriageデータベースを選択しました。</p>'); //mysql_set_charset('utf-8'); $result = mysql_query('SELECT * FROM sample'); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } while ($row = mysql_fetch_assoc($result)) { print('<p>'); print('id='.$row['str']); print(',name='.$row['etc']); print('</p>'); } $close_flag = mysql_close($link); if ($close_flag){ print('<p>切断に成功しました。</p>'); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • mysqlのデータを変数に代入する方法

    php/mysql初心者です。かなりつたない内容になっているかもしれませんが、ご容赦ください。 過去ログで何のワードで検索したらいいかもわからなかったので質問投稿させていただきます。 データベースに入っている情報を変数に代入して POSTメソッドで送信したいと考えています。 DBからSELECTで特定の情報を取り出す ↓ 変数に代入する ↓ POSTで送信 このような流れで処理したいです。 [環境] PHP 5.2.17 MySQL 5.1.59 今書いているソースを一部抜粋します。 ------------ <?php if ($_SERVER['REQUEST_METHOD']=="POST") { require_once "Request.php"; $req =& new HTTP_Request("【送信先URL】"); $req->setMethod(HTTP_REQUEST_METHOD_POST); $connect = mysql_connect('localhost', '【DB名】', '【パスワード】'); if (!$con) { exit('データベースに接続できませんでした。'); } $result = mysql_select_db('【データベース名】', $connect); if (!$result) { exit('データベースを選択できませんでした。'); } $db = mysql_query('SELECT username FROM userinfo where id=6', $connect); $u="$db"; $req->addPostData("username", $u); $con = mysql_close($con); if (!$con) { exit('データベースとの接続を閉じられませんでした。'); } ?> ------------ ※idが6のusernameは「テスト太郎」になっています。 上記のPHPを実行すれば"userinfo"テーブル内の"id"が6の"username"が 送信されると思いましたが、実際は異なる内容が送信されます。 送信されるデータはusernameの内容ではなく "Resource data"となっています。 なぜ$uに代入した値がResource dataという内容になるのでしょうか。 初歩的な質問かもしれませんが、 ご教示の程よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLをPHPで使おうとして

    FedoraCore(192.168.0.101)に /var/www/html/index.php: <?php $link=mysql_connect("localhost","root","12") or die("Could not connect"); print"Connected successfully"; mysql_close($link); ?> を入れて他のPC(192.168.0.100)からこれを呼びましたが Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /var/www/html/index.php on line 2 Could not connect となり接続できません /var/lib/mysql/はありmysql.sockがありません どうしたらいいのでしょうか?

    • ベストアンサー
    • MySQL
  • PHPとMySQLを学習しているのですが・・・。

    ----------------- apache2.0.59 php5.24 MySQL5.0.45 ----------------- <?php $my_con = mysql_connect("localhost" , "hamu" , 'hamutamago'); if($my_con == false){ echo "MySQLに接続できました"; }else{ echo "MySQLに接続できました"; }; if(mysql_select_db("sample_sql")){ echo "データベース接続できました"; }else{ echo "データベース接続できませんでした"; } ?> PHPでMySQLと連動させる勉強をいましているのですが、PHPからMySQLへアクセスする事はできたのですが、自分で作成したデータベースへアクセすることができません。最初からMySQLに入っていたinformation_schemaというデータベース(?)にはアクセスできるみたいなのですが、自分で策瀬下データベースにはアクセスが出来ないようです。 なにかご存じのかたがいらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • PHP