[PHP-users 26280] ボタンを押しても適切な処理が行われない。

柳町 洋光 hiromitsu @ m9.dion.ne.jp
2005年 7月 23日 (土) 13:51:59 JST


柳町です。久々にこのMLに投稿させていただきます。

フォトアルバムを作っています。
管理画面からのみ押せるボタンが幾つかあり、そのうちのどのボタンを押して
も写真を拡大して観るページが開いてしまいます。
出力されてくるHTMLソースを見てもきちんと目標どおりのものが出力され
ています。
管理画面を作っているのはmake_html_adminで、画像を拡大して見る画面を作っ
ているのはview_photoという関数です。
しかし、写真は表示されません。
いったいなにが起こっているのでしょうか。

下記は全ソースです。

#!/usr/local/bin/php4
<?
session_start();

include "./cnv_dbstr.cgi";
include "./cnv_dispstr.cgi";

if($_POST["view_album"] and !$_SESSION["admin"]) show_album_other();
if($_POST["view_album"] and $_SESSION["admin"]) show_album_admin();
if($_POST["zoom"]) view_photo();
if($_POST["change_top"]) change_top();
if($_POST["edit"]) edit_album();
if($_POST["del"]) delete_from_db();

function show_album_other(){

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	page_set($con);
$htmlstring=make_html_other($con);
	include_once "../html/show_album.html";
	exit();
}

function page_set($con){

	if(!$_SESSION["page"]) $_SESSION["page"]=1;
	if(!$_SESSION["count"]){
		$res=mysql_query("select count(*) as count from 
album",$con);
		$row=mysql_fetch_array($res,MYSQL_ASSOC);
		$_SESSION["count"]=$row["count"];
		$_SESSION["maxpage"]=ceil($_SESSION
["count"]/9);
	}
	if($_POST["next"]) $_SESSION["page"]=$_SESSION["page"]+1;
	if($_POST["back"]) $_SESSION["page"]=$_SESSION["page"]-1;
}

function make_html_other($con){

	$limit_start=$_SESSION["page"]*9-9;
	$limit_end=$_SESSION["page"]*9-1;
	if($limit_end>>$_SESSION["count"]) $limit_end=$_SESSION
["count"];

	$res=mysql_query("select * from album order by date desc 
limit ".$limit_start.",".$limit_end,$con);

	$htmlstring="<form method=\"post\" action\"".$_SERVER
["PHP_SELF"]."\">";
	$htmlstring.="<table width=\"100%\" border=\"0\">\n<tr>\n";
	$i=1;
	while($row=mysql_fetch_array($res,MYSQL_ASSOC)){
		$htmlstring.="<td border=\"0\">\n";
		$htmlstring.="<img src=\"/photo/".$row
["filename"]."\" width=\"".$row["width"]."\" hight=\"".$row
["hight"]."\" alt=\"".$row["title"]."\">\n";
		$htmlstring.="</td>\n";
		$htmlstring.="<td border=\"0\">\n";
		$htmlstring.="<button type=\"submit\" name=
\"zoom\" value=\"".$row["filename"]."\">\n";
		$htmlstring.="<img src=\"/images/cut_072.gif\" 
alt=\"拡大\">\n";
		$htmlstring.="</button>";
		$htnlstring.="</td>\n";
		if(($i%3)==0) $htmlstring.="</tr>\n<tr>\n";
		$i=$i+1;
	}
	$i=$i-1;
	if(($i%2)==0 or ($i%3)!=0) $htmlstring.="</tr>\n";
	$htmlstring.="</table>\n";
	if($_SESSION["page"]==1 and $_SESSION["maxpage"]!=$_SESSION
["page"]) $htmlstring.="<input type=\"submit\" name=\"next\" value=\"次
のページへ\">\n";

	if($_SESSION["page"]!=1 and $_SESSION["page"]<<$_SESSION
["maxpage"]) $htmlstring.="<input type=\"submit\" name=\"next\" value=
\"次のページへ\"><br>\n<input type=\"submit\" name=\"back\" value=\"前
のページへ\">\n";
	if($_SESSION["page"]==$_SESSION["maxpage"]) $htmlstring.
="<input type=\"submit\" name=\"back\" value=\"前のページへ\">\n";
	$htmlstring.="</form>\n";

	return $htmlstring;
}

function show_album_admin(){

	if($_POST["edit"]) edit_album();
	if($_POST["del"]) delete_from_db();

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	page_set($con);
	$htmlstring=	make_html_admin($con);
	include_once "../html/show_album.html";
	exit();
}

function make_html_admin($con){

	$limit_start=$_SESSION["page"]*9-9;
	$limit_end=$_SESSION["page"]*9-1;
	if($limit_end>>$_SESSION["count"]) $limit_end=$_SESSION
["count"];

	$res=mysql_query("select * from album order by date desc 
limit ".$limit_start.",".$limit_end,$con);

	$htmlstring="<form method=\"post\" action=\"".$_SERVER
["PHP_SELF"]."\">\n";
	$htmlstring.="<table width=\"100%\" border=\"0\">\n<tr>";
	$i=1;
	while($row=mysql_fetch_array($res,MYSQL_ASSOC)){
		$htmlstring.="<td border=\"0\">\n";
		$htmlstring.="<input type=\"radio\" name=
\"photo\" value=\"".$row["filename"]."\">\n";
		$htmlstring.="<img src=\"/photo/".$row
["filename"]."\" width=\"".$row["width"]."\" hight=\"".$row
["hight"]."\" border=\"0\" alt=\"".$row["title"]."\">\n";
		$htmlstring.="</td>\n";
		$htmlstring.="<td border=\"0\">\n";
		$htmlstring.="<button type=\"submit\" name=
\"zoom\" value=\"".$row["filename"]."\">\n";
		$htmlstring.="<img src=\"/images/cut_072.gif\" 
alt=\"拡大\">\n";
		$htmlstring.="</button>\n";
		$htmlstring.="</td>\n";
		if(($i%3)==0) $htmlstring.="</tr>\n<tr>\n";
		$i=$i+1;
	}
	$i=$i-1;
	if(($i%2)==0 or ($i%3)!=0) $htmlstring.="</tr>\n";

	$htmlstring.="</table>\n";
	if($_SESSION["page"]==1 and $_SESSION["maxpage"]!=$_SESSION
["page"]) $htmlstring.="<input type=\"submit\" name=\"next\" value=\"次
のページへ\">\n";

	if($_SESSION["page"]!=1 and $_SESSION["page"]<<$_SESSION
["maxpage"]) $htmlstring.="<input type=\"submit\" name=\"next\" value=
\"次のページへ\"><br>\n<input type=\"submit\" name=\"back\" value=\"前
のページへ\">\n";
	if($_SESSION["page"]==$_SESSION["maxpage"]) $htmlstring.
="<input type=\"submit\" name=\"back\" value=\"前のページへ\">\n";
	$htmlstring.="<input type=\"submit\" name=\"edit\" value=
\"修正する\"><br>\n";
	$htmlstring.="<input type=\"submit\" name=\"del\" value=
\"削除する\"><br>\n";
	$htmlstring.="<input type=\"submit\" name=\"change_top\" 
value=\"表紙に飾る\">\n";
	$htmlstring.="</form>\n";

	return $htmlstring;
}

function edit_album(){

	if($_POST["photo"]) $_SESSION["photo"]=$_POST["photo"];
	if($_POST["title"] and $_POST["epsode"]) update_db();

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	$res=mysql_query("select * from album where filename='".
$_POST["photo"]."'",$con);
	$row=mysql_fetch_array($res,MYSQL_ASSOC);
	$htmlstring="<form method=\"post\" action=\"".$_SERVER
["PHP_SELF"]."\">";
	$htmlstring.="<p>\nタイトル:<br>\n";
	$htmlstring.="<input type=\"text\" name=\"title\" value=
\"".cnv_dispstr($row["title"])."\"><br>\n";
	$htmlstring.="<textarea name=\"episode\">".cnv_dispstr($row
["episode"])."</textarea>\n";
	$htmlstring.="<input type=\"submit\" name=\"edit\" value=
\"更新\">";
	$htmlstring.="</form>\n";
	include_once "../html/edit.html";
	exit();
}

function update_db(){

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	if($res=mysql_query("update alubm set title='".cnv_dbstr
($_POST["title"])."', episode='".cnv_dbstr($_POST["episode"])."' where 
filename='".$_SESSION["photo"]."'",$con)) include_once 
"../html/update_db.html";
}

function delete_from_db(){
$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	if($res=mysql_query("delete from album where filename='".
$_POST["photo"]."'",$con)) print "削除しました。\n";
}

function view_photo(){

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
	$res=mysql_query("select * from album where filename='".
$_POST["zoom"]."'",$con);
	$row=mysql_fetch_array($res,MYSQL_ASSOC);

	$htmlstring="<h4>".cnv_dispstr($row["title"])."</h4>\n";
	$htmlstring.="<img src=\"/photo/".$row["filename"]."\"><br>
\n";
	$htmlstring.="<P>".nl2br(cnv_dispstr($row
["episode"]))."</p>\n";
	$htmlstring.="<form method=\"post\" action=\"".$_SERVER
["PHP_SELF"]."\">\n";
	$htmlstring.="<input type=\"submit\" name=\"view_album\" 
value=\"アルバムに戻る\">\n";
	$htmlstring.="</form>\n";
	include_once "../html/view_photo.html";
	exit();
}

function change_top(){

	$con=mysql_connect("localhost","dogear_2","*************");
	mysql_select_db("dogear_2");
if($res=mysql_query("select count(*) as count from album where 
nowtop='1'",$con)){
		$res=mysql_query("select fileid from album 
where nowtop='1'",$con);
		$row=mysql_fetch_array($res,MYSQL_ASSOC);
		$res=mysql_query("update album set nowtop='0' 
where fileid='".$row["fileid"]."'",$con);
		$res=mysql_query("update album set nowtop='1' 
where filename='".$_POST["photo"]."'",$con);
		print "トップページの画像を変更しました。\n";
	}
	else{
		$res=mysql_query("update album set nowtop='1' 
where filename='".$_POST["photo"]."'",$con);
		print "トップページの画像を変更しました。\n";
	}
}
?>


PHP-users メーリングリストの案内