fc2ブログ
2009/10/31(Sat)  21:01
<?php
$url = "○○";
$user = "□□";
$pass = "××";
$db = "database";

// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("接続失敗・・・助けてください。");

// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("選択できないよぉ・・・");

// クエリを送信する
$sql = "SELECT No,name,setumei,img FROM setti";
$result = mysql_query($sql, $link) or die("送信に失敗。<br />SQL:".$sql);

//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
if($rows){
while($row = mysql_fetch_array($result)) {
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["No"]."</td><td>".$row["img"]."</td><td>".$row["name"]."</td><td>".$row["setumei"]."</td>";
$tempHtml .= "</tr>\n";
}
$msg = $rows."件のデータがあります。";
}else{
$msg = "データがありません。";
}
mysql_free_result($result);

// MySQLを切断
mysql_close($link) or die("切断失敗orz");

$tempHtml = mb_convert_encoding($tempHtml,"sjis","UTF-8");

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=sjis">
<title>設置データ一覧表</title>
</head>
<body>
<h3>設置アイテム全件表示</h3>
<?= $msg ?>
<table width = "100%" border = "1">
<tr><td>No</td><td>画像</td><td>名前</td><td>説明</td></tr>
<?= $tempHtml ?>
</table>
</body>
</html>


$row["img"]がbase64で入ってます・・・。
コメント:9件
コメント一覧
h抜き完了かな?
Byぶぶにゃテスト  2009/10/31(Sat)  22:11
呼び出し元PHPで

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=sjis">
<title>設置データ一覧表</title>
</head>
<body>
<h3>設置アイテム全件表示</h3>
<img src="test.php" />
</body>
</html>

見たいに書いて、呼び出される test.php で
<?php
$rows["img"] = '<エンコードされた長い文字列>';
$rows["img"] = base64_decode($rows["img"]);

header('Content-Type: image/png');
echo $rows["img"];
?>

みたいなのはどう?
frameみたいな感じだけどww
ByM  2009/10/31(Sat)  23:04
デコードは下のところでやってます・・・。

<?php
$url = "○○";
$user = "□□";
$pass = "××";
$db = "database";

// MySQLへ接続する
$link = mysql_connect($url,$user,$pass) or die("接続失敗・・・助けてください。");

// データベースを選択する
$sdb = mysql_select_db($db,$link) or die("選択できないよぉ・・・");

// クエリを送信する
$sql = "SELECT No,name,setumei,img FROM setti";
$result = mysql_query($sql, $link) or die("送信に失敗。<br />SQL:".$sql);

//結果セットの行数を取得する
$rows = mysql_num_rows($result);

//表示するデータを作成
if($rows){
while($row = mysql_fetch_array($result)) {
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["No"]."</td><td>".$row["img"]."</td><td>".$row["name"]."</td><td>".$row["setumei"]."</td>";
$tempHtml .= "</tr>n";
$row["img"]=base64_decode($row["img"]);
header("content-type:image/png");
}
$msg = $rows."件のデータがあります。";
}else{
$msg = "データがありません。";
}
mysql_free_result($result);

// MySQLを切断
mysql_close($link) or die("切断失敗orz");

$tempHtml = mb_convert_encoding($tempHtml,"sjis","UTF-8");

?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=sjis">
<title>設置データ一覧表</title>
</head>
<body>
<h3>設置アイテム全件表示</h3>
<?= $msg ?>
<table width = "100%" border = "1">
<tr><td>No</td><td>画像</td><td>名前</td><td>説明</td></tr>
<?= $tempHtml ?>
</table>
</body>
</html>
Byぶぶにゃ  2009/11/01(Sun)  23:58
$tempHtml .= "<tr>";
$tempHtml .= "<td>".$row["No"]."</td><td>".エンコード文字列."</td><td>".$row["name"]."</td><td>".$row["setumei"]."</td>";
$tempHtml .= "</tr>n";
デコード文字列=base64_decode(エンコード文字列);
header("content-type:image/png");


ってなってる・・・
ウェブに表示するのはエンコードされた文字列で、
デコードされた文字列は使ってないぞ@@
ByM  2009/11/02(Mon)  00:37
$row["img"]=base64_decode($row["img"]);
これで・・・
$row["img"]のなかにデコードされた$row["img"]が入ると思ってるんですけど・・・
デコードされてない文字列が入った変数にデコードされた画像(というのが正しいのか・・?)が元の変数($row["img"])に戻らないんですか?
Byぶぶにゃ  2009/11/02(Mon)  00:48
$row["img"]=base64_decode($row["img"]);

で、変換されるよ?
でも、出力するのは $tempHtml だよね?

$tempHtml への代入が終わったあとに、この一文で変換してるじゃん?
だから、$tempHtml に代入されるのは変換前の $row["img"] だよ。

つまり、下の場合だと

$row["img"] = "<エンコード文字列>";
$tempHtml = $row["img"];



$tempHtml = "<エンコード文字列>";

になってしまっていて、もう $row["img"] ではなくなってるから。
後から、$row["img"]の中身を変えても、$tempHtml には変化なし。
ただ、同じ変数「$row["img"]」を使いまわしてるだけ、ってことになる。

で、変換した後の $row["img"] は、使わずに次のループに行ってしまってる。

デコードした $row["img"] を表示したいなら、
$tempHtml に代入する前にデコードしないと。
ByM  2009/11/02(Mon)  10:06
変数ってのは 鍋 みたいなもんかな。
代入するときは、鍋の中身だけ、他の入れ物に移し替えられる。
(代入しても、元の鍋の中身が減らないところがイイ!)

上の例で、
$tempHtml = $row["img"];
ってやったときに
変数「$row["img"]」に入ってた中身が、$tempHtml にぶちまけられる。
(ただし、$row["img"] の中身はなくならないw)

そのあとに $row["img"] の中に塩でも入れて、味付けを変えたとしても
$tempHtml っていう他の容器に移したモノの味は変わらない。

今回は、味付けを変えた、新しいスープは使わずに、
次のループで、他の素材を入れられてしまうね

で・・
他にも問題ありそうだよね
ByM  2009/11/02(Mon)  10:13
返事がない・・v-16

今日は飲み会だから、夜遅くなると思う。
続きはベッドの中で・・
ByM  2009/11/02(Mon)  15:59
新しい記事載せたよ( ̄m ̄*)
Byぶぶにゃ  2009/11/02(Mon)  22:28
お名前
タイトル
メール
URL
コメント
パスワード