[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 メーリングリストの案内