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

【PHP】下らねぇ質問はここに書き込みやがれpart10

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/09/25(日) 02:03:45ID:nLUfPXhD
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0002nobodyさん2005/09/25(日) 02:15:35ID:nLUfPXhD
過疎板で2ゲットずざー´ー`)
0003nobodyさん2005/09/25(日) 03:29:22ID:???
$numbarに入っている数字によって、読み込まれるファイルを出したい問い思います。

includeで下記のように書いています。

include('tmp/tmp$numbar.php');

これだとエラーが出るようです。正しい書き方を教えていただけないでしょうか?
0004nobodyさん2005/09/25(日) 03:31:36ID:/sWHtMR5
下ったのか
0005nobodyさん2005/09/25(日) 03:32:08ID:???
>>3
include('tmp/tmp'.$number.'.php');
0006nobodyさん2005/09/25(日) 03:39:28ID:???
質問は詳しく
1.何で事でつまづいているのか、どうしたいのかを明確に書くこと
2.できるだけ、コードをさらして質問すること
0007nobodyさん2005/09/25(日) 04:26:57ID:???
何で事でって何ですか?
0008nobodyさん2005/09/25(日) 04:56:19ID:???
さぁ?コピペしただけだし
0009nobodyさん2005/09/25(日) 05:52:16ID:???
>>5
ありがとうございます。ばっちり勉強になりました。
0010nobodyさん2005/09/25(日) 07:06:18ID:???
>>9
include('tmp/tmp{$numbar}.php');
でもいけるかも。

それはそうと、ナンバーは
$numberか、$nanbarだと思うぞ。
(後者はそれでも恥ずかしいが)
0011nobodyさん2005/09/25(日) 07:23:56ID:2/zVxBc/
前スレ>>987さんレスありが�d
0012nobodyさん2005/09/25(日) 08:49:28ID:???
>>10
えぇぇぇ
それはマズイよ
ダブルクォートでしょ?
0013nobodyさん2005/09/25(日) 09:18:03ID:???
file_get_contentsを2秒以内に処理できなければキャンセルさせたいのですが、
どのような方法がありますか?

<?php

$url_01="http://www.yahoo.co.jp/";
$url_02="http://www.google.co.jp/";
$url_03="http://www.amazon.co.jp/";
$url_04="http://www.rakuten.co.jp/";

$url = array($url_01, $url_02, $url_03, $url_04);

foreach ($url as $url) {
$file .= file_get_contents("$url");
}

print "$file";

?>
0014nobodyさん2005/09/25(日) 09:20:16ID:???
ファイルを開いて一行づつ読み込み、ある文字列にマッチした行だけ消す(改行も)ことはできますか?
一部を消す方法が見つからなかったのでこちらに来ました。似たようなないようのサイトでもヒントだけでも教えてください。
0015142005/09/25(日) 09:32:20ID:???
あ、すいません。ファイルはwやw+以外の開き方でお願いします。
0016nobodyさん2005/09/25(日) 09:53:21ID:???
書き込めないファイルは、消すことも修正することもできないと思うけど???
0017162005/09/25(日) 09:59:47ID:???
対象のファイルXは読み出し専用で開き、それとは別に一時的なファイルYを書き込み用に
つくり、Xから一行ずつ読み込んで、消したい条件に一致しないときだけ、Yに書き出す。
Xの全部の行を読み終わったら、Xを消去するなりリネームするなりし、一時ファイルYの
名前を、Xにする。
0018nobodyさん2005/09/25(日) 13:05:26ID:???
>>12
あぁぁぁ
そだね。
0019nobodyさん2005/09/25(日) 14:54:32ID:???
>>13
スクリプトの先頭に ini_set('max_execution_time', 2);と書いておく、
forkするかシェルスクリプト書いてexecする、
あるいはexec timeを指定したRunkitのSandbox内で実行する、
declare()で実行時間を監視する

などの方法が考えられる
0020nobodyさん2005/09/25(日) 14:58:18ID:???
>>13
max_execution_timeを2秒に設定したfile_get_contentsするだけの
プログラムをforeachの中で実行させればいいような。
呼び出してsleep(2)して結果読み出し。
呼び出すプログラムの方でファイルに書き出すもよし、proc_openで
url渡せば結果を返すプログラムにするもよし。
0021nobodyさん2005/09/25(日) 17:26:44ID:???
あるドメインのサイトで与えたクッキーを
他のドメインのサイトで取り出して使うことは出来ますか?
0022142005/09/25(日) 17:37:22ID:???
>>17
おぉ、すごいっす。頑張ってやってみます。ありがとうございますm(__)m
0023nobodyさん2005/09/25(日) 18:20:25ID:???
indexページ以外からアクセスしてきた場合はindexページへ飛ばす
というような機能をつけたいと思い、自分なりに書いてみたのですがうまくいきません。
どのようにすればできるのでしょうか?
よろしくお願いします。

<?php
$ref = $_SERVER['HTTP_REFERER'];
$url = "http://***.index.htm";

if ($ref != "http://***.index.htm"){
header( "Location: $url" );
}
?>
0024nobodyさん2005/09/25(日) 18:28:22ID:???
>>21
まあ可能

>>23
大枠のコードは間違ってない
>うまくいきません

何が?
0025nobodyさん2005/09/25(日) 18:33:01ID:???
htmlにphpを埋め込みたいのですが
htmlの拡張子をphpに変えて、その中で

<? include('message.php'); ?>

と書いて、メッセージを表示しています。

ここまでは、上手くいってるのですが、今度はmessage.phpを呼ぶときに
引数も一緒に渡したいのです。

例えばあるページから、message.phpを呼ぶ時は

<? include('message.php?mode=1'); ?>

あるときは

<? include('message.php?mode=2'); ?>

みたいな感じで呼びたいのですがエラーになってしまいます。

きっとmessage.php?mode=2というファイルを探しに行ってエラーになってしまってると
思うんですが、

こういう処理は実現可能なのでしょうか?

呼び元は全てhtmlです。includeする為に拡張子をphpに変えています。
0026nobodyさん2005/09/25(日) 18:39:31ID:???
>>24
それが、実際にテストしてみてもなにも変化しません・・
0027nobodyさん2005/09/25(日) 18:40:34ID:???
>>25
- bar.php -
$hoge = 'hello, world';
include 'foo.php';

- foo.php -
echo $hoge;

HTTPクエリにする必要なし
Include()文とインクルードしたファイルが置き換わると思えばOKだ
http://jp2.php.net/include
0028nobodyさん2005/09/25(日) 18:46:34ID:???
>>26
リダイレクトできないという意味?
とりあえずLocationヘッダが送信できてるかどうか確認してみなよ
エラー抑止してるならスクリプトの頭にerror_reporting(E_ALL)も追加
0029nobodyさん2005/09/25(日) 19:28:19ID:???
>>28
解決しました。
ソースが間違っていたのではなく、記述する場所が間違っていたようです(一番最初に記述したらリダイレクトできました。)

<html>
<head><title></title></head>
<body>
(中略)
ココに記述>
</body>
</html>

ありがとうございました。
0030292005/09/25(日) 19:30:38ID:???
すいません。間違えました

誤

<html>
<head><title></title></head>
<body>
(中略)
<?php ココに記述 ?>
</body>
</html>



正

<?php ココに記述 ?>
<html>
<head><title></title></head>
<body>
(中略)
</body>
</html>
0031nobodyさん2005/09/25(日) 19:39:22ID:???
>>29
HTTPのスペックではヘッダーフィールドの後にコンテンツがくることになっているので、
コンテンツを送信した後でヘッダーを送信することはできない。ヘッダー送信までコンテンツの
出力を遅延させたい場合は、アウトプットバッファリングを使用すると言うのがハウツー

コンテンツの送信後にヘッダーを変更しようとすると、本来Warningが出るよ
デバッグ時にWarningを抑止する真っ白画面に陥りやすいので要注意
0032nobodyさん2005/09/25(日) 19:39:57ID:???
×抑止する真っ白
○抑止すると真っ白
0033nobodyさん2005/09/25(日) 19:51:28ID:???
>>31
そうだったんですか。
勉強になりました。
ご説明ありがとうございますm(_ _)m
0034nobodyさん2005/09/25(日) 21:15:38ID:???
>>25
message.phpの先頭に
$mode=1;
でいいのでは?
0035nobodyさん2005/09/25(日) 22:02:51ID:???
message.phpを呼び出す側にの間違いでは
0036nobodyさん2005/09/25(日) 22:20:43ID:???
どっちでもいいだろ
0037nobodyさん2005/09/25(日) 22:43:58ID:???
良くないね。
0038前すれの9632005/09/26(月) 01:25:21ID:???
すんません、前スレの>>970は、あたしでした…m(__)m
次スレ、立てなくてすんません。

date('w', strtotime(now))で、1が返ってきました。
なので、曜日の配列を作っておけば月曜日が返ってくるので、成功です!
でも、元々のDBに入っているデータを"now"部分にいれると、やっぱりおかしいのです。

>>972さんの言うとおり、MySQLのバージョンはMySQL 4.0.24-standard-logでした。

データの取得がおかしい?
でも、nowで取得した値のはずなんだけど…
0039nobodyさん2005/09/26(月) 02:44:11ID:???
セキュリティの関係上、エラーを画面に表示させずログに保存したいのですが、
display_errorsをoffにし、log_errorsをonに設定するところまではやりました。

ところでこのlogはどこに保存されていて、どうやったら見れるのでしょうか…??
0040nobodyさん2005/09/26(月) 04:45:05ID:???
設定次第
0041nobodyさん2005/09/26(月) 05:02:26ID:ngVBM4RI
SSIのことで質問です。

<!--#echo var="DOCUMENT_URI" -->

とやると/hoge/hoge.shtml
と結果が返りますが、/hoge/のフォルダ名で終わる形にはできないでしょうか?
教えてください。
0042nobodyさん2005/09/26(月) 05:03:27ID:ngVBM4RI
すいません誤爆しました
0043nobodyさん2005/09/26(月) 08:14:36ID:9OUzr1cB
セキュリティに関しての質問です。

例えば、PHPのログインフォームからIDとパスワードを使ってログインする方法と
.htaccessでBASIC認証してログインする方法は、どちらがセキュリティ的に
高いと言えるでしょうか?

前者であれば各PHPファイルにログイン設定をしなければいけませんが、
後者なら.htaccessで制御するだけなので、非常に簡単です。
しかし、それだけで良いのかどうか迷っています。
0044nobodyさん2005/09/26(月) 10:12:03ID:???
>>43
どちらにせよセキュリティ重視ならSSLにするのは当然として、
どちらか選ぶなら前者。なぜなら誰がログインしたかが分かるから。
仮にパスワードが漏洩とか盗まれたりとかして不正アクセスがあっても、
同じログインIDで毎回リモホが変わってたらすぐ見つけられる。

>各PHPファイルにログイン設定をしなければいけません
こんなの簡単でしょ。ログイン時にセッション変数にログイン判定フラッグを格納しといて、
その有無を判別するif文を各スクリプトの先頭に書いとけばいいだけ。
0045nobodyさん2005/09/26(月) 10:53:04ID:???
>>43
BASIC認証もお手製認証も対して変わらないから、しっかりした認証の仕組みを作れるのなら、
付加的なメリットを組み込みやすいお手製でもいいんじゃないかな。
auto_prepend_fileを設定すれば、自動的にファイルを読み込んでくれるよ。
.htaccessで設定できるから、読み込み対象ファイルも指定できるし。
0046おれおれお2005/09/26(月) 11:39:10ID:???
↓URLのK−ProfというCGIを使うにはどうしたらいいでしょうか。
ご教授お願いします。

ttp://cgi.au-lait.net/wiki.cgi?page=K%2DProf
0047nobodyさん2005/09/26(月) 11:46:22ID:???
>>46
スレ違いだという事に気づくぐらい知識をつけたら使えるよ。
0048おれおれお2005/09/26(月) 11:47:44ID:???
・・・ごめん、俺が間違ってた。
0049nobodyさん2005/09/26(月) 11:48:04ID:???
>>46
ここはPHP言語のスレで、Perl言語で書かれたそのCGIの話はスレ違いだよ。
・配布元のサポート掲示板で聞く
・CGI設置質問スレ http://pc8.2ch.net/test/read.cgi/php/1104624784/l50 で聞く
あたりが妥当かと。
0050nobodyさん2005/09/26(月) 11:56:13ID:???
おまいやさしいな。
0051nobodyさん2005/09/26(月) 12:34:22ID:???
すいません、フォームから問い合わせがあったら自動返信メールを送るような
スクリプトを作ったんですが、メールヘッダーの「差出人(from)」の
日本語が文字化けしたりしなかったりします。
まったく同じ条件でフォームからPOSTしてメールを送信してるのに、
文字化けするときもあればしないときもあります。
ということは、(自動)エンコードの際に判定を誤ってるのかとも思いますが、
自分の書いたソースを見直してもどこがマズイのかわかりません。
0052512005/09/26(月) 12:39:31ID:???
ソースは以下のような感じです。

$to_addr = $_POST['mail'];; //フォームからPOSTされたメアド
$title = "テスト件名";
$body = "テスト本文";

$headers = "";
$headers .= "Content-Type: text/plain; charset=ISO-2022-JP\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: ".mb_encode_mimeheader("テスト送信者",'ISO-2022-JP')." <[email protected]>\n";
$headers .= "Bcc: <[email protected]>\n";
$headers .= "X-Mailer: Test_Mailer\n";
$headers .= "Return-Path: <[email protected]>\n"; // エラー時の返信先

mb_language("Japanese");
mb_internal_encoding("EUC-JP");
if ( mb_send_mail ($to_addr, $title, $body, $headers) ){

}else{
echo "<BR>送信失敗<BR><BR>";
exit;
}
0053512005/09/26(月) 12:42:52ID:???
>>52
すみません、1行目に「;」が2つありますが、これはここにコピペした際に
補足として行末のコメントを書いたときにミスって付けてしまいました。
実際のソースでは「;」はもちろん1つです。
0054nobodyさん2005/09/26(月) 12:48:05ID:l8/RJqBH
PHP Version 4.3.9です。

<?php
if($u) {
echo $u;
header("Location: http://www.yahoo.co.jp");
exit;
}
?>

index.phpで以上のコードを作成したのですが
echoで$uの値は表示されるのに
ロケーションでヤフーに飛びません。
PHPのバージョンなどが問題なのでしょうか?
宜しくお願いします。
0055nobodyさん2005/09/26(月) 12:49:43ID:???
>>51
メールはjis
0056nobodyさん2005/09/26(月) 13:01:15ID:???
>>54
>>31
0057542005/09/26(月) 13:07:09ID:???
>>56
ありがとうございました。
0058nobodyさん2005/09/26(月) 13:19:38ID:???
>>55
んなこたぁない
0059nobodyさん2005/09/26(月) 13:30:42ID:???
>>58
インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。

つーか、文字化けするならコード変えるぐらい思いつけよ。
0060nobodyさん2005/09/26(月) 13:47:34ID:2nx2CLo8
>>58
知ったかage
0061nobodyさん2005/09/26(月) 13:52:54ID:???
エラーが出ずに真っ白画面が出ちゃうのは、何処を変えればエラーがきちんと表示されますか?
0062nobodyさん2005/09/26(月) 13:56:58ID:???
php.ini。Error handling and loggingのとこ
0063nobodyさん2005/09/26(月) 14:01:28ID:???
PHPのグラフ作成で日本語対応ライブラリはありますか?
誰か教えてください。
0064 pc6.nucba-unet.ocn.ne.jprlo 2005/09/26(月) 14:06:36ID:+wttJfxy
Anime Land-2004 otzoi
0065nobodyさん2005/09/26(月) 14:08:04ID:???
>>63
UTF-8で文字データを渡してやれば大抵のもので問題無く動作する筈なんだが...
具体的に使おうと思ってたライブラリの名前を出して解決策を聞いた方がいいんでないの?
ものによってできる内容が全然違うし。
0066nobodyさん2005/09/26(月) 14:16:01ID:???
>>63
ないよ
0067nobodyさん2005/09/26(月) 14:28:19ID:???
>>59の言ってることは間違い。
なぜなら、>>52のソースにはmb_language("Japanese") とmb_send_mailがあるので
「メールソフトがこれをJISに変換する」という動作は組み込まれている。
だから>>59の言ってることは的外れ。
というか、>>59はマルチバイト関数の動作内容を知らないのかね?
0068nobodyさん2005/09/26(月) 14:36:40ID:???
そのあとでEUCになってるようだが
0069nobodyさん2005/09/26(月) 14:36:44ID:???
視力検査みたいなミスだと思うが、興奮してるとわからんもんかねw
0070nobodyさん2005/09/26(月) 14:41:14ID:???
>>68
mb_internal_encodingはスクリプトのエンコーディングを決めるものだから
メール送信(mb_send_mailの動作)には関係ないよ。
0071nobodyさん2005/09/26(月) 14:46:11ID:???
>>68
つ[http://www.res-system.com/weblog/item/478]

>>69
もちつけ、知ったかクン。
0072nobodyさん2005/09/26(月) 14:48:42ID:???
いや、エラー状況を考えてコードをよく見ろって
0073672005/09/26(月) 14:49:02ID:???
>>68
「そのあとで」って、何の後で??

「JISに変換する」はmb_send_mail関数の動作だぜ。
mb_send_mailの「後」に何がある?
0074nobodyさん2005/09/26(月) 14:51:49ID:???
>>51
っていうか、本文や件名も文字化けしてんの?
書き込みを見る限り本文とかは文字化けしてないようだが、
もしヘッダの送信者の部分"だけ"が化けてんなら、原因は謎だな。
mimeエンコードもちゃんとやってるみたいだし。。。
■ このスレッドは過去ログ倉庫に格納されています