【PHP】下らねぇ質問はここに書き込みやがれ 61
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/12/19(水) 03:33:51ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0593nobodyさん
2008/01/01(火) 17:29:15ID:F2c2JMdrクッキーを与えるドメインとは別のドメインを書いても
別のドメインでそのクッキーを使えるようにはならないのでしょうか?
やってみたけど上手くいかないので、やり方が悪いのか根本的に出来ないのかを知りたいです。
0594nobodyさん
2008/01/01(火) 17:31:31ID:???$result = mysql_query($sql, $link) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
この記述でクエリの送信に失敗しました と出るのですが
記述が間違っているんでしょうか?
0595nobodyさん
2008/01/01(火) 17:43:33ID:???多分だけど、それが可能だとしたら他のドメインのcookieを書き換える事が可能ということに
なるので、ブラウザ側が許可しない気がする。
0596nobodyさん
2008/01/01(火) 17:49:21ID:???mysql は使ってないから、詳しくは知らないけど、これで調べれば少しは判るかも。
http://jp.php.net/manual/ja/function.mysql-error.php
0597nobodyさん
2008/01/01(火) 18:02:26ID:???その関数を使ってみたところ
単純にデータベース接続が完了してなかったみたいでしたorz
くだらない質問にありがとうございました。
0598nobodyさん
2008/01/01(火) 19:52:12ID:gtyeLFx+setcookie("pass", $pass,time()+60*60*24*30);
$pass = $_COOKIE["pass"];
if($pass == abc){BBSを表示}
を使って、簡単なログイン制限を掛けてるのですが、
この処理のあるbbs.phpを直接表示した場合、IE7.0でもFireFoxでも全く問題なく処理されるのですが、
bbs.phpをIE7.0でインラインフレームを使い入れ子にした場合、
フォームの処理を行うとクッキーがクリアされて、またpassの入力画面に戻ってしまいます。
FireFoxでは問題ないようなのですが、インラインフレームの利用で何か特別な問題が起こることはあるのでしょうか?
0599nobodyさん
2008/01/01(火) 21:46:01ID:???同じPCから複数のユーザとしてログインする必要がないなら、 setcookieで path とか domain も指定すれば
cookieが共有される気がする。
0600nobodyさん
2008/01/01(火) 22:55:23ID:???class Foo {
static Map table = new HashMap();
static { // static initializer
table.put("<", "lt");
table.put(">", "gt");
table.put("&", "amp");
table.put("¥"", "quot");
}
}
0602598
2008/01/01(火) 23:04:36ID:gtyeLFx+ここでも仕様が違うんですね。
他の方法を試してみます、どもでした。
0603nobodyさん
2008/01/01(火) 23:30:56ID:???ハァ?何これフザケテンノ?
http://php.liukang.com/manual/ja/tokens.php
ぐぐってみたら同じこと思った人がいたようで
http://p0t.jp/mt/archives/2006/08/paamayim_nekudo.html
0604nobodyさん
2008/01/01(火) 23:43:58ID:???0605nobodyさん
2008/01/02(水) 03:58:58ID:xlZOpAZW投稿フォーム改造して画像レスを送ってみたら
アップロードされちゃったんですが見ることができません。
これをHTMLやヘッダに手を加えて画像レスが見れる状態のHTMLを送って
もらうことはできますでしょうか?
PHPを使ってる掲示板なのでここで質問してみました
よろしくお願いします
0606nobodyさん
2008/01/02(水) 04:25:51ID:zb153+EZみたいな可変する文字列のn番目に文字列"\n"を挿入する場合、
substrで切り出してシコシコ成形する以外にスマートな方法ありませんか?
0607nobodyさん
2008/01/02(水) 04:44:42ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0608nobodyさん
2008/01/02(水) 06:24:31ID:XSzMXv90$obj->NAMAE で名前カラムのデータが求められるとします(カラム名は必ず大文字)
で、上記の呼び出しを関数化したとき
function yobidashi($name){
$name=strtoupper($name);
return $obj->name;
}
としても上手くいきません
$obj->の後に続くのはカラム名でなければいけないからなんですが、
どういう書き方にしたらいいのかわかりません
どなたかアドバイスお願いします
0610nobodyさん
2008/01/02(水) 07:34:16ID:???0611nobodyさん
2008/01/02(水) 07:51:34ID:???0612nobodyさん
2008/01/02(水) 08:26:14ID:???いまいち状況がワカラン中でレスをするが・・・・
return $obj->$name;
これでどう?
関数呼び出す時は呼び出し方の例も記載すると
レスし易いと思う
0616nobodyさん
2008/01/02(水) 10:06:19ID:???evalを使うしか思いつかない。
http://jp.php.net/manual/ja/function.eval.php
return eval('return $obj->'.$name.';');
ってかんじかな。
0617nobodyさん
2008/01/02(水) 10:12:07ID:???単純に$obj->$nameでOKでした すみません、クダ質で…
evalとかglobalとか調べてついでに覚えます
ほんとにありがとう
0619nobodyさん
2008/01/02(水) 12:44:05ID:???0620nobodyさん
2008/01/02(水) 12:52:33ID:???0621nobodyさん
2008/01/02(水) 14:12:54ID:???0623nobodyさん
2008/01/02(水) 19:05:49ID:???Windowsでの話ならその通り。あくまで中身がPerlだったらの話だけど。
別にActive Perlじゃなくてもいいけど、定番だし普通これかな。
Linuxがどうかは知らない。
んでPHPと関係ないんで、次からはスレちゃんと選んでね。
0624nobodyさん
2008/01/02(水) 19:27:01ID:???0625nobodyさん
2008/01/02(水) 20:42:30ID:lW+cmhhePHPとPerlを同じものと勘違いしていました すみません
0626nobodyさん
2008/01/02(水) 21:55:46ID:XSzMXv900627nobodyさん
2008/01/02(水) 22:08:15ID:???0628nobodyさん
2008/01/02(水) 22:08:22ID:???想定用途 : 得ろサイトの直リンクのURLを文字列として持っていて、
それがまだ取得可能かどうか調べたい
答え : getimagesize() で充分。
getimagesize(そのURL)、あるいはファイルを取得してから、getimagesize()
0629nobodyさん
2008/01/02(水) 22:14:46ID:???掲示板を作ってみようと思うんだけど、クラス……というかオブジェクト指向がいまいち理解出来ない。
やっぱし、これくらい使いこなせないと掲示板自作するのは早いかな。
0630626
2008/01/02(水) 22:19:01ID:XSzMXv90ありがとう
if(file_exists("http://jp2.php.net/images/php_snow.gif")){
echo "ファイルあったよ";
}else{
echo "ファイルなかった";
}
というのを試したんだけど、「なかった」と言われます
マシン内の画像で試してもそういわれます。絶対存在してるのに、、
何が原因でしょうか?
php5 apache2 winXPでやっています
0632nobodyさん
2008/01/02(水) 22:37:22ID:???0633nobodyさん
2008/01/02(水) 22:38:43ID:???bbsなんてそんなの理解せんでもできるよ
ただ後のメンテを考えるなら覚えた方が良いかも
あとから直すのなんてめんどくさくてやってられねーとなる
0634nobodyさん
2008/01/02(水) 22:39:17ID:???0637629
2008/01/02(水) 22:54:29ID:???荷がだいぶ軽くなったよ。
いろいろ、PHPの参考書とかネット上のOOP関連の文献を読み漁ってみたけど、やっぱりモヤッとしてた。
何にせよ、ありがとう。
0638nobodyさん
2008/01/02(水) 23:10:10ID:???クラスとオブジェクト指向っていうのはそれとはまた違ったものなの?
0639nobodyさん
2008/01/02(水) 23:12:39ID:???実際に自分でコードを書いてみて体で体験して初めて感覚がつかめる。
その感覚こそが大事。つまりオナニーだけしていてはダメで、
実際に女に入れてみなければ真理はつかめないということ。
そして真理をつかんだなら、ぜひオウム真理教の再興を祈念し、入信することを勧めたい。
0641nobodyさん
2008/01/02(水) 23:18:30ID:???関数でハンドルを取る奴があるとするだろ?
例としてファイルハンドルとしようか
fread(file,num)
↑をOOPではハンドルを主体にして呼ぶ↓という感じ
file->fread(num)
メソッドに操作対象を渡すか、操作対象からメソッドを呼ぶかという違い
0642nobodyさん
2008/01/02(水) 23:19:38ID:???class と function はまったく別物。
http://www.php.net/manual/ja/language.oop5.basic.php
0643nobodyさん
2008/01/02(水) 23:25:06ID:EFH6C9iGクラスについておぼえときます・・・
0644nobodyさん
2008/01/03(木) 01:26:52ID:PuYJW96Tをechoした時
"aaa","bbb","ccc"
と表示させたいのですが、forを使う以外の方法はありませんでしょうか?
0648nobodyさん
2008/01/03(木) 02:08:57ID:???0649nobodyさん
2008/01/03(木) 04:45:11ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0650nobodyさん
2008/01/03(木) 08:23:14ID:9iX7ULguここにある?filename=**で**をincludeするのが危険なのはわかったんだけど、こういうのも危なかったりする?
$text = htmlspecialchars($_GET['text']);
$textfile= './txt/'.$text.'.txt';
readfile($textfile);
0651nobodyさん
2008/01/03(木) 09:11:37ID:???text=../../hogehoge みたいなアクセスも出来てしまう気がする。
ディレクトリ指定が不要なら basenameを使うべき。
http://jp2.php.net/manual/ja/function.basename.php
あとファイル名に対して htmlspecialchars を使うのに、意味があるのかちょっと疑問。
0652nobodyさん
2008/01/03(木) 09:15:33ID:???ためしにtext=../../hogehoge
htmlspecialchartは元ソースに$textがなかったときに{$text}がみつかりませんでした。って表示してるからだ。ごめん消し忘れた。
0653650
2008/01/03(木) 09:21:41ID:9iX7ULguためしにこのphpファイルと同じディレクトリにaaa.txtを置いて?text=../aaa ってやってもWarning: readfile(./txt/../aaa.txt) [function.readfile]: failed to open stream: No such file or directory in C:\www\aaa.php on line *。になる。
0654650
2008/01/03(木) 09:25:59ID:9iX7ULgu0655650
2008/01/03(木) 09:47:57ID:9iX7ULguできればディレクトリ指定でファイルを読み込みたいんだけど、どうにかならないものですかね・・・
0656650
2008/01/03(木) 09:56:17ID:9iX7ULguごめん俺書き込みすぎだ。
0657nobodyさん
2008/01/03(木) 10:16:03ID:???0658nobodyさん
2008/01/03(木) 10:27:05ID:???$textfile = './txt/'.$page.'.txt';
}else{
$textfile= './txt/error.txt';
}
こんなかんじになりました。大丈夫かな・・・
>>651と>>657ありがとう。
0659626
2008/01/03(木) 10:33:10ID:uA4WBKbOお手隙の方、意見いただけると嬉しいです お願いします
0660nobodyさん
2008/01/03(木) 10:40:55ID:???>>628 >>632 が不憫すぎる。
原因は
http://jp.php.net/manual/ja/function.file-exists.php
http://jp.php.net/manual/ja/wrappers.http.php
0661nobodyさん
2008/01/03(木) 14:38:25ID:sD9SHXAaこれだと、セッションを破棄・ブラウザを閉じるかしない限り、
下記のように、他のページへ一旦移動してまた戻ってくることができますよね
ログイン画面→ID・PASS認証・セッション発行→専用ページ→他の見知らぬサイト→専用ページ
見知らぬサイト へ行ったら
専用ページへ直接入れないようにしてしまいたいんですがどういう手があるんでしょうか。
ちなみにセッション管理でやりたいんですが。。
0662nobodyさん
2008/01/03(木) 15:45:13ID:???0663nobodyさん
2008/01/03(木) 16:03:13ID:???0664nobodyさん
2008/01/03(木) 16:16:18ID:???「気がする」じゃ、何の説得力もない。
学生ならバカ学生で済むが、社会人でそんな安い了見で仕事しているなら死んだ方がいい。
お前は人間の屑。
0666>>661
2008/01/03(木) 16:21:10ID:???0667nobodyさん
2008/01/03(木) 16:25:54ID:???0668nobodyさん
2008/01/03(木) 16:26:17ID:???0669nobodyさん
2008/01/03(木) 16:28:33ID:EPFlyde6ユーザーがフォームよりデータをサーバに送信後、サーバ側での処理についてご質問させていただきます。
1.ユーザーから送られてきたデータと、ログファイルの最終行のデータを比べる
2.1のデータがお互い違うデータであれば書き込み
このような処理を思いつきました。しかし、これだと2回ログファイルを開くことになるのですが、どなたか
もっとこうしたほうがいいっていうのがありましたらご指摘アドバイスお願いいたします。
0670>>661
2008/01/03(木) 16:29:57ID:???一番重要なこと忘れてました;
専用ページは複数あって、その橋渡しにセッションを使っているんです。
セキュリティ面でセッションがいいかと思って。。
0671!omikuji !dama
2008/01/03(木) 16:31:50ID:???・セッションデータに時間情報を入れて、専用ページではその時間情報ではじく。
3秒ルールみたいなものだから厳密には要求通りじゃないが、
セッションハンドラを使えば簡単に実装できる。
・専用ページ内での遷移は全てAjaxで行い、ブラウザの履歴・キャッシュを無意味なものにする
めんどくさい
・そもそも外のページに行ってもいいじゃないか。
重要なデータが漏れるのなら、サイト自体の作りに問題がある
0672nobodyさん
2008/01/03(木) 16:35:44ID:???http://www.phppro.jp/school/phpschool/vol22/2
ここが参考になると思います
0674nobodyさん
2008/01/03(木) 16:54:28ID:+JPyHTOV本に付いてきたサンプルを実行させた所、
-------------------------------------------
Fatal error: Uncaught SoapFault exception: [SOAP-ENV:Client]
We encountered an error at our end while processing your request.
Please try again in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\
amazon.php:22 Stack trace: #0 [internal function]:
SoapClient->__call('KeywordSearchRe...', Array) #1
C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php(22):
SoapClient->KeywordSearchRequest(Array)
#2 {main} thrown in C:\Program Files\Apache Group\Apache2\htdocs\php\day06-2\amazon.php on line 22
-------------------------------------------
この様なエラーが出てしまい実行できませんでした。
自分でエラーの出てる箇所を追ってはみたのですが、どうしても分からず困っています。
どうかよろしくお願いします。
ソースはこれです
http://ranobe.com/up/src/up248796.zip
0675nobodyさん
2008/01/03(木) 16:55:06ID:???リンクのみでキーの受け渡しを行えば多分いけるはず
あとついでだからsession_regenerate_idで
毎回sessionid変えてやればいいんでない?
0676nobodyさん
2008/01/03(木) 17:09:46ID:???21行目でエラー返ってるのに
22行目で変換しようとしてexception発生してるんじゃないかな
http://jp.php.net/manual/ja/function.is-soap-fault.php
0677>>661
2008/01/03(木) 17:16:44ID:sD9SHXAaユーザ側が下手しなければセキュリティ的にも一番理想的かもしれない
ちょっと試してみます
0678nobodyさん
2008/01/03(木) 17:16:53ID:???0679nobodyさん
2008/01/03(木) 17:17:02ID:???ぐぐると色々出てくる、なんなんだろうね。
http://www.google.co.jp/search?hl=ja&q=amazon+soap+We+encountered+an+error&btnG=%E6%A4%9C%E7%B4%A2&lr=
0680674
2008/01/03(木) 17:52:55ID:+JPyHTOV色々とありがとうございます。参考になります。
もうちょい調べて頑張ってみます。
>>678
確か無くても実行できるはずなので、プログラム側の問題かと思います・・
0681626
2008/01/03(木) 18:21:01ID:???気づかずすみませんでした
いまさらですが、getimagesizeを使わせてもらいました。
が、上手くいきません
とりあえずもうしばらく自分でがんばってみます ありがとうございました
0682nobodyさん
2008/01/03(木) 18:23:33ID:???それだとさ
セッションIDの含まれたURLを保存しといただけで
直接専用ページに入れるんじゃ?
セキュリティ敵にもよくないんでは
0683nobodyさん
2008/01/03(木) 18:34:04ID:???自分でやろうとしているところを邪魔して悪いが、うまくいくっぽい。XP/PHP5 実行はコマンドライン。
<?php
checkValidImageUrl('http://jp.php.net/images/php_snow.gif');
checkValidImageUrl('http://jp.php.net/images/php_snow2.gif');
function checkValidImageUrl($url) {
if (@getimagesize($url)) {
echo "$url is valid.\n";
} else {
echo "$url is unvalid.\n";
}
}
?>
0684nobodyさん
2008/01/03(木) 18:35:43ID:???0685nobodyさん
2008/01/03(木) 18:39:27ID:???0686nobodyさん
2008/01/03(木) 18:45:42ID:???file_exists は stat ファミリで、http/httpsはstatをサポートしてないから、onにしても動かないはず。
0687>>661
2008/01/03(木) 19:02:25ID:sD9SHXAaそうなんですか
もうなんかどーにもorz
0688nobodyさん
2008/01/03(木) 19:05:42ID:???過去のセッションを適切に破棄してやればそれは無い
破棄しなくても可能な時間はセッションの有効期限内のみだし
php5.1以降であれば
session_regenerate_id(true);
とすることで自動的に破棄される
あとはリロード時のURLチェック等入れればいける
0689nobodyさん
2008/01/03(木) 19:07:22ID:???0690>>661
2008/01/03(木) 19:22:21ID:sD9SHXAaphpゲームを開発してて、戻るボタンでNPCにまた話しかけたりとか無くしたいんです。
(でもこれってSESSION使えば二重処理とか発生することはないなそういえば・・・。)
とりあえず戻るボタン押したり、他のサイト行ったら
ページが表示されないようにできればこちらは万々歳ですから
>>675使ってみます。
■ このスレッドは過去ログ倉庫に格納されています