トップページphp
1001コメント342KB

【PHP】下らねぇ質問はID出して書き込みやがれ 85

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/06/15(月) 22:53:52ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0362nobodyさん2009/07/06(月) 19:30:04ID:Zv6if7ao
こういうサイトってPHPだけで作れますか?
http://say-move.org/
0363nobodyさん2009/07/06(月) 20:07:29ID:???
>>362
他にjavascript、能力、やる気なども必要。

ちなみに、何か「できないかも」と思う機能があるの?
そういう懸念があるのならそれも併記すべき。

そういうことすら判らないのでとりあえず聞いてみた、
ということなら、あなたには難しいんじゃないだろうか。
0364nobodyさん2009/07/06(月) 20:29:52ID:Zv6if7ao
>>363
ありがとうございます
javascriptも勉強してみます
0365nobodyさん2009/07/06(月) 21:55:36ID:???
>>364
ffmpegを勉強するべし
0366nobodyさん2009/07/06(月) 22:19:16ID:???
>>364
・コンテンツごとのユーザーアップロード・コメント管理
→CMS全般・RDBMS

・動画コンテンツの再生制御
→主流はFlash。ただFlashだとツールが高いので、
  SilverLightを勉強するとよろし。FLVは使えないけど、
  WMVが使える。

CMSをPHPベースのものにすれば、カスタマイズする
ときにPHPが使えるよ。MT等、静的HTMLを出力する
タイプのCMSだったら、ベースがPerlでもPHPでのコン
テンツ開発ができる。
0367nobodyさん2009/07/07(火) 10:17:56ID:???
SilverLightてwin鯖以外でも動くの?
0368nobodyさん2009/07/07(火) 11:42:17ID:???
既存のCMSをカスタマイズするより、自分用のCMSを作った方が
早いしわかりやすい気がするのは僕だけですね
0369nobodyさん2009/07/07(火) 12:04:41ID:???
>>367
開発ツールと同期させたり、WMVストリーミングと組み合わせると
MSのサーバー製品が必要になる。けど、Flashみたいな使い方なら
Win鯖なくてもおk

>>368
お決まりのテンプレートが自分の手中にあればいいけど。
ゼロから開発ならCMS使ったほうがいいでしょ。製品によっては、
コーディングを最小限にしてテンプレートと設定だけで実現できるし。
0370nobodyさん2009/07/07(火) 12:09:35ID:YRT2t6kR
how much?
0371nobodyさん2009/07/07(火) 12:24:36ID:???
>>370
http://www.microsoft.com/japan/msdn/vstudio/Express/
Visual Web Developer Express edition + Silverlight Tools

http://www.eclipse4sl.org/update/
Eclipse + Eclipse4SL

FlashだとSuzukaとかあるけど、使いであるんだろうか。
0372nobodyさん2009/07/07(火) 12:59:47ID:2bX5okbx
mod_rewriteで

/hoge/fuga.php?id=5
で、
/hoge/fuga/id5.php
を表示させたいのですが(動的URLで静的ページを表示)

RewriteRule ^/hoge/fuga\.php?id=5$ /hoge/fuga/id5.php [L]
としても表示してくれません
記述方法が間違っているのでしょうか・・・
0373nobodyさん2009/07/07(火) 13:39:18ID:???
? はエスケープすべきだろう

あとRewriteCondは正しいかとか、そもそもRewriteLogはどうなってんのとか。
0374nobodyさん2009/07/07(火) 13:44:40ID:2bX5okbx
RewriteCondは設定していません。
?もエスケープしてみましたが同じでした。

RewriteLogはどこで確認すればよいのでしょうか?
0375nobodyさん2009/07/07(火) 13:50:34ID:???
えっ
0376nobodyさん2009/07/07(火) 21:30:03ID:q2UkOan/
PHPでセッションをブラウザを閉じるまでは無期限にする方法が
知りたいです。
session.cookie_lifetimeの値を0にすればブラウザを閉じるまで
セッションが継続することは分かったのですが、どうもこれだけ
ではダメなようです。
session.gc_maxlifetimeの値も関係しているようですが実際どうすれば
永続化できるかが分からないです。
0377nobodyさん2009/07/07(火) 21:37:39ID:???
えっ
0378nobodyさん2009/07/07(火) 22:41:45ID:???
セッションとブラウザの開け閉めはあまり関係ないんだが……
0379nobodyさん2009/07/07(火) 22:55:20ID:???
タイムアウト関係のパラメータが幾つかあった気がするけど、ユーザ側からしてみたら
いつまで経っても処理が完了しないページなんて糞以外の何者でもないよな。
0380nobodyさん2009/07/08(水) 11:39:13ID:???
>>376
>session.cookie_lifetimeの値を0にすればブラウザを閉じるまで
>セッションが継続する

session.cookie_lifetimeはクライアントが保持するセッションクッキーの生存期間。
session.gc_maxlifetimeサーバー側に保管されているセッションデータの生存期間。
※サーバーがsession.gc_maxlifetimeでごみ掃除するよう設定されていれば、だが。

なお、セッションは永続化すべきでない。
セッションハイジャックのリスクについて調べてみよう。
session_regenerate_idも忘れるな。

セッションハイジャックされても困らないようなものなら、単に寿命を長くしたクッキーに保管すれば良い。
0381nobodyさん2009/07/08(水) 17:40:20ID:Y5N6FZ0y
本当にくだらない質問で申し訳ないんだが
%%って何?
0382nobodyさん2009/07/08(水) 17:45:38ID:???
PHPの話?
0383nobodyさん2009/07/08(水) 17:58:01ID:Y5N6FZ0y
だと思うのですが…

拡張子phpのファイルで%%の表記を見たので気になりました
0384nobodyさん2009/07/08(水) 18:09:55ID:???
printf系関数で%%と書くと%を印字できる
0385nobodyさん2009/07/08(水) 18:29:58ID:Y5N6FZ0y
うーん…違う感じです

データベースとなにか関係がありそうな感じのコードになっているのですが…
伝わりにくい説明で申し訳ないです
0386nobodyさん2009/07/08(水) 18:54:20ID:???
DBならLIKEのパターンで%は使うけどな
0387nobodyさん2009/07/08(水) 19:01:09ID:???
今日、使ったよ。

mysql と php で、mysql 内の日付関数使うのに。
sql文の条件更新は sprintf でやっているから。
0388nobodyさん2009/07/08(水) 19:19:21ID:???
質問です。
mb_send_mailでメールを送り、メールアカウントが存在せずに送れなかった、
等の細かいエラーステータスを取得することはできますか?

もし、PEARやZend Framework等でできるのであれば、それでも構いません。
0389nobodyさん2009/07/08(水) 19:20:20ID:Y5N6FZ0y
>>386
ひょっとしてSQLの命令文てphpに直接書いて問題なく通るんですか?

>>387
日付関数とは違うと思います
なんというか…
DBから読んだ情報をそのまま表っぽく出力させていた感じでした
0390nobodyさん2009/07/08(水) 19:23:16ID:???
その部分のコードを書けば話が早かったのにね
0391nobodyさん2009/07/08(水) 19:25:35ID:Y5N6FZ0y
>>390
今それが出来る環境ではなかったので…
申し訳ないです
0392nobodyさん2009/07/08(水) 19:41:47ID:???
HTTPやSMTPなんて枯れたプロトコルの資料は腐るほど転がってるだろうに、
どうして目を通そうとは思わないんだろうな。
0393nobodyさん2009/07/08(水) 20:45:39ID:foGDI8Y6
<?php
$str1 = "a,b";

$str2 = "a";
$str3 = "b";


$arr1 = array( $str1 );
$arr2 = array( $str2 , $str3 );

echo var_dump( $arr1 );
echo var_dump( $arr2 );
?>

$arr1を$arr2のようにarrayするにはどうすればいいかアドバイスください
0394nobodyさん2009/07/08(水) 20:48:23ID:foGDI8Y6
>>393
結果
array(1) {
[0]=>
string(3) "a,b"
}

array(2) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
}
0395nobodyさん2009/07/08(水) 21:00:00ID:???
>>393
$arr1 = explode(',',$str1);
0396nobodyさん2009/07/08(水) 21:03:17ID:foGDI8Y6
>>395
できました
ありがとうございます
0397nobodyさん2009/07/08(水) 22:28:52ID:E0xRJmX/
windowsの5.3のpackageってどこにあるのでしょうか?
5.2.10はあるのですが、5.3が見つかりません。。
0398nobodyさん2009/07/09(木) 00:07:17ID:???
パッケージって?
0399nobodyさん2009/07/09(木) 01:30:42ID:???
PDOで、
 SELECT * from TableName where Cullum1=? and Cullum2=?
のようなクエリ文から、プリペアドステートメントを使いながら、レコード数(行数)を取得する方法はないでしょうか?

PDO::prepareを使うと、PDOStatement->rowCountから、SELECT文の行数を返さなくなってしまい、
PDO::queryを使うと、プレースホルダが使えないため、SQLインジェクションに対して弱くなってしまいます。

やはり、PDO::queryとmysql_real_escape_stringを使って、行数を取得するしかないでしょうか?
0400nobodyさん2009/07/09(木) 01:35:11ID:???
fastcgiで動かした場合にapacheモジュールと比べて制限ってありますか?
0401nobodyさん2009/07/09(木) 01:45:51ID:???
>>399
PDOStatement::rowCount() は 相当する PDOStatement オブジェクトによって
実行された 直近の DELETE, INSERT, UPDATE 文によって作用した行数を返します。

関連する PDOStatement によって実行された直近の SQL ステートメントが SELECT 文の場合、
いくつかのデータベースは文によって返された 行数を返すかも知れません。
しかしながら、 この振る舞いは全てのデータベースで保証されていません。
さまざまな場所で使用するアプリケーションでは、 これに頼ってはいけません。

http://www.php.net/manual/ja/pdostatement.rowcount.php


mysql で LIMIT なら calcfoundrows() かな。
全部持ってきてるなら php でカウントの方が早いんじゃね
0402nobodyさん2009/07/09(木) 13:20:43ID:???
>>401
なるほど。PDO::prepareを使って、countするって言う方法もあるんですね。

--------------------------------------------------
$TableName_sql = $dbh->prepare('SELECT * from TableName where Cullum1=:Cullum1 and Cullum2=:Cullum2');
$TableName_sql->bindParam(':Cullum1', $Cullum1);
$TableName_sql->bindParam(':Cullum2', $Cullum2);
$Cullum1 = 1;
$Cullum2 = 2;
$TableName_sql->execute();
$TableName_array = $TableName_sql->fetchAll(PDO::FETCH_ASSOC);
count($TableName_array);

//$TableName_arrayから欲しいデータをforeachなどで取得する
--------------------------------------------------

これで、行数を取得することができました。
クエリがlimit 0, 1であれば、fetchAllをfetchにしてもいいですね。
calcfoundrows()はググってみたのですが、よく分からなかったので(Zend Frameworkの関数?)この方法でやってみようと思います。
ありがとうございました。
0403nobodyさん2009/07/09(木) 13:34:46ID:zxpsDuOP
5.3.0のphp5isapi.dllってどこにあるのでしょうか?
0404nobodyさん2009/07/09(木) 14:03:01ID:???
組み込まれたからなくなった
0405nobodyさん2009/07/09(木) 15:34:47ID:???
PHP4でユニットテストするにはどうしたらいいですか。
phpunitはPHP5が必要でした。
0406nobodyさん2009/07/09(木) 15:44:15ID:???
simpletest
0407nobodyさん2009/07/09(木) 17:01:21ID:???
PHP4で、staticメソッド中からクラス名を調べることはできますか。
たとえば
class Foo {
 function f() {
  // ここでクラス名を取得したい
  $classname = current_class_name();
  echo $classname;
 }
}

Foo::F(); //=> Foo

のような感じです。
0408nobodyさん2009/07/09(木) 17:16:23ID:???
__CLASS__
0409nobodyさん2009/07/09(木) 18:18:54ID:???
>>408 ありがとうございました。
0410nobodyさん2009/07/09(木) 18:47:32ID:???
昨日 %% について聞いた者だけど
ひょっとしたら <? ?> の代わりに使っているのかもと思った
0411nobodyさん2009/07/09(木) 19:11:11ID:???
前後のコードを xxx とかで消す機転があればいいのだけど
0412nobodyさん2009/07/09(木) 19:53:16ID:???
置換して自前のテンプレートエンジンチックなことやってるんじゃないの?
まさかjspというオチじゃないとは思うが
0413nobodyさん2009/07/09(木) 20:49:52ID:???
>>410
<% %> じゃないのか?
0414nobodyさん2009/07/10(金) 02:50:37ID:HEyAts5C
ユーザーがフォームに入力した文章をテキストファイルに保存しようとしています

$data=$_POST["form"];
$time=date("Ymdhis");
$filename=$time.".txt";
$fh=fopen($filename,"w");
fwrite($fh, $data);

このような感じに書いたのですが、特定の字(表など)の前に勝手に\が追加されてしまいます
どうかご教示ください
0415nobodyさん2009/07/10(金) 02:53:47ID:???
>>414
的外れかもしれんが、
・PHPスクリプトの文字コード
・フォームが記述されているHTMLの<meta>で記述された文字コード設定
が一致しているかい?
0416nobodyさん2009/07/10(金) 02:57:01ID:???
magic_quoteでしょうが
0417nobodyさん2009/07/10(金) 06:48:06ID:i3ltcwt5
んだな
if(get_magic_quotes_gpc()){
$date = stripslashes($date);
}
0418nobodyさん2009/07/10(金) 12:46:45ID:???
sjis ソ \ で検索すべし
0419nobodyさん2009/07/10(金) 16:24:36ID:umZSlYAS
重複しないランダムIDを振りたいんだけど、どうするのが一般的でしょうか?
・あらかじめ大量のランダムIDを配列に入れるなりファイルに書いておいて順番に割り振る
・動的にrand()か何かを使って既に割り振ったかどうかを調べて、重複してればもう一回ランダム生成を繰り返し
他にいい方法はないでしょうか?

雰囲気としては無料HPとったときに勝手に割り振られるIDとか、
短縮URLのtinyurl.comみたいに動的な振り方を考えています
0420nobodyさん2009/07/10(金) 16:30:12ID:???
>>419
uniqid() ってあるけどユニークの保障がないので、重複をチェック。
0421nobodyさん2009/07/10(金) 16:55:26ID:???
正規表現で特定の文字列を無視して取得する方法ってあるのでしょうか?

$text = 'aaabcc';
preg_match('/aaa(.*?)c/',$text,$array);

とすると、$array[1]には「b」だけが入ります。
例えば「cの前にbがついていると無効」みたいな設定が出来て
「bc」のみを取得したいのですが、そう言う事って出来るのでしょうか?
04224212009/07/10(金) 16:56:37ID:68PKUhMI
すみません。sageのままでした
04234192009/07/10(金) 16:59:33ID:umZSlYAS
>>420
ありがとうございます、そういう関数があったんですね
0424nobodyさん2009/07/10(金) 17:47:31ID:???
>>421
何度読み返してもやりたいことが理解できなかったヨ...
0425nobodyさん2009/07/10(金) 18:07:20ID:???
>>424
同意

>>421はもっと具体的に今やりたい事を書いたほうがいい
0426nobodyさん2009/07/10(金) 18:20:09ID:???
先読みや後読みのことだと思うけど
04274212009/07/10(金) 19:32:39ID:68PKUhMI
正規表現で「この条件の時、この文字は読まない」
的な設定が出来るのかという質問です。

アルファベットの間を取得したいと思った時、
正規表現の文字区切りをどうすればいいか悩み、
「それなら無効にする条件があればいいのでは?」と思って質問しました。
0428nobodyさん2009/07/10(金) 19:42:14ID:???
その条件ってのが正規表現で書けるものか、そうでないものかの判断が付かないと
何もいえんだろう
0429nobodyさん2009/07/10(金) 22:14:22ID:6BztVKYK
ふと気になったのですが
$_FILES["hoge"]
のファイルのtypeだったり、sizeって
どっから読み取っているのですか?
例えばイメージファイルで、hoge.jpg
というファイルで、inputのタイプがfileのフォームから
ポストされたときに、一体どこから判断しているのでしょうか。
考えたのが、ファイルそのものにそういう情報が埋め込まれてる?
ということなんですが、これだと簡単に変更が可能なような気もするのです。
例えばsizeに関して言えば、本当は1GBのファイルだけど、
(埋め込まれている(仮 情報は)1MBにしてしまえば
間違って1MBとして判断して処理してしまう、ような感じです。
なのでこれはないような気がするのですが、それだとどこから判別しているのかなぁ、と。
よろしくお願いします
0430nobodyさん2009/07/10(金) 22:35:28ID:???
>>429
Content-Length
0431nobodyさん2009/07/10(金) 22:53:48ID:???
>>429
HTTPプロトコルを勉強しよう。
具体的にはPOSTという処理を行う際に、どのような
データがブラウザからサーバーに送られているか。

http://www.atmarkit.co.jp/fnetwork/rensai/netpro01/netpro01.html

ファイルつきでブラウザからサーバーにPOSTが行
われると、HTTPのBODYという欄に画像のバイナリ
データ(ファイル内容)そのものが記入される。

その記入方法がいろいろあって、ファイル種はブラ
ウザによって記述されたり、記述されなかったり。
430さんの仰る Content-Lengthも、multipart という
方法(form内の複数パラメータを送信するときによく
用いられる)では任意になる。

なので、基本的には、ブラウザからの通知があれば、
ブラウザからの通信メッセージでもらったファイル長さ、
ファイル種を適用する。

そうでない場合もあるし、ブラウザが嘘ついてることも
ある。なので、画像ファイルとして正しいか、画像ファ
イルとして掲載していいかなどを検査するには、一度
アップロードファイルを一時ディレクトリに展開してか
ら、GDなどでチェックするのがいいんじゃないだろか。
0432nobodyさん2009/07/10(金) 22:54:28ID:???
長くなってすまん。httpを勉強するにはこっちのサイトのが詳しいみたい。

http://www.studyinghttp.net/
0433nobodyさん2009/07/10(金) 23:10:33ID:3xLtfsMq
GD?
0434nobodyさん2009/07/10(金) 23:32:10ID:6BztVKYK
>>430,431-432
なるほど、リクエストメッセージに、
ファイルの概要みたいな情報も乗せることができて、サクサクっとやりとりする
みたいな感じでしょうか。
>その記入方法がいろいろあって、ファイル種はブラ
>ウザによって記述されたり、記述されなかったり。
たしかに、このままだとクライアント側のファイルやブラウザ次第になってしまいそうなので、
おっしゃられるように受け取った実際のファイルを
チェックすることが確実だとわかりました。
まだまだ理解が不足しているのでじっくり掲示してもらったサイトをみて
勉強しようとおもいます
ありがとうございました
0435nobodyさん2009/07/11(土) 03:08:18ID:ktZCccmb
ファイルが同じものかを判定し、違う場合はその行を出力しようと思ったのですが同じファイルを使っても全て違うと判定されてしまいます。
以下のコードで実行すると。

while(!feof($filepointer)){
$fileline = fgets($filepointer);
$fileline2 = fgets($filepointer2);
if(strcmp($fileline,$fileline2)!=0){
echo strcmp($fileline,$fileline2);
echo "[".$fileline."][".$fileline2."]";
}
}

1[abcdefg ][abcdefg ]
1[hijkl ][hijkl ]
1[mno ][mno ]
1[p ][p ]
1[q ][q ]

このようになります。
なにが原因なんでしょうか?
0436nobodyさん2009/07/11(土) 03:35:30ID:???
読み込んでるファイルは?
04374352009/07/11(土) 03:40:25ID:???
abcdefg
hijkl
mno
p
q

テキスト形式でこんな感じです。
0438nobodyさん2009/07/11(土) 03:42:15ID:???
再現できるだけのコード出してちょ
04394352009/07/11(土) 03:55:48ID:ktZCccmb
http://kissho.xii.jp/1/src/1jyou83535.zip
手頃なロダ探すのに時間がかかりました。
申し訳ない・・

アップローダーのCGIに手を加えて、アップロードしたファイルが所定のファイルと合致するかを調べる仕様にしたいです。
320〜360行辺りが手を加えた辺りです。
04404352009/07/11(土) 04:02:10ID:ktZCccmb
アップローダーのCGIに手を加えて、アップロードしたファイルが所定のファイルと合致するかを調べる仕様にしています。
違った場合にはその行を出力しています。

ですね、日本語おかしくてすみません
0441nobodyさん2009/07/11(土) 04:06:35ID:???
--log.txt--
abcdefg
hijkl
mno
p
q

--test.php--
<?php
$fp1=fopen('log.txt','r');
$fp2=fopen('log.txt','r');
while (!feof($fp1)) {
 $line1 = fgets($fp1);
 $line2 = fgets($fp2);
 if (strcmp($line1, $line2 ) != 0) {
  echo strcmp($line1, $line2);
  echo '[' . $line1 . '][' . $line2.']';
 }
}

で実行してみたけど同じと判定されるよ
04424352009/07/11(土) 04:12:15ID:ktZCccmb
色々試行錯誤して
$fileline = rtrim(fgets($filepointer));
$fileline2 = rtrim(fgets($filepointer2));
としたら期待した動作になりました。

勝手に入れられたスペースが怪しかったのかも・・・

こんな時間にありがとう御座いました。
0443nobodyさん2009/07/11(土) 09:19:13ID:???
>>442
ファイルの同一性を比較するならMD5のハッシュ値で比較する方が簡単だよ。
0444nobodyさん2009/07/11(土) 09:22:18ID:???
ああ、比較するだけじゃなかったね。
>>443は忘れてくれ。ヌマヌ
0445nobodyさん2009/07/11(土) 10:05:22ID:???
>>442
違うファイル読み込んでるんでしょ?
0446nobodyさん2009/07/11(土) 14:24:39ID:MrwFrSXN
フォームのボタンが押されたら、もしくはリンクをクリックしたら、
現在のファイルに記述されている関数を呼び出すことって出来ますか?

やりたいのは、ユーザーが操作したら、現在のページで作った変数の値のデータを
そのまま、自身のURLにPOSTして、現在のページを再読み込みしたいのです。
0447nobodyさん2009/07/11(土) 14:31:32ID:???
>>446
Hiddenに埋め込んで値を引き継ぐか、
セッション変数の中に値を保持するようにすればいい
0448nobodyさん2009/07/11(土) 15:33:50ID:MrwFrSXN
>>447
Hiddenしりませんでした、ありがとうございます。
0449nobodyさん2009/07/11(土) 16:05:06ID:???
【OS名】CentOS
【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
PHPで画像を表示するWebページを作っているのですが、質問があります。
目次のページを作り、見たい画像の一覧を作って、一覧から画像を選択すると
そこにジャンプし、ジャンプ先には画像とその画像が載っている本の表紙が表示されるという
ページを作りたいのですが、どうもうまくいきません。
考えているのは、目次のページのリンクでは、クエリ文字配列で、以下のように設定をし、
※擬似コードっぽくなってます。

# imgid 画像名を読み込み、格納

<a href="gazou.php?imgid=$imgid">$imgid</a>

ジャンプ先では、

# 表紙画像 hyousi.$imgid.jpg

<img src="$imgid.jpg">
<img src="hyousi.$imgid.jpg">

といった風に、目次ページの$imgidを読み込んで、
ジャンプ先の画像表示ページでは$imgidに沿った画像を表示させるというページを作りたいです。
どのようにすれば、目次ページでクエリ文字列とIDを設定でき、ジャンプ先のページに値を渡すことができるのでしょうか?

長文失礼致します。
0450nobodyさん2009/07/11(土) 16:07:09ID:BAvUHxXp
>>449
新参乙
まぁ>>1でも読んで落ち着けよ

動的に画像を読み込みたいってことね
0451nobodyさん2009/07/11(土) 16:07:13ID:EDbsXnZV
【OS名】CentOS
【PHPのバージョン】php5.26
【連携ソフトウェア】なし
【質問内容】
PHPで画像を表示するWebページを作っているのですが、質問があります。
目次のページを作り、見たい画像の一覧を作って、一覧から画像を選択すると
そこにジャンプし、ジャンプ先には画像とその画像が載っている本の表紙が表示されるという
ページを作りたいのですが、どうもうまくいきません。
考えているのは、目次のページのリンクでは、クエリ文字配列で、以下のように設定をし、
※擬似コードっぽくなってます。

# imgid 画像名を読み込み、格納

<a href="gazou.php?imgid=$imgid">$imgid</a>

ジャンプ先では、

# 表紙画像 hyousi.$imgid.jpg

<img src="$imgid.jpg">
<img src="hyousi.$imgid.jpg">

といった風に、目次ページの$imgidを読み込んで、
ジャンプ先の画像表示ページでは$imgidに沿った画像を表示させるというページを作りたいです。
どのようにすれば、目次ページでクエリ文字列とIDを設定でき、ジャンプ先のページに値を渡すことができるのでしょうか?

長文失礼致します。
0452nobodyさん2009/07/11(土) 16:07:56ID:EDbsXnZV
>>450
専ブラのsageチェック外すの忘れていました。
すいません。
0453nobodyさん2009/07/11(土) 16:11:56ID:BAvUHxXp
おkk

何か質問の意味がわかるようでわからない
目次で
<a href="image.php?imgId=1">1</a>
<a href="image.php?imgId=2">2</a>
<a href="image.php?imgId=3">3</a>
<a href="image.php?imgId=4">4</a>
<a href="image.php?imgId=5">5</a>

表示で
<img src="<?php echo $imgid; ?>.jpg" />
<img src="hyousi.<?php echo $imgid; ?>.jpg" />
じゃだめなん?
0454nobodyさん2009/07/11(土) 16:22:16ID:EDbsXnZV
>>453
レスありがとうございます。質問分かりにくくてすいません。

画像ファイルの数が多いため、目次ページでは
テキストに別途まとめた画像ファイル名の一覧を読み込んで、
それを単純に出力表示させるようにしています。
なので、目次ページで

<a href="image.php?imgId=1">1</a>
<a href="image.php?imgId=2">2</a>
番号続く

という風に書くことができません。
所有しているPHPの教本では、クエリ文字列を使って値を渡すのは
formじゃないと無理的な事が書かれているので…。

このWebページみたいに、ttp://php.thm.jp/index.php
ひとつのPHPでコンテンツだけ色々変わるという風にしたいのですが。
0455nobodyさん2009/07/11(土) 16:57:04ID:???
<?php
  $dir = "/home/erosuke/images/";
  $mode = $_GET["mode"];

  if(strcmp($mode,"index")){
   目次HTML出力コード
  }

  if(strcmp($mode,"showimage")){
    if( $_GET["ファイル名"] があったら){
      画像データ送信
    }else{
      エラー処理。ブランク画像送るとかでも
    }
  }

よくわからんけどこんなの?
クエリ文字列の渡し方は、URL欄のパラメータと
して表示されるGETという方法がある。

POSTでも、画像参照元のHTMLにForm書くだけ
だからそれほど難しくないぞ。

つーかHTTPは勉強しとこうぜ。

http://www.studyinghttp.net/
0456nobodyさん2009/07/11(土) 17:08:21ID:EDbsXnZV
>>455
レス、ありがとうございます。
参考にしてやってみます。
Webプログラミングは最近始めたもので、HTTPの知識皆無で申し訳ありません。
参考になるWebサイトの紹介もありがとうございます。
また何かありましたら書き込みをしたいと思います。
0457nobodyさん2009/07/11(土) 17:16:51ID:MrwFrSXN
また質問させていただきます。

今ローカルで動くかテストして、アップロードしてみたんですけど
サーバ上では上手く動かないみたいです(途中から何も出力されなくなりました)

file_get_contents
unserialize
mb_strimwidth
mb_convert_encoding

こういった関数を呼び出している部分です、このような関数は対応していないというか
許可していないレンタルサーバって多いのでしょうか?
0458nobodyさん2009/07/11(土) 17:19:44ID:BAvUHxXp
>>457
何も表示されないのはエラー処理がOFFになってるだけ
あとレン鯖に入ってるPHPのバージョンとかも確認汁
0459nobodyさん2009/07/11(土) 18:45:45ID:???
>457
PHPのバージョン情報とかは絶対レン鯖のFAQだからまずそっち調べろカス
0460nobodyさん2009/07/11(土) 21:41:38ID:EDbsXnZV
>>455
すいません。
>>455を参考にページを作っているのですが、上手くいきません。
クエリ文字配列で、表示するWebページに飛ぶことができません。

http://s1.muryo-de.etowns.net/~seancovey/

こういった動作をphpでできるようにしたいのですが、上手くいきませんでした。

http://s1.muryo-de.etowns.net/~seancovey/sample/
0461nobodyさん2009/07/11(土) 23:25:33ID:EDbsXnZV
すいません。できました。
皆さん、ありがとうございました。
0462nobodyさん2009/07/12(日) 05:19:16ID:wh3eRKvy
if($hoge) echo 1;
displayerrorOFFでこういう場合issetを使う必要はあるのでしょうか?
見えなくても警告が出ないように書いておいた方が速度も早いのでしょうか?
よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています