【PHP】下らねぇ質問はここに書き込みやがれ 62
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/01/10(木) 18:09:19ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0455nobodyさん
2008/01/20(日) 01:01:36ID:???http://www.php.net/downloads.php
ここでダウンロードしたらiniに書いてるよ。
0456446
2008/01/20(日) 01:27:57ID:jGlr+mbdありがとうございます しかしダウンロードしたphp5.2.5のphp.ini見てみると、
自分のものと記述の順序同じです
ていうか、php_exif.dllがmb_string.dllよりも先にあります
(447さんの推奨順序とちがう、、) これはいいのかな?
あと、apacheのエラーログ見ると、
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll'
というエラーが延々出ています
.dllの個数分というわけじゃないですが、これも関係してるんでしょうか?
0458nobodyさん
2008/01/20(日) 02:08:22ID:???糞zendの .ini ファイルなんて信用するなよw
windows のインストーラー壊れたまま、chm 文字化け放置してるぐらいなんだからw
で、pdo 使いたいみたいだが、これもロードの順序あるんだわw
extension=php_pdo.dll
をとにかく前の方に記述してみな
0459nobodyさん
2008/01/20(日) 03:36:50ID:???ディレクトリAにアップロードされたファイルaを
削除しようと、
unlink(basename($_POST['filename']));
を使おうとしたのですが、ディレクトリA内の指定の仕方がわからなくて困っています。
$dir = "./A/"として
unlink(basename($dir,$_POST['filename']));などいろいろやってみたのですがうまくいきませんでした
詳しくは、
html側
<form action="delete.php" method="">
<input type="text" name="filename" value="">
<input type="submit" name="delete" value="delete">
</form>
php側
<?php
if($_POST['filename']){
unlink(basename($_POST['filename']));
}
?>
ですが、エラーはないのですが、もちろんファイルを消してくれることもありませんでした。
どうかよろしくお願いします助けてください
0460459
2008/01/20(日) 03:39:35ID:SGo/1Pd2Apache 2.0 Handler
でし
0461nobodyさん
2008/01/20(日) 03:40:23ID:SGo/1Pd20462nobodyさん
2008/01/20(日) 03:55:05ID:???^ ここ
不特定多数が利用する仕組みなら、ディレクトリトラバーサル対策に
realpath()とか使って想定されたパスかどうかチェック
0463nobodyさん
2008/01/20(日) 03:56:35ID:???0464nobodyさん
2008/01/20(日) 04:04:20ID:???Apache 2.0 Handler
でし!!(*'-^)d
0465nobodyさん
2008/01/20(日) 04:23:04ID:GtMoA5jMそしてDBより取得した「DateTime型」の値を2chの様に
2008/01/20(日) 00:15:54
といった形式で表示するにはどうすれば良いでしょか?
1※レコードセットで取得しておりまして、DBより取得した値は
「2008-01-17 01:13:47」
の様な形で入っています。
2※次のサイトを参考に見ているのですがどうしても2chの様な
文字列で出力する事が出来ません。
http://www.scollabo.com/banban/php/php_12.html
0466nobodyさん
2008/01/20(日) 04:35:41ID:???もっとシンプルな方法があるかも知れんが
0467nobodyさん
2008/01/20(日) 04:43:07ID:SGo/1Pd2おお!
realpathとmethod="post"つかったら
とりあえずはファイル削除することができました!
ありがとうございました!
0468nobodyさん
2008/01/20(日) 04:43:21ID:???0469nobodyさん
2008/01/20(日) 05:26:38ID:???$test1 = 'test';
$test[0] = 'test';
$test2['test'] = 'OK';
print "$test2[$test1]\n"; ←�@
print "$test2[$test[0]]\n"; ←�A
�@は上手くいきますが�Aは上手くいきません
�Aのように、連想配列の添え字を配列にすることはできないのでしょうか
0470nobodyさん
2008/01/20(日) 05:32:19ID:???$timestamp = strtotime('2008-01-17 01:13:47');
$weekNum = date('w',$timestamp);
$week = '';
switch($weekNum) {
case 0:
$week = '日';
break;
case 1:
$week = '月';
break;
case 2:
$week = '火';
break;
case 3:
$week = '水';
break;
case 4:
$week = '木';
break;
case 5:
$week = '金';
break;
case 6:
$week = '土';
break;
}
$date = date('Y/m/d('.$week.') H:i:s',$timestamp);
俺ならクエリーで全部済ませちゃうな
0471nobodyさん
2008/01/20(日) 05:36:17ID:???ダブルクォーテーション外せば通るよ
外すのが嫌なら
print "{$test2[$test[0]]}\n";
こんな風に{}で囲めば良い
0472nobodyさん
2008/01/20(日) 05:41:31ID:???出来ました、ありがとうございます^^
0475nobodyさん
2008/01/20(日) 14:33:02ID:???相変わらずレベル低すぎ
0476nobodyさん
2008/01/20(日) 14:58:37ID:GtMoA5jM勉強してみようと思います。
>>470さん
ありがとうございます。解決しました。
でも、よくよく考えてみると態々PHPで整形する必要性は全く無いですね^^;
でもPHP関数の勉強になるので今回は敢えてPHPで実装してみようと思います。
0479nobodyさん
2008/01/20(日) 17:50:56ID:???まぬあるに書いてあるよ
>>478
全てタイムスタンプを基準としてstrtotime使ったほうが楽でないか?
0480nobodyさん
2008/01/20(日) 18:04:17ID:???0481nobodyさん
2008/01/20(日) 18:13:45ID:???0486nobodyさん
2008/01/20(日) 19:31:35ID:???ttp://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing.complex
ついでに、三項演算子の説明
ttp://www.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary
0487459
2008/01/20(日) 19:53:47ID:???Apache 2.0 Handlerのlocalhostでは動くのですが、
レンタルサーバーに同じものを設置するとエラーがでてしまいます。
html側
method="post" に変更だけ
php側
<?php
$real_path = realpath("./data/");
if(unlink($real_path.$_POST['filename'].)){
print("success!");
}
?>
エラー内容
Parse error: syntax error, unexpected ')' in /home/users/7e/****/www/********/1/delete.php on line 9
----------------------
if(unlink($real_path.$_POST['filename'].)){ で ” でくくってみたり . を加えてみたりしたのですが
余計にエラーがひどくなってしまって、この状態が一番エラー文が少なかったです。
消したいファイルと、そのファイルが入ってるディレクトリの属性は、それぞれ604と777でやってみました
よろしくお願いします。
0488nobodyさん
2008/01/20(日) 19:54:28ID:SGo/1Pd20489nobodyさん
2008/01/20(日) 19:55:38ID:SGo/1Pd20490nobodyさん
2008/01/20(日) 19:55:46ID:???0491nobodyさん
2008/01/20(日) 19:59:16ID:???0493nobodyさん
2008/01/20(日) 20:14:34ID:GtMoA5jM勉強用に人様の作ったサーバ(自宅サーバも含む)で公開されて
いるPHPスクリプトファイルを見る(参照)事って可能でしょうか?
今、PHPのコードは現在、我流で色々作っている為、
はたしてこう言う(我流コード)作りで良いのか?
と不安になったりします。
※Googleで調べたところクライアントからサーバにアクセスをすると
そのタイミングでphp ⇒ html に変換される為「不可能」との
事でした。
もしソースを参照する方法をご存知の方がいらっしゃいましたら
ご伝授願います。
0494nobodyさん
2008/01/20(日) 20:17:08ID:???0495nobodyさん
2008/01/20(日) 20:27:17ID:GtMoA5jM無理ですか。。。
Pearという物には触れた事が無いのでちょっとぐぐってみます。
あとは、職場でPHP(Java)開発をしている人と仲良くなって
ちゃっかりソースを頂こうと思います。(これってマズイ???)
ドトネト畑でして、業務レベルPHPコードが未だ現状では書けません。
0496nobodyさん
2008/01/20(日) 20:29:12ID:???危ないから、普通はそんなことはさせないようになってると思う。
例えば、会員用のログイン画面をPHPで作ってる人が居たとする。
そのPHPソースが見れるということは、どのデータベーステーブルを参照して認証してるとかの情報がわかってしまうだろう?
人様の作ったものを勝手に見るような事は考えずに、わからなかったら当面はここで質問するといい。
で、レベルが上がったら質問する側から答える側にまわれるようになるといいな。
ここのやつは、口は悪いやつも居るがみんな根はいいやつばかりだよ。
教える気もないやつは、おそらくこのスレを見もしないだろう?
がんばれ。
0497nobodyさん
2008/01/20(日) 20:30:34ID:???0498nobodyさん
2008/01/20(日) 20:39:29ID:???問題が起きるプログラムであるか、ないか。そこが大事。
過程より結果だ。
0499nobodyさん
2008/01/20(日) 20:44:34ID:???わかったことだけをスレチになろうが関係なく書き込んで
優越感に浸ろうとするが、当人は恥をかいてることに気づいていない
0500nobodyさん
2008/01/20(日) 20:47:57ID:???>>498
私も同意見です。
まずは、仕様通りに動かさせることが先決だと思う。
その後に、コードの簡素化やなるべくメモリを消費させないような仕様に変更して
価値の向上を目指す方が良いと思う。
自分の力量以上のことをやって、先に美しいコードを書こうとしていつまで経っても
完成しないのでは意味がない。
レベルは圧倒的に違うとは思うが、企業でもベータ版のソフトからどんどんユーザのニーズを取り入れたり
もっと良いものにしたりして使い勝手の良いものにしているのだし。
0501nobodyさん
2008/01/20(日) 20:48:21ID:???前者の方が良い。
あとソースコードから勉強するより、オライリーあたりの本でも読んだほうが良いと思う。
0502nobodyさん
2008/01/20(日) 20:49:12ID:???0503nobodyさん
2008/01/20(日) 20:51:09ID:???レベルひっくw
0505nobodyさん
2008/01/20(日) 20:58:38ID:???view-source: http://example.com/index.php
0506nobodyさん
2008/01/20(日) 21:09:40ID:???この場合、機能拡張をするとか、他人のソースを引き継ぐ話じゃないだろ。
システムとして動かす時、このコードでいいのか不安だという話だろ。
「そういう不安は持つ必要ない」でいいんでないの?
0507nobodyさん
2008/01/20(日) 21:16:48ID:???コードの可読性は、自分しか読まない場合でも十分意味がある。
0508nobodyさん
2008/01/20(日) 21:19:06ID:???いやそれは必要だと思うがw
493が具体的に何の話をしているのかによる。
セキュリティなのかコーディングスタイルなのか関数を再発明しているのか構造の効率化なのか何なのか。
俺が思うにろくにリファレンスも読んでいないレベルのような気もするが。
0509nobodyさん
2008/01/20(日) 21:20:32ID:???0510nobodyさん
2008/01/20(日) 23:12:37ID:???自由に認めているからどう書けばよいのかとかそういう議論に
なっていくんだろうな。プログラミングの永遠のテーマだ。
しかし、こういうテーマをずっと考えてばかりいる奴は何も進まないのは確かだ。
0511nobodyさん
2008/01/20(日) 23:17:07ID:???そりゃ間違いもいろいろあるさ。
読み方も書き方も初めてなんだ、自分が書いた文章が正しいのかそれとも他に参考になるような文章があるのか
誰だって、最初は迷うだろ。
0512nobodyさん
2008/01/21(月) 00:19:08ID:???0513350
2008/01/21(月) 00:32:11ID:YgC1PUVS皆様に教えていただいたページなどを参考にスクリプトを書いてみました。
片方のサーバから、もう片方のサーバにFTP接続でファイルをアップロードするスクリプトです。
きちんとアップロードされていました。
教えてくださった皆様、ありがとうございました。
以下は書いてみたスクリプトです。
$ftps = ftp_connect($host);
$result = ftp_login($ftps, $username, $password);
if (!$result) {
echo "接続に失敗しました。\n";
return;
}
ftp_pasv($ftps, true);
ftp_chdir($ftps, $dir);
ftp_put($ftps, $dir."/".$upload_file, FTP_ASCII);
ftp_quit($ftps);
0515nobodyさん
2008/01/21(月) 00:46:52ID:DIuX2u4Gif ($area > 0)
1行のみの処理
if ($area > 0)
{
複数行の処理
}
のように来年度からきまったのだけど、とてもやりにくい。 どうすればいい?
0516nobodyさん
2008/01/21(月) 00:47:34ID:???0517350
2008/01/21(月) 01:09:35ID:YgC1PUVS初心者ですみません。
これで問題ないものだと思ったのですが。 すみません、教えてください
0518nobodyさん
2008/01/21(月) 01:09:51ID:???1行
else
{
複数
}
0519350
2008/01/21(月) 01:12:42ID:YgC1PUVSもしかして、10行目ですか?
ftp_put($ftps, $dir."/".$upload_file, $upload_file, FTP_ASCII);
ローカルにあるファイルを指定してるところが、書き漏れていました。
0521nobodyさん
2008/01/21(月) 01:26:17ID:???よく懲りないで来るね。
0522350
2008/01/21(月) 01:41:12ID:YgC1PUVSまったくわかっていませんでした。お心遣い感謝します。
>>521
煽られても仕方ないと思っています。
私がバカなので皆様にご迷惑をかけて申し訳なく思っています。
あのコードのどこがいけなかったのか、わからないので
すみませんが、教えてください
0525nobodyさん
2008/01/21(月) 01:51:54ID:???いいから答えだせや、クズ。笑ってやるからよ。
>マニュアルは読んだのか?
当たり前じゃネーか。 マニュアルマニュアルってうるせーんだよ、ハゲ。
0526nobodyさん
2008/01/21(月) 04:35:04ID:???0527nobodyさん
2008/01/21(月) 07:35:29ID:???0528459
2008/01/21(月) 08:00:48ID:iStOW3ryif($_POST['filename']){
unlink($_POST['filename']);
print("success!");
}
としてみると問題なく削除することができました。
これをディレクトリを指定して、その中のファイルを削除するようにしたいのですが
その記述の仕方がわかりません
どうか教えていただけないでしょうか。よろしくおねがいします。
0529nobodyさん
2008/01/21(月) 08:44:41ID:???$dir = "../images/";
if ($_POST['filename']) {
unlink($dir . $_POST['filename']);
# unlink("../images/" . $_POST['filename']);
pring("success!");
}
で出来る。 外部からディrクトリも指定したいなら
$dir = $_POST['dir'];
に替える。
固定のディレクトリでいいのなら$dirに任意のディレクトリを入力しておく。
ただ今のままじゃ想定しないディレクトリ内のファイルも消されてしまう。
$_POST['filename']に ../test.jpeg とか入力されるとそのファイルが削除されてしまう。
$_POST['filename']は正規表現などで、英数字とドットのみは受け付けないようにするなどしたほうがよい。
続いて、ファイルやディレクトリ(外部から指定するようにしたばあい)の存在チェックも忘れずに。
file_exists
is_file
is_dir
あたりを参考に。
0530459
2008/01/21(月) 09:33:46ID:???できました!
おっしゃ通りまだセキュリティー面をぜんぜん考えていないので
言われたのを参考に調べてみます!
うやむやがすっきりしましたありがとうございました
0531nobodyさん
2008/01/21(月) 09:55:59ID:???php5.2.0-8
php5-gd
imagecolorallocatealphaで透過しようとすると、透過出来ないんだけど
マニュアルのサンプルの実行結果
ttp://sylphys.ddo.jp/upld2nd/pc3/src/1200876868577.png
何とかならないかな・・・
0532nobodyさん
2008/01/21(月) 09:59:54ID:kkXgkN55リクエスト時にそのページにジャンプする方法はありますか?
headerか何かでリクエスト+Locationができれば嬉しいのですが・・・。
0533nobodyさん
2008/01/21(月) 10:08:56ID:???0534nobodyさん
2008/01/21(月) 10:09:52ID:kkXgkN55それを、POSTリクエストを含めて行いたいのです。
0535532
2008/01/21(月) 10:22:37ID:kkXgkN55外部の検索エンジンで、キーワードの取得がGETのとき、
header("Location: http://example.com/?q=hogehoge");
で、キーワードも表示されますが、キーワードの取得がPOSTのとき、
header("Location: http://example.com/; 何らかの形でPOST送信");
のようにできないでしょうか?
0536nobodyさん
2008/01/21(月) 11:31:24ID:???/* POST送信 */
header('Location: http://example.com');
もしくはPEAR::HTTP_RequestならaddHeaderとか
0537nobodyさん
2008/01/21(月) 11:33:26ID:kkXgkN55location前にPOSTを送信するとできるのですか、有難う御座います。
早速試してみます
0538nobodyさん
2008/01/21(月) 11:50:53ID:???mb_convert_encoding($value, "EUC-JP", "EUC-JP");
mb_convert_encoding($value, "UTF-8", "UTF-8");
こういう記述って問題ないよな
0539nobodyさん
2008/01/21(月) 11:58:39ID:???0542nobodyさん
2008/01/21(月) 14:50:55ID:kkXgkN55ちなみに使いたい関数はmb_convert_encoding()です。
変数を受け渡す前に行わずに、テンプレートに受け渡してから行う方法があれば教えてください。
0545nobodyさん
2008/01/21(月) 15:12:14ID:kkXgkN55調べても、出てくるのはテンプレート内でのif文・foreach文などのループ文や、
テンプレート内でSESSION・環境変数を使うようなことばかりで、
関数を使うにあたっての記事は見当たりませんでした。
0547nobodyさん
2008/01/21(月) 15:18:17ID:???http://www.smarty.net/manual/ja/language.function.php.php
http://www.smarty.net/manual/ja/language.function.eval.php
0548nobodyさん
2008/01/21(月) 15:26:37ID:???テンプレートに合わせた文字コードで渡せばいいんじゃないか?
0550nobodyさん
2008/01/21(月) 16:00:44ID:???PHP Editorでフォルダ消しても、表示から消えるが、
実際フォルダ残ったまんまだし・・・
0551nobodyさん
2008/01/21(月) 16:01:41ID:???0552nobodyさん
2008/01/21(月) 16:05:05ID:???煽ることしか出来ない厨か・・・
冬休みまだ続いているの?あ、ニートですか、ごめんね^^;
0553nobodyさん
2008/01/21(月) 16:06:38ID:???> 実際フォルダ残ったまんまだし・・・
> PHP Editorでフォルダ消しても、表示から消えるが、
> 実際フォルダ残ったまんまだし・・・
> PHP Editorでフォルダ消しても、表示から消えるが、
> 実際フォルダ残ったまんまだし・・・
> PHP Editorでフォルダ消しても、表示から消えるが、
> 実際フォルダ残ったまんまだし・・・
> PHP Editorでフォルダ消しても、表示から消えるが、
> 実際フォルダ残ったまんまだし・・・
> PHP Editorでフォルダ消しても、表示から消えるが、
> 実際フォルダ残ったまんまだし・・・
■ このスレッドは過去ログ倉庫に格納されています