【PHP】くだらねぇ質問はここに書き込みやがれpart9
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/03(土) 11:53:32ID:7OO4C5e5ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0415nobodyさん
2005/09/09(金) 21:19:37ID:???CGIというのは特定の言語を指すわけじゃなくて、仕組みを表す言葉。
ブラウザでアクセスした時に次のような感じになるのだけど、
ブラウザ -> Webサーバ -> 外部プログラム実行 -> Webサーバ -> ブラウザ
このWebサーバと外部プログラムとのやり取りの部分がCGIと思ってよいかと。(gateway - 出入り口)
この「外部」という単語がポイントで、これが「内部、Webサーバに組み込み」だと、
モジュールと言ったりする。(module - 機能単位、パーツ、SAPIとも言う)
CGI形式の場合、外部とのやり取りが決まり事(これがCGI)を守っていれば、
外部のプログラムが何の言語で書かれていようが構わない。
PHPの場合は、
・CGI形式(CGIを使える各種Webサーバで共通)
・モジュール形式(Webサーバ内部に組み込めるように各Webサーバごとに存在)
・コマンドラインから使うためのもの
の3種類がある。
0416nobodyさん
2005/09/09(金) 21:21:25ID:???基本各DB用に用意された関数でエスケープ。こいつらはバイナリセーフ。
エラー処理せずそのまま突っ込む。
>た入力画面から渡された値はhtmlspecialcharsとstripslashesで処理したあとでDBに格納
教科書的にはHTMLのエスケープは出力直前てのが正しい。これはXSS対策で、DBの保護とは
関係ない。あとmagic_quotesならstripslashesは意味なし。
0417nobodyさん
2005/09/09(金) 21:22:28ID:???○magic_quotesオフなら
0418nobodyさん
2005/09/09(金) 21:30:49ID:???>PHPはrpmじゃなくてソースからインストールしたんじゃないの
>[root@ns root]# php -v
>でバージョンが表示される
[root@ns conf]# php -v
PHP Warning: Unknown(): Unable to load dynamic library './pgsql.so' - ./pgsql.s
o: cannot open shared object file: No such file or directory in Unknown on line
0
PHP 4.3.2 (cli) (built: Jan 14 2004 14:03:54)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
> >>399の件なんだがhttpd.confの設定はどうなってる
え・・・え〜と何行目を見ればよいのか分からないのですが・・・
0419nobodyさん
2005/09/09(金) 21:36:19ID:6XNF9M7t出力結果は
apache2handler
でした。
一応ソース
<?echo php_sapi_name();?>
-----------------------------
それと関連してるのかわからないが
phpinfoの出力結果
Server API Apache 2.0 Handler
一応ソース
<? phpinfo() ?>
という結果はでたのだが意味がいまいち分からない
これはPHPとして動いているといえるのか
自分はCGIとしてではなくPHPとして動かしたい
0420nobodyさん
2005/09/09(金) 21:40:31ID:???stripslashesはaddslashes()の間違いじゃなくて?
つかaddslashes()、stripslashes()って使わんね
>>419
うごいてるうごいてる
0422nobodyさん
2005/09/09(金) 21:57:04ID:???ttp://jp2.php.net/manual/ja/function.php-sapi-name.php
0423nobodyさん
2005/09/09(金) 22:12:30ID:6XNF9M7tソース
<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
echo "You are using CGI PHP\n";
} else {
echo "You are not using CGI PHP\n";
}
出力結果
You are not using CGI PHP
Excite訳
あなたはCGI PHPを使用していません。
PHPで動いているでFA?
0426nobodyさん
2005/09/10(土) 00:01:40ID:???その辺、あやふやなまま、現在に至ってしまった。
入力チェックしないまま平気で稼働してるプログラムがいくつもあります。
一応、defaultに落ちたら全部print_rして漏れにメールが飛ぶようにしてるんだけど、変なイタズラって、手間もかかるからなのか、運がいいのか知らんけど、全然告知メールは飛んでこないな。
入力値のチェックについては、部分的に詳しく書いてあるサイトはあっても、プログラムの流れの中でどういう対策をしたらよいか、って解りやすい例を挙げてるとこって見た事ない。
もし、しっかりまとまってるサイトがあったら漏れもしっかり勉強したいです。
0427nobodyさん
2005/09/10(土) 00:54:43ID:gX4RDOln0429nobodyさん
2005/09/10(土) 01:05:18ID:???脳が沸いてるようだから相当しっかり勉強したほうがいいよ
>>427
パスワードというのは、脳内情報は他人に盗めないという前提に
基づいてる。調べるには推論と実験しかないね。
実験したらここで報告してくれ
0430nobodyさん
2005/09/10(土) 01:20:21ID:???jpgの後ろに、文字がついてるけどどうしてですか。
ttp://www.peppynet.com/shop/shop.php?g=151&id=045056
0432nobodyさん
2005/09/10(土) 02:35:43ID:???仕組みは知らないけど、目的は呼び出された時点のUNIXTIMEを付加して
ブラウザの画像のキャッシュが無効になるようにしてる。
DBの商品リストから動的生成してると、キャッシュが邪魔になることがあるからね。
まあ常にクライアント側のキャッシュが働かないというのも、良し悪しだが。
(サイト設計上、注意すべきポイント)
0433nobodyさん
2005/09/10(土) 03:37:03ID:???PHPでは解像度を調べるような変数がないと聞きました。
それでもPHPでやりたい場合、
どのようにしたらできるかわかる方いらっしゃいませんか?
0434nobodyさん
2005/09/10(土) 03:58:31ID:???主要なブラウザはそういう情報を送ってこないので、
JavaScriptを使って値を取得して、それをサーバに送るようにするしか無いだろうね。
「JavaScript 解像度」でググれば取得の仕方が分かるから、
その情報をリンクに付け足して(動的にリンクを変化させる事になるので、この部分もJavaScriptを使う事になる)、サーバにリクエストさせる。
一回取得すればいいので、その情報をセッションに保持するなり、解像度ごとにディレクトリを切るなり、お好きなように。
0436nobodyさん
2005/09/10(土) 05:53:04ID:???処理に時間がかかる場合なら尚更便利だと思いますが、そのようなことをPHPで
実現できませんでしょうか?
0437nobodyさん
2005/09/10(土) 07:40:24ID:???0438nobodyさん
2005/09/10(土) 07:52:42ID:???Apache2の設定で出来ないこともないが...
やり方は調べて味噌。phpの出力をssiの処理に再度通しなおす。
0439nobodyさん
2005/09/10(土) 08:05:10ID:???この辺使えば出来ると思うけど
http://www.php.net/manual/ja/ref.outcontrol.php
あとWebサーバにもバッファリング機能がなかったっけ?
それのコントロールも出来ないと希望する細かい操作は無理かも。
0441nobodyさん
2005/09/10(土) 09:02:48ID:???0442nobodyさん
2005/09/10(土) 09:04:23ID:???0443nobodyさん
2005/09/10(土) 09:05:12ID:???http://jp2.php.net/manual/ja/language.operators.errorcontrol.php
0444nobodyさん
2005/09/10(土) 10:43:05ID:???0445nobodyさん
2005/09/10(土) 10:54:23ID:???0446444
2005/09/10(土) 10:57:20ID:???http://php.s3.to/man/reserved.variables.html
を見ても載っていないのですが、その情報はどこに載っている物なのでしょうか?
0447nobodyさん
2005/09/10(土) 11:01:55ID:???そのページの上の方にあるリンクで「CGI 1.1 specification」ってやつのページで、下の方に書いてある。
0448444
2005/09/10(土) 15:07:53ID:???$_SERVER['HTTP_VIA'] でやってみたのですが、
PHP Notice: Undefined index: HTTP_VIA
というエラーが出てしまいます。
0450nobodyさん
2005/09/10(土) 23:59:18ID:???リクエストヘッダの中に実際にVia:の行がない限り$_SERVERにはセットされない。
if (isset($_SERVER['HTTP_VIA'])
{
// この中だけで使ってください
}
0451名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:06:28ID:???0452名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:14:41ID:???ヒントはアドバイザリロック
0453名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:15:20ID:???0454451
2005/09/11(日) 00:18:31ID:???よくわからんが、ロックを抜けれることがある、ってことか?
だが一応書いておく織れ。
0455名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:04:53ID:???0456名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:50:55ID:???0457名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:54:29ID:???0458名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:01:23ID:???こういうチャート
http://chart.finance.livedoor.com/icon/pic/ID00540520050911106002c3S.png
0459名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:04:31ID:???0460名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:08:00ID:???0461名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:56:05ID:XVWHhBde関数化(?)すればいいのだろうか?と思ったのはいいが、
出来ずに疲れ果ててきたので、
助けてくださひ…
0462名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:02:31ID:???pearにそういうパッケージがあるよ。
ttp://pear.php.net/manual/ja/package.html.php
デザイン(デザイナー)との連携が面倒になるのでオイラは使ってないけども。
0463名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:21:55ID:XVWHhBdeいろんな箇所で使ってるから、
別ファイルで、セレクトボックスを作って、
使うときに呼び出そうかな…と。
多分>>461の教えてくれた中に流用できるのはあるような気はするんだけど…。
ちなみに今は、ページのヘッダー部分は、header.php
フッダー部分はfooter.phpてして、
都度、インクルードしてる。
けど、関数化にしたら、インクルードファイルは1個でよくてって事になると思ってるんだけど、
どうなんだろう??
0464名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:28:41ID:???出してもらった方が話が早いんでない?
0465名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:31:31ID:???selectをechoする関数作ればいいだけなんじゃ?
それじゃ不味い理由があるなら、それを出してもらわなきゃ何も言えない。
>けど、関数化にしたら、インクルードファイルは1個でよくてって事になると思ってるんだけど、
思ったら実行してみれば?
0466名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:16:05ID:???HTMLで、テーブルの右に画像を載せたいのですが、
画像がテーブルの下の方に行ってしまいます。
<TABLE>ずらずら</TABLE>
<TD>画像</TD>
みたいな感じにしたら、
テーブル
次のテーブル 画像
みたいになってしまいました。
0467466
2005/09/11(日) 22:17:17ID:???ごめんなさい
0468名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:18:32ID:???呼び出し
フォーム();
0469nobodyさん
2005/09/12(月) 00:07:59ID:???問1.
PHPプログラマ募集(若干名)の求人広告はどこに出すのが正解ですか?
イーマーキュリー以外で教えてください。
0470nobodyさん
2005/09/12(月) 00:18:01ID:???0471nobodyさん
2005/09/12(月) 00:21:33ID:???0472nobodyさん
2005/09/12(月) 00:26:17ID:???こっち行け
http://pc8.2ch.net/test/read.cgi/php/1111115228/
0473nobodyさん
2005/09/12(月) 01:10:58ID:+jMhSqhoheader.php、footer.php共に、
<?php
print ("<html>");
:
?>
<?php
print ("</html>");
?>
と書いて、実際は、include ("../common/header.php");とかinclude ("../common/footer.php");
ってしてたのです。
でも、この方法でやってくと、共通で使いたいものはその都度ファイル作んなきゃいけなくて、
そうするとどんどんファイルが増えて大変な事に(-_-)
なので、関数化しよう!と思ったのです。
で、あれからちょっと進歩しました。
作るセレクトボックス、どのページでも同じモノなのですが、
動的な為、Select_box($hoge);とし、
function Select_box($hoge){
print (" <select>");
:
};
として、実際呼び出しているPHPで、Select_box($hoge);としたら、出ました!!
今までも、同じようにやってたのですが、何故出来なかったのかが謎ですが…。
あと、今回の場合は引数が必要だったのですが、必要ない場合でも、functionでもいいのですか?
戻り値も要らなくても、function?
他の言語では、functionとsubを使い分けてたような気がしたのですが…
長くなって、ごめんなさい。
0474nobodyさん
2005/09/12(月) 01:19:56ID:???そういや求人関係、PHP-userに流しては?とか別のML作るとか、
そんなの求人サイトあるから別にMLに流さんでもとか、
昔そんな話がPHP-userで出てたな。
サイトだとjobmailとかか?
俺はソフト屋じゃないのでどの辺で情報見てる人が多いのかしらんが。
0476nobodyさん
2005/09/12(月) 01:33:04ID:???このことも正直に言ったうえで、顧客も満足した上でお金を出してくれてんですが、実際こういうのは現場でよくあることなの?
※楽する為にphp使ったことしかなくて、DBとか絡めたものは初めてなもんで。
0477nobodyさん
2005/09/12(月) 01:43:12ID:???0478nobodyさん
2005/09/12(月) 02:17:32ID:???4桁、2桁、2桁…に分割してからprintfって方法しかない?
0479nobodyさん
2005/09/12(月) 02:26:22ID:???元のデータのフォーマットが不明だが、適当に年月日時分秒の順だとして
sscanf($data, "%4s%2s%2s%2s%2s%2s", $yr, $mon, $day, $hr, $min, $sec);
echo "$yr/$mon/$day $hr:$min:$sec";
0480nobodyさん
2005/09/12(月) 02:56:00ID:???おおお!ありがとー。
出来ました〜。
フォーマット、%04d%02d%02d…ってしてたんだけど、
"0"が省略されちゃうみたいだったんで、%04s…にしました〜。
パディング文字の指定は、単一 引用符(')で出来るとか書いてあったんだけど、
とりあえず表示だけだし、いいかな、と。
0481nobodyさん
2005/09/12(月) 03:40:08ID:???どれ推奨?
0482nobodyさん
2005/09/12(月) 05:18:12ID:???0483nobodyさん
2005/09/12(月) 06:40:12ID:???どんな場面に使うのかよく分かりません。
具体的にどのようなことで使うのか教えてください。
0484nobodyさん
2005/09/12(月) 08:35:12ID:???きちんとした書面で納品書と検収書を交わしておくべき。
契約書で不具合対応保証期間が明記されていれば尚よし。
0486nobodyさん
2005/09/12(月) 13:54:11ID:910Lq8vb前のページに戻ったら「警告 : ページの有効期限切れ」と
言われるんですけど、これ回避するにはどうやったらいいんですか?
0487nobodyさん
2005/09/12(月) 14:07:45ID:???セッションを使った場合、ここに書いてあるような理由により、
ページのキャッシュが利用できない場合がある。
ttp://jp.php.net/manual/ja/function.session-cache-limiter.php
それぞれの指定の時の挙動は、HTTP関係のRFCを見れば分かるかと。
0488nobodyさん
2005/09/12(月) 14:42:04ID:W0v1jbPa全体の行数を取得→配列化したテキストデータを for を使って取り出す
という方法しかないのでしょうか?
先頭からの場合は、fopen()を使ってファイルポインタを下に移動すれば
最小限のメモリで動作させられるのですが。
0489nobodyさん
2005/09/12(月) 14:44:26ID:???0490nobodyさん
2005/09/12(月) 14:55:51ID:???これを出ないようにしたいのですが、phpのソースコードレベルで出来る対策を教えてください。
0491nobodyさん
2005/09/12(月) 15:04:32ID:???error_reporting()かphp.iniのログレベルの設定を適切に変更する。
一番いいのは、未定義の変数を使いそうな部分でisset()で未定義かどうかチェックして、適切な値を代入する。
0493nobodyさん
2005/09/12(月) 15:37:08ID:???少々トリッキーだがこんな方法がある
$fp = fopen("hoge.log", "r");
fseek($fp, 8000, SEEK_END); //必要な行数が取得できそうな適当な位置に移動(なくても可)
$log = array();
do{
$line = $fgets($fp);
if ($line){ //最終行の後がヌルになったりするのでその対策
$count = array_unshift($log, $line);
if ($count > 10){ //取得したい行数
array_pop($log);
}
}
}while(!feof($fp));
fclose($fp);
$logに新しい順にログが入ってる。
0494nobodyさん
2005/09/12(月) 16:06:20ID:???これなんかが参考になる。
ttp://www.din.or.jp/~ohzaki/perl.htm#File_Tail
0495nobodyさん
2005/09/12(月) 18:41:57ID:???0496nobodyさん
2005/09/12(月) 19:01:59ID:???print "<table width="600" bordercolor="#EF9C00" border="1">\n";
が、通りません。なにがいけないんでしょうか?
0497nobodyさん
2005/09/12(月) 19:09:52ID:???" の中で " を使うときは以下のように " の前に \ を付ける必要がある(エスケープ処理)。
print "<table width=\"600\" bordercolor=\"#EF9C00\" border=\"1\">\n";
または以下のように " ではなく ' で囲んでもいい。
' で囲ったときは \n は使えないんで \n だけ別途 " で囲んで連結していることに注意。
print '<table width="600" bordercolor="#EF9C00" border="1">' . "\n";
" で囲むのと ' で囲むのは意味が異なるので、PHP マニュアルを参照して勉強してね。
0498nobodyさん
2005/09/12(月) 19:12:13ID:???0500nobodyさん
2005/09/12(月) 19:16:12ID:???0501nobodyさん
2005/09/12(月) 20:03:14ID:???お手合わせ願えますか?
0502nobodyさん
2005/09/12(月) 20:14:12ID:???0503nobodyさん
2005/09/12(月) 20:33:49ID:???いいい
ううう
えええ
等のように、書いたaa.txt(↑コレは4つですが、100個と仮定して)を5つずつ取り出してtableで表示させたいんです。
$data = file("aa.txt");
echo "<table><tr>";
$i=0;
foreach ($data as $bb) {
$i = $i+5;
if($data[$i]==$bb){
echo "</tr><tr>";
}
echo "<td>$bb</td>";
}
echo "</tr></table>";
これを試したんですが、全部横一列表示されてしまいます。
どうしたら上手くいくでしょうか?
0505nobodyさん
2005/09/12(月) 21:11:12ID:???$i = $i+5;これじゃ5、10、15ってなりますね。。。
$data[$i]==$bbになるはずが無かったんですね。
ありがとうございました。
0507nobodyさん
2005/09/12(月) 21:11:56ID:???0508nobodyさん
2005/09/12(月) 21:29:57ID:???最初から$iに5を入れておいて$i = $i+5;をecho "</tr><tr>";の下に持っていったらできました!
0509nobodyさん
2005/09/12(月) 21:42:42ID:???forやwhileのほうが分かりやすくて良いと思うんだが、やはり慣れなんだろうか。
0510nobodyさん
2005/09/12(月) 21:49:35ID:???ぶっちゃけると、どっち使っても良い。
処理により使い分ければいいよ。
foreach() を使うと、楽できる場合も多々あるし、
無理に foreach() を使うようにコーディングする必要もない。
0511nobodyさん
2005/09/12(月) 22:00:22ID:???0512nobodyさん
2005/09/12(月) 23:33:07ID:???ずっと前に書いたスクリプトを見直してたら
foreach (array(0,1,2,3,4,5) as $i) {
とか書いてあった・・・orz
0513nobodyさん
2005/09/12(月) 23:42:21ID:???慣れてくればけっこう便利。
0514nobodyさん
2005/09/12(月) 23:43:04ID:???0515nobodyさん
2005/09/13(火) 00:00:17ID:???時々ビックリするくらい笑えるコード書いてたりするんだよな。
function array_add($a, $b) {
return array_push($a, $b);
}
書いたのの誰だよ!俺だorz
なんか恥ずかしい想い出みたいだよね。
■ このスレッドは過去ログ倉庫に格納されています