【PHP】下らねぇ質問はここに書き込みやがれpart10
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/09/25(日) 02:03:45ID:nLUfPXhDここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>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:nLUfPXhD0003nobodyさん
2005/09/25(日) 03:29:22ID:???includeで下記のように書いています。
include('tmp/tmp$numbar.php');
これだとエラーが出るようです。正しい書き方を教えていただけないでしょうか?
0004nobodyさん
2005/09/25(日) 03:31:36ID:/sWHtMR50006nobodyさん
2005/09/25(日) 03:39:28ID:???1.何で事でつまづいているのか、どうしたいのかを明確に書くこと
2.できるだけ、コードをさらして質問すること
0007nobodyさん
2005/09/25(日) 04:26:57ID:???0008nobodyさん
2005/09/25(日) 04:56:19ID:???0010nobodyさん
2005/09/25(日) 07:06:18ID:???include('tmp/tmp{$numbar}.php');
でもいけるかも。
それはそうと、ナンバーは
$numberか、$nanbarだと思うぞ。
(後者はそれでも恥ずかしいが)
0011nobodyさん
2005/09/25(日) 07:23:56ID:2/zVxBc/0013nobodyさん
2005/09/25(日) 09:18:03ID:???どのような方法がありますか?
<?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:???一部を消す方法が見つからなかったのでこちらに来ました。似たようなないようのサイトでもヒントだけでも教えてください。
001514
2005/09/25(日) 09:32:20ID:???0016nobodyさん
2005/09/25(日) 09:53:21ID:???001716
2005/09/25(日) 09:59:47ID:???つくり、Xから一行ずつ読み込んで、消したい条件に一致しないときだけ、Yに書き出す。
Xの全部の行を読み終わったら、Xを消去するなりリネームするなりし、一時ファイルYの
名前を、Xにする。
0019nobodyさん
2005/09/25(日) 14:54:32ID:???スクリプトの先頭に ini_set('max_execution_time', 2);と書いておく、
forkするかシェルスクリプト書いてexecする、
あるいはexec timeを指定したRunkitのSandbox内で実行する、
declare()で実行時間を監視する
などの方法が考えられる
0020nobodyさん
2005/09/25(日) 14:58:18ID:???max_execution_timeを2秒に設定したfile_get_contentsするだけの
プログラムをforeachの中で実行させればいいような。
呼び出してsleep(2)して結果読み出し。
呼び出すプログラムの方でファイルに書き出すもよし、proc_openで
url渡せば結果を返すプログラムにするもよし。
0021nobodyさん
2005/09/25(日) 17:26:44ID:???他のドメインのサイトで取り出して使うことは出来ますか?
0023nobodyさん
2005/09/25(日) 18:20:25ID:???というような機能をつけたいと思い、自分なりに書いてみたのですがうまくいきません。
どのようにすればできるのでしょうか?
よろしくお願いします。
<?php
$ref = $_SERVER['HTTP_REFERER'];
$url = "http://***.index.htm";
if ($ref != "http://***.index.htm"){
header( "Location: $url" );
}
?>
0025nobodyさん
2005/09/25(日) 18:33:01ID:???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に変えています。
0027nobodyさん
2005/09/25(日) 18:40:34ID:???- 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:???リダイレクトできないという意味?
とりあえずLocationヘッダが送信できてるかどうか確認してみなよ
エラー抑止してるならスクリプトの頭にerror_reporting(E_ALL)も追加
0029nobodyさん
2005/09/25(日) 19:28:19ID:???解決しました。
ソースが間違っていたのではなく、記述する場所が間違っていたようです(一番最初に記述したらリダイレクトできました。)
<html>
<head><title></title></head>
<body>
(中略)
ココに記述>
</body>
</html>
ありがとうございました。
003029
2005/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:???HTTPのスペックではヘッダーフィールドの後にコンテンツがくることになっているので、
コンテンツを送信した後でヘッダーを送信することはできない。ヘッダー送信までコンテンツの
出力を遅延させたい場合は、アウトプットバッファリングを使用すると言うのがハウツー
コンテンツの送信後にヘッダーを変更しようとすると、本来Warningが出るよ
デバッグ時にWarningを抑止する真っ白画面に陥りやすいので要注意
0032nobodyさん
2005/09/25(日) 19:39:57ID:???○抑止すると真っ白
0035nobodyさん
2005/09/25(日) 22:02:51ID:???0036nobodyさん
2005/09/25(日) 22:20:43ID:???0037nobodyさん
2005/09/25(日) 22:43:58ID:???0038前すれの963
2005/09/26(月) 01:25:21ID:???次スレ、立てなくてすんません。
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<!--#echo var="DOCUMENT_URI" -->
とやると/hoge/hoge.shtml
と結果が返りますが、/hoge/のフォルダ名で終わる形にはできないでしょうか?
教えてください。
0042nobodyさん
2005/09/26(月) 05:03:27ID:ngVBM4RI0043nobodyさん
2005/09/26(月) 08:14:36ID:9OUzr1cB例えば、PHPのログインフォームからIDとパスワードを使ってログインする方法と
.htaccessでBASIC認証してログインする方法は、どちらがセキュリティ的に
高いと言えるでしょうか?
前者であれば各PHPファイルにログイン設定をしなければいけませんが、
後者なら.htaccessで制御するだけなので、非常に簡単です。
しかし、それだけで良いのかどうか迷っています。
0044nobodyさん
2005/09/26(月) 10:12:03ID:???どちらにせよセキュリティ重視ならSSLにするのは当然として、
どちらか選ぶなら前者。なぜなら誰がログインしたかが分かるから。
仮にパスワードが漏洩とか盗まれたりとかして不正アクセスがあっても、
同じログインIDで毎回リモホが変わってたらすぐ見つけられる。
>各PHPファイルにログイン設定をしなければいけません
こんなの簡単でしょ。ログイン時にセッション変数にログイン判定フラッグを格納しといて、
その有無を判別するif文を各スクリプトの先頭に書いとけばいいだけ。
0045nobodyさん
2005/09/26(月) 10:53:04ID:???BASIC認証もお手製認証も対して変わらないから、しっかりした認証の仕組みを作れるのなら、
付加的なメリットを組み込みやすいお手製でもいいんじゃないかな。
auto_prepend_fileを設定すれば、自動的にファイルを読み込んでくれるよ。
.htaccessで設定できるから、読み込み対象ファイルも指定できるし。
0046おれおれお
2005/09/26(月) 11:39:10ID:???ご教授お願いします。
ttp://cgi.au-lait.net/wiki.cgi?page=K%2DProf
0048おれおれお
2005/09/26(月) 11:47:44ID:???0049nobodyさん
2005/09/26(月) 11:48:04ID:???ここは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してメールを送信してるのに、
文字化けするときもあればしないときもあります。
ということは、(自動)エンコードの際に判定を誤ってるのかとも思いますが、
自分の書いたソースを見直してもどこがマズイのかわかりません。
005251
2005/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;
}
005351
2005/09/26(月) 12:42:52ID:???すみません、1行目に「;」が2つありますが、これはここにコピペした際に
補足として行末のコメントを書いたときにミスって付けてしまいました。
実際のソースでは「;」はもちろん1つです。
0054nobodyさん
2005/09/26(月) 12:48:05ID:l8/RJqBH<?php
if($u) {
echo $u;
header("Location: http://www.yahoo.co.jp");
exit;
}
?>
index.phpで以上のコードを作成したのですが
echoで$uの値は表示されるのに
ロケーションでヤフーに飛びません。
PHPのバージョンなどが問題なのでしょうか?
宜しくお願いします。
0059nobodyさん
2005/09/26(月) 13:30:42ID:???インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。
つーか、文字化けするならコード変えるぐらい思いつけよ。
0060nobodyさん
2005/09/26(月) 13:47:34ID:2nx2CLo8知ったかage
0061nobodyさん
2005/09/26(月) 13:52:54ID:???0062nobodyさん
2005/09/26(月) 13:56:58ID:???0063nobodyさん
2005/09/26(月) 14:01:28ID:???誰か教えてください。
0064 pc6.nucba-unet.ocn.ne.jprlo
2005/09/26(月) 14:06:36ID:+wttJfxy0065nobodyさん
2005/09/26(月) 14:08:04ID:???UTF-8で文字データを渡してやれば大抵のもので問題無く動作する筈なんだが...
具体的に使おうと思ってたライブラリの名前を出して解決策を聞いた方がいいんでないの?
ものによってできる内容が全然違うし。
0067nobodyさん
2005/09/26(月) 14:28:19ID:???なぜなら、>>52のソースにはmb_language("Japanese") とmb_send_mailがあるので
「メールソフトがこれをJISに変換する」という動作は組み込まれている。
だから>>59の言ってることは的外れ。
というか、>>59はマルチバイト関数の動作内容を知らないのかね?
0068nobodyさん
2005/09/26(月) 14:36:40ID:???0069nobodyさん
2005/09/26(月) 14:36:44ID:???0070nobodyさん
2005/09/26(月) 14:41:14ID:???mb_internal_encodingはスクリプトのエンコーディングを決めるものだから
メール送信(mb_send_mailの動作)には関係ないよ。
0071nobodyさん
2005/09/26(月) 14:46:11ID:???つ[http://www.res-system.com/weblog/item/478]
>>69
もちつけ、知ったかクン。
0072nobodyさん
2005/09/26(月) 14:48:42ID:???007367
2005/09/26(月) 14:49:02ID:???「そのあとで」って、何の後で??
「JISに変換する」はmb_send_mail関数の動作だぜ。
mb_send_mailの「後」に何がある?
0074nobodyさん
2005/09/26(月) 14:51:49ID:???っていうか、本文や件名も文字化けしてんの?
書き込みを見る限り本文とかは文字化けしてないようだが、
もしヘッダの送信者の部分"だけ"が化けてんなら、原因は謎だな。
mimeエンコードもちゃんとやってるみたいだし。。。
0075nobodyさん
2005/09/26(月) 14:57:34ID:???正確には覚えてないけどヘッダはJIS。他はどうにでもなる。だったはず
0076nobodyさん
2005/09/26(月) 15:00:36ID:eL6BgYRtPHP+MySQLでの日付についてなのですが、
SQLで直接日付部分をNow()でインサートすると、date関数で正常な曜日が返ってきました。
と言う事は、PHP側で生成している日付がおかしいのだと思うのですが、
date('YmdHis', time())で得たモノを、一端、年・月・日…にmb_strcutで分けて、
DBに登録時に結合してるのがいけないのでしょうか…。
みなさん、PHP+MySQLで日付を登録させる時はどのようにしているのですか?
(特に、好きな日付を登録したい時)
0077nobodyさん
2005/09/26(月) 15:30:21ID:???知ったかくんが答えるけど、JISはエージェント実装上の慣例でしょ
http://www.asahi-net.or.jp/~bd9y-ktu/dtd_f/rfc_f/rfc2047j.html
0078nobodyさん
2005/09/26(月) 15:53:45ID:???mb_send_mail使うんならContent-typeもContent-transfer-encodingも自動でつけてくれるので不要
mb_detect_orderの最初にメールの文字コードを書いておく
後はmb_languageをJapaneseかjaにしておけば自動的にメールの文字コードを判別してJISに変換してくれる
007951
2005/09/26(月) 16:01:09ID:???本文や件名は化けません。ヘッダーの差出人のところだけが、たまに化けます。
また、まったく同じ条件でも化けるときと化けないときがあり、再現性が分かりません。
>>78
>mb_detect_orderの最初にメールの文字コードを書いておく
これはつまり、メールの本文がスクリプト内に書かれている(=スクリプトのエンコードで書かれている)なら、
mb_detect_order(EUC-JP,・・・)と書けばいいわけですよね?
mb_detect_orderは今のところ記述してませんが、
それでも文字化けせずに送信できることもあるのは何故なのでしょうか。
(というか、文字化けすることのほうが少ない)
0080nobodyさん
2005/09/26(月) 16:04:02ID:???0081nobodyさん
2005/09/26(月) 16:29:46ID:???オレの場合。
DB鯖側での時間(=SQL文による時間取得/挿入)の場合はdatetime型。
Web鯖側での時間(=PHPのdate()やtime()による時間制御)の場合はint(10)型。
全ての時間をどちらでとるかは1つのシステムで一意にしといたほうがいい。
NOW()を多用するのが楽ではあるんだが、システムを作る上で業務として
よく用いるのは後者だったりする。他にデータを持っていっても柔軟に扱えるため。
テストなんかもしやすいしね。
■ このスレッドは過去ログ倉庫に格納されています