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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0653nobodyさん2011/03/08(火) 03:40:19.36ID:???
学校の課題?
06546402011/03/08(火) 03:44:08.71ID:mJwrvUdm
>>652
すみません、なんとなくわかりました

ほんとに失礼で申し訳ないですが、迷惑になっているなら
キーワードとかヒントになりそうなことを教えていただけたら
あとは自分で検索して頑張ります…joinとかarrayとかだけでもとてもヒントになりました
ありがとうございます
06556402011/03/08(火) 03:47:04.82ID:5ZtbGR1H
>>653
いいえ、
本を読んだこと以外はphpは触ったこともないのですが、
とりあえず実践すれば見につくかと思いまして、
無謀だとわかってて何回かあきらめたんですけど、だんだんいいところまではできてきたので…
ほんとすみません
0656nobodyさん2011/03/08(火) 03:58:12.72ID:???
>mysqlにある商品データをカテゴリ別に表示させるようにしたいです
>>647を元にこれをするためのSQLは書けるの?
06576402011/03/08(火) 04:05:30.60ID:5ZtbGR1H
大変勝手で本当にすみません
>>656さんのSQLは書けるので、joinとかarrayで調べてたどってるうちにできちゃいました…
たくさん迷惑かけてしまってすみませんでした…
またあきらめるところでした
優しすぎて涙が出そうです
迷惑をおかけしてすみませんでした
本当にありがとうございます
0658nobodyさん2011/03/08(火) 04:43:33.70ID:???
できたならいいんだよ。
一歩進めてよかったね
0659nobodyさん2011/03/08(火) 05:49:28.91ID:???
ひとりで解決する能力があるやつは進歩するよ
WebProgスレに変なの湧いてるがああいうのは末期
0660nobodyさん2011/03/08(火) 05:56:27.44ID:Iy+AtfWH
質問です。
各々のブラウザ設定などではなく、
phpでサイト自体にリファラーの無効をできないでしょうか。

リファラーを偽装だとかクッションページを挟んで隠すだとかはできますが、
完全に無効にするにはどうすればいいでしょうか。

0661nobodyさん2011/03/08(火) 05:58:21.98ID:???
無効の意味がわからん
ブラウザでリファラ情報持っててPHPがそれ拾うだけだから
拾わなければ無効と一緒じゃね?
0662nobodyさん2011/03/08(火) 06:06:51.95ID:???
ブラウザが勝手に送るから無理
0663nobodyさん2011/03/08(火) 06:19:03.43ID:Iy+AtfWH
なるほど。考えてみればそりゃそうですね。
マヌケな質問してしまいました。

ってことは、リファラを隠したり、偽装したりする
プログラムもそれを表示するブラウザも様々なので、
結果が違う可能性があるってことですよね?
0664nobodyさん2011/03/08(火) 06:44:12.17ID:???
> ってことは、リファラを隠したり、偽装したりする
> プログラムもそれを表示するブラウザも様々なので、
> 結果が違う可能性があるってことですよね?

HTTPヘッダーについて勉強しておいで
ブラウザがサーバにリクエストするときにリファラ情報を一緒に送出してるわけ
なので設定やアドオンなんかでリファラ情報を送らないように制御できるブラウザもあ
受け取った結果が違うというのは当たり前のこと
リンクからきたかブラウザのお気に入りからきたかによってすでに違うわけだから
0665nobodyさん2011/03/08(火) 07:16:56.77ID:Iy+AtfWH
ありがとうございます。
感謝いたします。
色々と調べてまたきます。
0666nobodyさん2011/03/08(火) 08:50:54.45ID:???
いいってことよ
0667nobodyさん2011/03/08(火) 11:20:46.31ID:XI937334
管理者専用画面へリダイレクトしたいんだが
ログインできてもページが表示されない

$login_url = "http://{$_SERVER['HTTP_HOST']}/aaa/aaa.php";
header("Location:$login_url");
exit;

教えてくだしあ
0668nobodyさん2011/03/08(火) 11:26:27.36ID:???
何が間違ってるか当然自分で調べたんだろ?
その経過くらい書けよ

なんで丸投げなんだよ

そんな質問方法、入試カンニングと同じじゃねーかよ
0669nobodyさん2011/03/08(火) 11:32:34.10ID:???
思いっきり騒ぎまくって>>667を逮捕させるべき
0670nobodyさん2011/03/08(火) 12:01:36.03ID:XI937334
>>668
丸投げしてすまない
調べても記述が同じで混乱してた
自分でもっと調べてみる。
0671nobodyさん2011/03/08(火) 12:41:35.16ID:???
IDの数だけスクワットしたら許してやる
0672nobodyさん2011/03/08(火) 14:19:08.55ID:???
\n\nがないからじゃない?
0673nobodyさん2011/03/08(火) 17:29:37.39ID:XI937334
ごめん スクワットしてた

>>672
優しいな
0674nobodyさん2011/03/08(火) 19:40:03.48ID:wdecqthy
echo ("0801" == 801)を実行すると1が表示されますが、
文字列を整数にキャストすると、0で始まっていても10進で返ってくると思っていいんですか?
0675nobodyさん2011/03/08(火) 19:47:23.90ID:???
当たり前だろ
0676nobodyさん2011/03/08(火) 20:24:31.33ID:???
16進数は先頭に0x
"0x12"==18
0677nobodyさん2011/03/08(火) 20:30:09.03ID:???
8進数の話だろj/k
0678nobodyさん2011/03/08(火) 20:30:15.92ID:???
当たり前だろなんて切り捨てるのは
phpのキャストに関する挙動は基礎の基礎と考えているか、
8進数の可能性を考えなかったかのどちらかかなぁ。

ともあれ、内部で使用しているstrtodは8進数を理解しないので、0から始まる文字列は10進数とみなされるよ
06796742011/03/08(火) 21:19:30.25ID:???
>>675-678
ありがとうございます。
C言語の方のstrtod、調べてみます。
0680nobodyさん2011/03/09(水) 00:27:55.83ID:D42Z/9Qb
xammp+php でphpWebサイト作ったのですが
これを一時的xsammpでWeb公開するにはどうすればいいのですか?
またphpをweb公開するにはどうすればいいのですか?
0681nobodyさん2011/03/09(水) 00:34:27.86ID:???
サーバをたてる。

ネットの仕組みが分からないうちは、手を出さないほうがいいよ
0682nobodyさん2011/03/09(水) 00:38:21.48ID:???
xamppのスペルうろ覚えすぎワロタ
0683nobodyさん2011/03/09(水) 00:59:57.00ID:???
>>680
Apacheを起動して
ルータから80番ポートを外に開放してできあがり
これであなたのPCもハッキングされ放題
ひゃっはー
0684nobodyさん2011/03/09(水) 02:07:08.69ID:???
>>683
デフォの設定でハッキングし放題とな。
おしえてくれ。そしてそのパッチをジャカルタに送って名を挙げるよ
0685nobodyさん2011/03/09(水) 06:39:53.49ID:2uu1lCib
URLに組み込むための規則に沿って“%91%8B%82……”みたく
「$url」の値をURLエンコードするにはどのように記述すればいいですか?
urlencode($url)と記述しても上のような文字列にならずに
そのまま表示されてしまいました・・・
0686nobodyさん2011/03/09(水) 06:56:47.15ID:???
>>685
urlencodeでOKだよ
どんな文字列を変換しようとしたの?
0687nobodyさん2011/03/09(水) 07:09:12.13ID:???
多分、urlencode($url)の戻り値を使わずに$urlを、もう一度使ったんだろ。
0688nobodyさん2011/03/09(水) 07:09:57.49ID:2uu1lCib
<a href="http://google/test.php?url=$url">の$urlの部分です。
<a href="http://google/test.php?url=urlencode($url)">
と書き換えましたがだめでした。
0689nobodyさん2011/03/09(水) 07:20:51.76ID:???
さすが下質だ、PHPのコーディングの仕方全くを知らずに質問するのが流行ってるみたいだな。
0690nobodyさん2011/03/09(水) 07:26:28.44ID:???
基礎がわからないのに関数使えるってそれはそれですげえわ
0691nobodyさん2011/03/09(水) 07:34:42.21ID:???
>>688が何が起きてるのか誰か俺に解説してくれ
0692nobodyさん2011/03/09(水) 07:40:38.45ID:???
688じゃないけど、俺も688に教えてあげた方がいいと思う
0693nobodyさん2011/03/09(水) 07:50:53.31ID:2uu1lCib
ちょっとなんかとんでもない質問しちゃったみたいですみません!
まったくの初心者でいろんなサンプルのプログラムを勘でちょっと
いじったりして遊んでました。

<?php
$str="$URL";
$encdata = urlencode($str);
echo $encdata;
?>

こうゆうことじゃないですよね・・・
ちゃんと動かなかったから違うんでしょうね・・・
0694nobodyさん2011/03/09(水) 07:56:44.49ID:???
勘でいじるなボケ
マニュアル読め
0695nobodyさん2011/03/09(水) 08:04:56.53ID:???
文字列中に変数書く癖はやめたほうがいいよ
PHPの場合はダブルクオーテーション文字列中にそのまま変数かけるけど
それはプログラム言語全体としては一般的ではないから
0696nobodyさん2011/03/09(水) 08:09:12.51ID:???
でもついついやっちゃうよね

echo "こんな{$var}感じで・・・。";
0697nobodyさん2011/03/09(水) 09:10:26.96ID:???
おっぱい括弧で囲むのはありだろう。
0698nobodyさん2011/03/09(水) 09:14:49.94ID:???
いらん構文解析増えるから微妙
0699nobodyさん2011/03/09(水) 09:18:22.56ID:???
的外れだな
0700nobodyさん2011/03/09(水) 09:29:39.47ID:???
おっぱい括弧で囲むのがありならそのままもありだな
ようはPHPだから問題ない
コンパイラ言語ならおっぱい括弧だって文字列扱いだしな
0701nobodyさん2011/03/09(水) 09:45:14.57ID:???
おっぱい括弧のほうが早いから場合によってはむしろ推奨する
0702nobodyさん2011/03/09(水) 09:50:30.43ID:???
想像で言ってるでしょ?
早くねーよ
0703nobodyさん2011/03/09(水) 10:00:21.65ID:SspKnoAi
$fp = fopen($path, "w");
fwrite($fp, $php_data);
fclose($fp);

この場合、新しく作成されたファイルのパーミッションが666なのは仕様でしょうか?

鯖の仕様上、666で*.phpを作成するとInternal Server Errorが出る
0704nobodyさん2011/03/09(水) 10:03:16.70ID:???
>>702
ごめん、「場合によっては早い」というべきだった
測った上で言ってる

囲いの中にある変数の数が多いほど、おっぱい括弧のほうが早くなる
変数の数が少ないときはシングルのほうが早い
0705nobodyさん2011/03/09(水) 10:14:05.47ID:SspKnoAi
実行ファイル(.php)を0666で書き出す糞OSS
VS.
0666のファイルに直接アクセスするとInternal Server Errorを出す糞鯖

悪いのはどっちだ?
0706nobodyさん2011/03/09(水) 10:16:12.18ID:???
悪いのは無知なオマエだ
0707nobodyさん2011/03/09(水) 10:17:06.55ID:???
だな
0708nobodyさん2011/03/09(水) 10:19:37.17ID:???
容赦無いなお前らwwww
0709nobodyさん2011/03/09(水) 14:05:22.33ID:GqBXYpF1
毎回管理ページを開いてパスワード(例:”0000”)を入力するのが
面倒なのでログイン済みのURLを作りたいのですが可能でしょうか?

例えば、↓のような感じを想像しています
aaa.com/admin.php?admin=0000

よろしくお願いします。



<form method="POST" action="admin.php">
<input type="password" name="admin" size="10"><input type="submit" value=" ログイン ">
</form>
0710nobodyさん2011/03/09(水) 14:14:44.50ID:???
>>709
自分のサイト?他人のサイト?
自分のサイトならパスワードかけなきゃいいじゃん
0711nobodyさん2011/03/09(水) 14:24:27.17ID:GqBXYpF1
>>710
自分のサイトです。

今後、会員向けページをつくり、会員登録完了メールに
「貴方の会員ページはこちら(aaa.com/member.php?mmb=0000 )です」
みたいな感じで流用しようとも思っていますので、教えて頂けませんか?
0712nobodyさん2011/03/09(水) 14:29:41.41ID:???
ページ振り分けだけで、個人情報が無ければいいんじゃね?
0713nobodyさん2011/03/09(水) 14:31:50.39ID:???
それ可能な不可能かって可能だろうけど

俺なら絶対しないな

URLさえ知っておけば誰でもログインした状態に
ログインしたページにバナーや掲示板でもあって、例えば僕のサイトにリンク張ってあったら
どのURLから飛んできたかわかるから、リンクはられたサイトの管理者もログインし放題

まあ それでもやりたけりゃどうぞ
0714nobodyさん2011/03/09(水) 14:32:06.27ID:???
よくみたらpostで渡すフォームなんだな
試験だけgetでいいだろ
0715nobodyさん2011/03/09(水) 14:32:53.63ID:???
CSRFやり放題!
0716nobodyさん2011/03/09(水) 14:34:58.26ID:???
>>711
その知識レベルで、パスワード制のシステムを作るのはやばい
個人の趣味でやってるサイトだとしても、他人に使わせてはいけない
0717nobodyさん2011/03/09(水) 14:48:37.13ID:GqBXYpF1
>>714
パスワードの受け側をPOSTからGETに変えたら
↓でログインが成功しました。ありがとうございます。

aaa.com/admin.php?admin=0000


もう一度、POSTとGETの違いを勉強してきます☆
0718nobodyさん2011/03/09(水) 14:51:40.07ID:???
というか利用者もパスワード無いと不安で使わないんじゃね?
せめて初回のみパスワードログイン出来るようにして、クッキー発行。次からはクッキー読みに行ってログインされていればダイレクトにログイン後画面にリンク。

どうしてもパスワード無しでやるならURLのクエリを30文字くらいで暗号化して渡すかな
0719nobodyさん2011/03/09(水) 16:07:35.34ID:???
>>717
そんなレベルだったのかよw
とりあえず、パスワードを実装する前に
getでもpostでもページに表示させるとこ練習しろ
0720nobodyさん2011/03/09(水) 16:52:25.26ID:???
パスワード付きURIがグーグル先生に捕獲されるw
って事件があったなw
0721nobodyさん2011/03/09(水) 16:52:32.31ID:???
初歩的な質問かと思いますが宜しくお願いします。

$valueに値を代入するとして、
@ $_POST['value'] がtrueなら $value = で代入
A @がfalseで$_COOKIE["$value"]がtrueなら $value = で代入
B @もAもfalseなら $value = "〜"; で代入

というのをスマートに書くアイディアがないでしょうか。
順番にnullかチェックしていくのはスマートじゃない気がしてモヤモヤしてます。
nullなら代入っていう演算子はPHPにはないのでしょうか・・(Perlでの ||=)
0722nobodyさん2011/03/09(水) 16:55:28.36ID:???
>>720
グーグル先生が綺麗にサイトのデータ消したとかもあったよな

<a href="index.php?id=300&mode=delete">削除</a>

こんなことしてるやつ稀によく見かけるから注意な
0723◆oDupeixhZv52 2011/03/09(水) 17:25:56.14ID:???
$value= $_POST['value']?:$_COOKIE["$value"]?:"〜";
普通にチェックして入れるの書こうよ…
0724nobodyさん2011/03/09(水) 17:34:07.08ID:???
>>721
PHP5.3から3項演算子の2番目が省略できるから、たぶんこれで出来ると思う。
けれども、ユーザ入力の部分なのに未定義チェックを含めたチェックがまったく
出来なくなるから、あまり薦められない。

こないだから来ているスマート君だと思うんだけど、ユーザ入力が絡む場合は
特にスマートさよりも堅牢性や確実性をとったほうがいいよ。スマートさを追求
してセキュリティホールを開けてしまっては目も当てられない。
0725nobodyさん2011/03/09(水) 18:14:32.55ID:???
>>723
なにこれ
0726nobodyさん2011/03/09(水) 18:16:23.75ID:???
ごめん>>724のこと知らなかった
0727nobodyさん2011/03/09(水) 18:18:07.22ID:???
けどやっぱりちゃんと動かないように思う>>723
0728nobodyさん2011/03/09(水) 18:20:48.58ID:???
>PHP5.3から
0729nobodyさん2011/03/09(水) 18:23:07.78ID:???
てか、コード省略するな
可読性重視しろ

っていっても個々の好き好きだよな・・・。

ただ、
<?
?>
とか
<?=$value?>
は許せない
0730nobodyさん2011/03/09(水) 18:30:01.38ID:???
>>729
その略し方はshort_open_tagsがoffだったり、HTMLの頭にxml宣言があると面倒だよな。
07317212011/03/09(水) 19:29:38.08ID:???
>>723-724
レスありがとうございます。
うーん、やっぱり例外が発生しないようにきっちり制御していったほうがいいみたいですね
3項演算子も試してみたけど、パターンが2種でなく3種になるとスマートとは程遠くorz

> こないだから来ているスマート君だと思うんだけど
おうふ、違いますん
0732nobodyさん2011/03/09(水) 19:48:25.35ID:???
>>721 質問するならIDだせ

出さずに質問する奴は確信犯
0733nobodyさん2011/03/09(水) 20:04:33.69ID:2uu1lCib
>>685です。
ご迷惑をおかけしております。
あれから更に色々と調べたのですがうまくできなくて困っています。


<?php
$str="$URL";
$encdata = urlencode($str);
?>
とやって、
<a href="http://google/test.php?url=$url">
の「$url」の部分がエンコードされるって考えは全く間違ってますでしょうか?
0734nobodyさん2011/03/09(水) 20:08:10.77ID:???
全く間違っている
0735nobodyさん2011/03/09(水) 20:14:24.38ID:???
$str="$URL";
これは何のつもりなんだ
0736nobodyさん2011/03/09(水) 20:22:58.71ID:2uu1lCib
$str="$URL";
$strには$URLをエンコードした結果が入るつもりです。

0737nobodyさん2011/03/09(水) 20:23:59.26ID:???
その$URLはどこからやってくるんだ
0738nobodyさん2011/03/09(水) 20:31:17.41ID:???
何度も質問することは恥じることではない
IDを出す潔さが回答を生むのだ
0739nobodyさん2011/03/09(水) 20:37:42.42ID:???
$URLがまず未定義なわけだが

<?php
$url = "http://www.google.co.jp/search?q=";
$searchStr = "おっぱい";
echo '<a href="' . $url . urlencode($searchStr) . '">Googleで' . $searchStr . 'を検索</a>';
0740nobodyさん2011/03/09(水) 20:44:06.93ID:TtEEwLYN
【OS名】Windows7
【PHPのバージョン】5.2
【連携ソフトウェア】MySQL
【質問内容】
PHPを使って、twitter検索で特定の文字を検索して(フォロワーだけじゃなく全体)
リアルタイムで流れてくるように表示したいんですが、
twitter APIは使用制限があるみたいで、更新しまくるとだめみたいなんです。

何か回避方法ありませんか?
ttp://twitterkensaku.com/
このサイトのような感じをベースに、検索した後はチャットのように見てるだけで勝手に流れるような仕組みにしたいです。
0741nobodyさん2011/03/09(水) 20:44:10.71ID:???
><a href="http://google/test.php?url=$url">
よくわからんがこれはPHPの外に書いてるのか?
もしそうなら$urlはPHPの変数なんだから
<a href="http://google/test.php?url=<;?php echo $url; ?>">
ってしないと
ていうかサンプルいじるのはいいけど
HTMLと違って手探りでどうにかなるもんじゃないから
基礎はちゃんと勉強したほうがいい
>>3の本家マヌアルをなめるように見てきなさい
0742nobodyさん2011/03/09(水) 20:45:33.52ID:???
>>740
岡崎図書館ですねわかります
0743nobodyさん2011/03/09(水) 20:50:37.94ID:TtEEwLYN
>>742
ぐぐったらなんとまぁw
事件に発展してるんですねw
MySQLを仲介に、一定時間ごとに一定数のつぶやきを確保して
PHPからMySQLに接続して疑似リアルタイムを実現するとかならいけますかね・・・?
0744nobodyさん2011/03/09(水) 20:53:39.30ID:2uu1lCib
みなさま、貴重なご意見、ソースありがとうございます。
わかる方ならすぐ試してレスできるのでしょうが・・・

勝手で申し訳ないのですが、これらを色々と試す時間をください。
返事は必ずしますm(_ _)m
0745nobodyさん2011/03/09(水) 21:02:32.21ID:2uu1lCib
$URLはどこからくるか自分も思ったのですが、
それでも「ぐーぐる」にマウスを置くと、URLは表示されるのです。
以下がソース全部ですがそれらしき箇所が見当たらないのです・・・

<?php

class DataObject {
function set($key,$value){
$valname = "_".$key;
$this->$valname = $value;
}
function get($key){
$valname = "_".$key;
return $this->$valname;
}
function output() {
if (isset($this->_filesize)) {
$this->imageOut();
} else {
$this->webOut();
}
}
function webOut() {
$url = $this->_url;
$title = $this->_title;
$summary = $this->_summary;
echo <<<EOM
<a href="$url">$title</a><br />
(続き以下)
0746◆oDupeixhZv52 2011/03/09(水) 21:03:23.05ID:???
>>743
表示ごまかすにしても、結局は
使用制限にかからないように取るしかないのでは。
http://twitter.com/account/rate_limit_status.xml
0747nobodyさん2011/03/09(水) 21:03:43.51ID:2uu1lCib
<hr>
EOM;
}
function imageOut() {
$url = $this->_url;
$title = $this->_title;
$thumb_url = $this->_thumb_url;
$thumb_width = $this->_thumb_width;
$thumb_height = $this->_thumb_height;
echo <<<EOM
<a href="http://google/test.php?url=$url">ぐーぐる</a>
EOM;
}
}
?>
0748nobodyさん2011/03/09(水) 21:08:01.35ID:???
それ初心者がイジクリまわるようなソースじゃないぞ
もっと基本からやらないと
0749nobodyさん2011/03/09(水) 21:12:20.34ID:???
大文字と小文字が違うって気づかない時点でダメダメだ。
マヌアル最低でも3回くらい読むべし。
ヒアドキュメントも出てくるし
0750nobodyさん2011/03/09(水) 21:15:55.12ID:???
>>741
仕様書見たけど、制限が60分に100回なら一分一回でも大丈夫じゃん
どの程度の頻度で新着があるのかわからないけど、
きちんとキャッシュ取って使えば問題ない
0751nobodyさん2011/03/09(水) 21:17:21.81ID:???
アンカーミス>>740
0752nobodyさん2011/03/09(水) 21:23:32.65ID:2uu1lCib
みなさま本当にありがとうございます。
相当な難題だったんですね・・・
でも、まだ諦めたくないので調べながら
がんばってみたいと思いますm(_ _)m
■ このスレッドは過去ログ倉庫に格納されています