【PHP】くだらねぇ質問はここに書き込みやがれpart8
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/08/08(月) 01:18:55ID:54u1h4+Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
0133nobodyさん
2005/08/11(木) 01:20:27ID:???---Frame.php---
<?php
$data = $_GET['data'];
echo <<<EOD
。。。略
<frame src="PHP1.php">
<frame src="PHP2.php?data=${data}">
EOD;
?>
0134nobodyさん
2005/08/11(木) 01:40:21ID:???つーか、どうやってchmodでファイルを作るのか教わりたい。
fopenじゃないのか。その部分のスクリプト晒してみ?
0135120
2005/08/11(木) 01:55:47ID:???えーと、関数にしてる。
ってか、 act.st の汎用ライブラリを借りた。
// ファイル作成
function create_file( $File ){
if( file_exists( $File ) ){
return FALSE;
} else {
touch( $File );
chmod( $File , 0606 );
}
}
ローカルだとこれで出来ちまうんだが・・・。
0136nobodyさん
2005/08/11(木) 02:01:19ID:???0137120
2005/08/11(木) 02:08:57ID:???な、なんだってー(AA略
吊ってくる。
ディレクトリ・ファイルが作成出来ないのはセーフモードとか関係ない気がしてきた。
・・・鯖の設定とか?全くわからん。寝る。
答えてくれたヤシ�dクス。
0138134
2005/08/11(木) 02:10:46ID:???半分寝てるっていうか寝るわ。がんばれ。
// ファイル作成
function create_file( $File )
{
$crf = fopen($File, "a+");
if(!$crf) {
return FALSE;
}
return TRUE;
}
0139nobodyさん
2005/08/11(木) 03:11:54ID:???初歩的な質問で申し訳ないんですけど、
includeとクラスのインスタンス作って使うのとどう違うんでしょうか?
0140nobodyさん
2005/08/11(木) 03:16:19ID:???0141nobodyさん
2005/08/11(木) 03:23:37ID:???作りたい場所のルートディレクトリはパーミッション777にしてるんだよな?
もしくは、所有者がPHP実行者になってるのかどうか。
例えば、
/var/www/html/blog/200508/11.dat なら、
/var/www/html/blog ディレクトリが777か、
もしくは、PHPを実行するユーザーによって作成されたディレクトリである必要があるぞ。
0144nobodyさん
2005/08/11(木) 07:33:29ID:???それは違わなくなくなくなくないのだよ。
0145nobodyさん
2005/08/11(木) 08:17:49ID:V306QgIe0146nobodyさん
2005/08/11(木) 08:20:30ID:V306QgIe>>139
日本語とoopをもう少し勉強してきて下さいな。
0147nobodyさん
2005/08/11(木) 09:21:15ID:???質問が意味を成してないからなぁ。何が聞きたいのか全くわからない。
エスパー的回答をするとすれば…
include を用いるのと クラス を用いるのの違いは、
変数&関数のスコープが違う。
クラスファイルだってincludeして使うんですけど・・・
# requireでもいいけどさぁ
0148139
2005/08/11(木) 10:10:10ID:???スマソ
>>147
エスパーさん、ありがとう。なんとなくわかったかも。
Javaのimportとは役割が違うんですね
includeは呼び出し元ファイルに直接くっつけるイメージなのかな
0149nobodyさん
2005/08/11(木) 10:22:10ID:???0150nobodyさん
2005/08/11(木) 10:26:23ID:???include文のところにincludeしたファイルの内容が展開されると考えていいと思われ。
他の言語知ってるなら、まずマニュアル参照。
PHPのマニュアル程読みやすいマニュアルはあんまりないと思うよ。
0151nobodyさん
2005/08/11(木) 10:30:20ID:???まあいいや。本人納得したようだし。
0152nobodyさん
2005/08/11(木) 10:36:40ID:???include=内部エラーおきてもスキップして動き続ける
require=内部エラーおきたら警告出してとまる
くらいで
0153nobodyさん
2005/08/11(木) 10:40:33ID:???Newを宣言して呼び起こさないといけない。
includeは150のいうとおり、ソースファイルがくっつくって感じ。
使う上での違いをいえば、
インスタンスはNew宣言文が必要で
includeは不要。
0155nobodyさん
2005/08/11(木) 15:08:34ID:???を参考に下記のようにしたのですが、PHP 4.2.3では取得してprint_r($values);すると日本語が文字化けしてしまいます。
回避することは可能でしょうか?
// 外部RSSを簡単に読み込んで出力するルーチン
$RSSURL = "http://www3.asahi.com/rss/index.rdf";
$buff = "";$fp = fopen($RSSURL,"r");while ( !feof($fp) ) { $buff .= fgets($fp,4096);
}
fclose($fp);
// パーサ作成$parser = xml_parser_create();
// パーサオプションを指定
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
// パース実行、連想配列にパース結果代入
xml_parse_into_struct($parser,$buff,$values,$idx); // パーサ開放xml_parser_free($parser);
print_r($values); // 配列を出力してみる。
0156nobodyさん
2005/08/11(木) 15:26:26ID:???そのRSSがUTFみたいなので、とりあえずprint_r($values)の前に下記を入れてみてはどうだろう。
echo '<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8"></HEAD>';
0157モンモ
2005/08/11(木) 15:51:55ID:nF0gNBis編集することが出来ません。波形も、1分10秒までしか表示されていないのです。
どうすればいいのでしょうか?
0158nobodyさん
2005/08/11(木) 16:00:08ID:???0160nobodyさん
2005/08/11(木) 17:19:33ID:???ブラウザのエンコーディングを変えれば化けないで表示されるよね?
IEだったら
表示 → エンコード → 適当に色々と
上の方法で正常に表示されるのならば、
php.ini か httpd.conf か <META> か charset を適切に指定すればOK。
0161nobodyさん
2005/08/11(木) 18:40:18ID:???<font size=-1 color=#999999>total <?echo $total;?><br>
昨 <?echo $yesterday;?> 今 <?echo $today;?><br><br>
<? include("dcount.php"); ?>
<font size=-1 color=#999999>total <?echo $total;?><br>
昨 <?echo $yesterday;?> 今 <?echo $today;?><br>
--------------
のように同じものを2つ続けて書くとエラーになるのはなぜなんでしょうか?
0162nobodyさん
2005/08/11(木) 18:48:58ID:???0164161
2005/08/11(木) 19:13:31ID:???ttp://php.s3.to/counter/#dcount
ここのdcount.phpというアクセスカウンタを使っているのですが、
携帯とPCで別のカウントを取りたいと思い
dcount.php dcount_pc.php のように2つのphpを用意して
<? includeさせようとしたところ、
上段のphpは上手く表示されるのですが、下段が「Fatal error」というようなエラーが
サーバ内のパスと共に表示され、動作しません。
データファイルのパスなどの間違いはありません。
php内の$total $yesterday $today などの変数を書き替えれば良いのかと思いましたが、
やはり駄目でした。
同系統のphpを同一ページ内にincludeさせて表示させる事は不可能なのでしょうか?
0165nobodyさん
2005/08/11(木) 19:21:27ID:???0166nobodyさん
2005/08/11(木) 20:25:24ID:???>同系統のphpを同一ページ内にincludeさせて表示させる事は不可能なのでしょうか?
必ずしも不可能ではなくてincludeするファイルの内容次第。
dcount.phpの中でouthtmlという関数が定義されているんで、2回includeすると
この関数が2重定義になってしまうためエラーになっていると思われ。
これを修正すれば。。。という話の前に今回の場合、2回includeする必要はないのでは?
2つ目のincludeを削除して希望通りに動作するはず。
0168nobodyさん
2005/08/11(木) 23:32:36ID:???以下のHTMLが利きません。
<input type="file" name="image">
(iモード、EZWEBともに)
このタグのように携帯電話内の画像を選択するような
ソースはないのでしょうか?
0169nobodyさん
2005/08/12(金) 00:20:43ID:???ここの「MINIりすと」みたいなPHPスクリプト探してるんですがありますか?
0170nobodyさん
2005/08/12(金) 00:21:21ID:???フォームの内容が直前の入力がすべて残っているようにするにはどうすればよいのでしょうか?
今まで<INPUT type='button' onclick='history.back()>のボタンで戻ったときは
直前の入力内容を覚えているものと思っていたのですが、
入力項目が多数あるページを作ってみたところsubmit直後に戻った際に
入力した内容が表示されない項目があったりするのに気づきました。
(初期値valueはしていません。)
必ず直前の入力内容を戻ったときに復元させるにはセッション変数などに格納し、
それを初期値として設定しておく等の処置が必要なのでしょうか?
0173nobodyさん
2005/08/12(金) 09:04:25ID:x1qvDSzz0174nobodyさん
2005/08/12(金) 09:13:03ID:???phpの関数には無いけど、pear( ttp://pear.php.net )のHTML_Table,やHTML_Table_Matrixでできるよ
0175nobodyさん
2005/08/12(金) 09:17:24ID:???そういう動きをしたいなら普通はsubmitされた先でセッション登録だと思う。
history.back() じゃないならhiddenでもいいよね。
#個人的にはhistory.back()を仕様になんかしない方がいいと思うけど
ちなみに、ブラウザバックで戻ったときに入力値を覚えてるのは、
ブラウザがそういうおせっかいをしているだけだと思う。
0178nobodyさん
2005/08/12(金) 11:05:18ID:h+1D0YJb>ちなみに、ブラウザバックで戻ったときに入力値を覚えてるのは、
>ブラウザがそういうおせっかいをしているだけだと思う。
これって昔から不思議に思ってた。どういう仕様なんだろう?
postした値がブラウザのキャッシュに残るのかな?
部分的に消えてたりするし。
話それてスマソ
0179155
2005/08/12(金) 13:46:38ID:???いえIEとfirefoxで日本語で使われそうなEUC,sJIS,JIS,utf-8,ISO-2022-jp,等を試しましたが文字化けしています。
0180170
2005/08/12(金) 16:24:28ID:???レスありがとうございます。
セッション変数を使う方向でいろいろ試してみます。
ところでhistory.back()を多用するのは問題があるのでしょうか?
0181nobodyさん
2005/08/12(金) 16:42:10ID:???よく考えると、history.back()したときは、
サーバーに処理がこないんじゃないか?
セッションにデータを埋め込もうがなにしようが。
あれ?セッション使うとhistory.back()効かなくならなかったっけ?
0182軟式PHP
2005/08/12(金) 17:24:33ID:???0183nobodyさん
2005/08/12(金) 17:26:22ID:???0184nobodyさん
2005/08/12(金) 17:43:29ID:???こんなんでどう?
$Month=8;
$Year=2005;
$Ts = mktime(0,0,0,$Month,1,$Year,-1);
$getsumatsu = date("t",$Ts);
0186170
2005/08/12(金) 20:14:21ID:???そういえばそうかも・・・。
history.back()ではなくlocation.href='input.php'でボタンを設置する必要があるようですね。
ブラウザの戻るボタンを使われたときは・・・シラネorz。
session_cache_limiterはprivate, must-revalidateに設定してるんですが、
正直session_cache_limiterの動作をあまり理解していないのでよくわかりません。
(POSTでデータを受け渡しするページで「戻る」ときの有効期限エラーを消すための方法としてどこかで見つけただけなので・・・。)
リファレンス本とか買えば細かく説明があるのかな・・・?
0187nobodyさん
2005/08/12(金) 21:09:25ID:???ググって見たですのがちょっと見つかりません。
例
http://www.stackasterisk.jp/tech/php/searchAction.do?cid=28#86
グレーのソースのコラムの部分
// 現在ログインしているユーザがアドミンかどうかを調べる。
$sql = "select is_admin from user_table where id=$sUID";
$is_admin = $db->getOneValue($sql);<<<ここに出てきてます
「->」とはどういう意味なんでしょうか?
0188nobodyさん
2005/08/12(金) 21:33:50ID:???マニュアルにあるはずだが・・・矢印演算子とか言ったかな
0189nobodyさん
2005/08/12(金) 21:55:21ID:???http://php.s3.to/man/language.oop5.static.html
この辺でしょうか?
なんだか、いきなり難し過ぎて全く理解不能です。
オブジェクト、クラス、インスタンス、その辺はいつになっても踏み込めないんですよ。
0190nobodyさん
2005/08/12(金) 22:08:47ID:???その辺詳しく説明してるHPとかないものだろうか。
0191nobodyさん
2005/08/12(金) 22:21:21ID:???ttp://www.php.net/manual/ja/language.oop.php
phpでオブジェクトを使った説明をしているサイトはあんまり無いんじゃないかなぁ。
「php オブジェクト」でググって地道に探すか、
phpから一旦離れて(言語に関係無く)純粋にオブジェクト指向を勉強するか、
pearあたりにゴロゴロ転がってるクラスで書かれたソースを見て見回るか。。
0192nobodyさん
2005/08/12(金) 22:30:09ID:???よく、タイ焼きの型とタイ焼きに例えて説明されることがあるけど判ったような気がする、
ぐらいで終わると思う。
こんな感じで自分でサンプルを書いて動かしながら勉強していくのがてっとり早いんぢゃないかな。
(ちなみにこのサンプルはあまりよろしくないんだけど)
PHP5でマシになったとはいえ、PHPのクラス機能は貧弱なので、あまりクラスのメリットは
実感としてわかないかもしれないけどね。
class MyClass {
var$MyName;
function SetName($name) {
$this->MyName = $name;
}
}
$instance1 = new MyClass;
$instance2 = new MyClass;
$instance1->SetName('インスタンス1');
$instance2->SetName('インスタンス2');
echo $instance1->MyName . '<br>';
echo $instance2->MyName . '<br>';
0193nobodyさん
2005/08/12(金) 22:56:03ID:???0194nobodyさん
2005/08/12(金) 23:21:14ID:???↓
色々調べる
↓
なんとなくわかったかも
↓
てきとーに使ってみるが、普通の関数とどう違う?
↓
もうちょい調べてみる
↓
なるほど便利じゃねーか!
↓
多重継承できないことを知る
↓
オブジェクト指向って結局面倒じゃね? ←今ここ
0196194
2005/08/12(金) 23:45:28ID:???オブジェクト指向とはなんぞやと、必死に理解しようとしてるんだよ
継承するメリットすら、あるのか判らなくなってきた
つまり、まだまだ理解できていないんだ、と思うのだ
0197nobodyさん
2005/08/12(金) 23:55:18ID:???PHPにおいて「0」と「--」って等しいことになってるんでしょうか?
ただハイフン2個並べたつもりがマイナスとマイナスってことになってんのかな?
if (0 == "--") print "kita-------------";
これでkita----が出力されるって・・・orz。
0198nobodyさん
2005/08/12(金) 23:56:21ID:???調べても画像に関してはGDというライブラリでの作画ばかりで
調べ方が悪いのでしょうか?
既存のpngファイルを表示したいだけなのですが・・・
0200nobodyさん
2005/08/12(金) 23:59:36ID:Dcm/2S4D一言で言うと「設計思想」。
コーディングは2次的なものだろ。
オブジェクト指向はスピードやメモリとトレードオフで保守の簡便さ、再利用性の向上を与える。
保守も再利用もする必要のない書き捨てコードをオブジェクト指向化するのは趣味の領域。
あ、PHPならまだそのレベルに達してないから無理すんなw
0201nobodyさん
2005/08/13(土) 00:06:57ID:???コーディングスピードが向上することもある
0204198
2005/08/13(土) 00:20:03ID:???画像扱ったことなくて
どうやってPHPでひょうじすんだべ、と。
それでまず画像だけ表示するのを作ろうと思ったんだが、
いきなり詰まってるのです。
0206nobodyさん
2005/08/13(土) 00:23:55ID:H8OS7Q3n変数を初期化するとすると、
↓のうち、どちらが良いでしょうか?
$var = NULL;
$var = "";
その他にいい初期化方法などあったら教えてください
0210198
2005/08/13(土) 00:46:40ID:???やっぱり直接出力しかない?
0211nobodyさん
2005/08/13(土) 00:50:23ID:???条件に応じてファイル名を変えたいとかだったら単純に
<img src="{$hoge}.png">
でいいような。
何がしたいんだ?
0212nobodyさん
2005/08/13(土) 00:51:51ID:???どういう事をやりたいのかよく分かんないけど、
1. htmlを動的にphpで出力 -> <img src="<?= $filename; ?>">
2. 静的htmlからphpで画像を出力 -> html <img src="image.php?file=〜">
image.phpの中で header('Content-type: image/png"); readfile($filename);
readfile部分は他のファイル関数でも可。
0214198
2005/08/13(土) 00:55:55ID:???読んで出力までする関数があるんですか
phpってすげえと思った
0216nobodyさん
2005/08/13(土) 01:57:59ID:???別にphpでなくても表示するだけならこんだけでできるぞ。
#!/bin/sh
echo "Content-Type: image/png"
echo
cat "/path/to/image.png"
まぁ、phpでも表示だけなら特別な関数を使わなくってもいいってこと。
0217nobodyさん
2005/08/13(土) 02:43:42ID:???0218nobodyさん
2005/08/13(土) 08:59:08ID:???不正なアクセスを防ぐべく、パスワードを一定回数以上間違えたら
そのIPアドレスからの接続を一定時間拒絶するような処理は可能でしょうか?
あるいはログインページの時点でセッションを開始しておき、
セッション変数に間違えた回数をカウントさせて、
上限を超えたらログインできなくさせる、というやり方でもできそうな気がするんですが、
ブラウザを終了させるだけでまたトライできるってのがどうも不安が・・・。
何かいい方法はないものでしょうか。
0219218
2005/08/13(土) 09:14:59ID:???1. ユーザー名・パスワードを入力フォームに入力
2. DBに照合し1件ヒットしたらログイン処理・それ以外ならログイン画面にリダイレクト
3. セッション開始・セッション変数にユーザー名を格納・トップページにリダイレクト
こんな感じです。
よろしくお願いします。
0220nobodyさん
2005/08/13(土) 09:28:36ID:???0221nobodyさん
2005/08/13(土) 09:29:08ID:???セッションはクライアント依存だから、信用できないクライアントが
前提ならそういう目的に使うべきじゃない。
サーバー側で bad list に期限付きのエントリを保存するとかしないと。
認証失敗のたびにIPアドレスを bad list に追加し、bad list に一定回数以上
出現するIPアドレスならばログイン拒否とか。
0222nobodyさん
2005/08/13(土) 11:19:58ID:???PHPってなんでこんなに速いの?
perlが遅くてとりあえずphp化したら同じ物を4つ動かしても(仕事で使う集計もの)それ以上に速い気がする
0224nobodyさん
2005/08/13(土) 13:37:45ID:???phpのバージョンをアップデートする時に
rpm -Fvh [filename]
のような記述をみかけましたがこの[filename]の箇所は既存の.rpmをかくのでしょうか?
それとも目的の新しいバージョンの.rpmでしょうか?
0226nobodyさん
2005/08/13(土) 13:48:02ID:???後者。質問する前にman rpmしような。
っていうかパッケージは入手済みなのか?
ともかくスレ違いだよ。
0227nobodyさん
2005/08/13(土) 15:06:43ID:???レスありがとうございました、rpmはこれからrpmfind.netでもいってこうかと。
スレちがいかなーと思いつつもphpのインスコネタだったんで…。誘導先は自宅鯖あたりですか?
0228nobodyさん
2005/08/13(土) 16:43:42ID:???ところが、もろもろの事情から先方の指定(先方がftpに入れちゃうとこ)で運用する事になった。
このままだと、結果的にphpのソースそのまま渡すのと同じことになっちまうんですが、こんなとき皆さんはどうしてますか?
もっとも、漏れのスパゲッティなソースなど誰が見てもわかるわけない、というか解る気も無くすけどなw
プログラムのコアの部分だけ、別ファイルにして、別の鯖に置いちゃうとかあり?
0229nobodyさん
2005/08/13(土) 17:01:37ID:???ソースを暗号化したいんですが、できますか?
仕事なので冷やかしの回答は遠慮願います。
って感じに質問しないと。
0232nobodyさん
2005/08/13(土) 17:30:26ID:???いや、そういう仕事してるわけじゃないから知らないけど、
パッケージのソフト買ってソースがついてきたことってないし。
■ このスレッドは過去ログ倉庫に格納されています