【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/
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()を多用するのが楽ではあるんだが、システムを作る上で業務として
よく用いるのは後者だったりする。他にデータを持っていっても柔軟に扱えるため。
テストなんかもしやすいしね。
0082nobodyさん
2005/09/26(月) 16:56:47ID:???入力をdate()でやるのはロケールが欠落するから完全ではない場合もあるが
008376
2005/09/26(月) 16:59:56ID:???うまく行きました。
問題は型だった?
PHP側での処理は、time()だったので、
>>82さんの言うのは当てはまらない??
んんんんー、謎です。
何が悪かったのでしょうか。
0084nobodyさん
2005/09/26(月) 17:04:14ID:???それともphpスクリプト自体が問題なければ、心配する必要は
なしでしょうか?
0087nobodyさん
2005/09/26(月) 17:14:10ID:???まあ他人に使われないならないんじゃない
悪用の仕方はリモートファイルを読み込んでeval()で実行させるとか
串代わりにするとかだろうから
0088nobodyさん
2005/09/26(月) 17:31:23ID:???ファイルパスを引数にとる関数は全部そうだけど
http://marc.theaimsgroup.com/?l=php-dev&m=111973903130155&w=2
0089nobodyさん
2005/09/26(月) 17:38:43ID:???cURLライブラリを使って実装しました。
ですが、セッションIDが全く別のものとなっていて、実装したいことができなく悩んでいます。
$header = "Set-Cookie: PHPSESSID=" . session_id();
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
のようにして、セッションを渡してみたのですが、うまく行きません。
どうにかして、同じセッションIDで実装したいのですが、解決策はないですか。
環境:PHP5.1b3, apache1.3.3, windows
0090nobodyさん
2005/09/26(月) 17:52:51ID:???実際送ったら上書きされるようなかんじ?
009189
2005/09/26(月) 17:57:49ID:???そうです。
送信側と受信側でsession idが全く別のものとなってるんです。
受信側はアクセスごとにsession idが違うものになってます。
0092nobodyさん
2005/09/26(月) 18:12:25ID:tV04tbjf面白いです。
●無料レンタルランキング
URL : http://rk.xgm.jp
●無料レンタルホームページ
URL : http://sp.xgm.jp
●無料レンタル掲示板
URL : http://bb.xgm.jp
●無料画像アルバム
URL : http://ph.xgm.jp
0094nobodyさん
2005/09/26(月) 18:18:05ID:???CURLをクライアントに使ってるなら、リクエストで“Set-”Cookie:ておかしくないですか
CURL的なクッキの送り方は判らないけど、Cookie: PHPSESSID=〜
0095nobodyさん
2005/09/26(月) 18:20:05ID:???// ケース1 set
// mb_language("Japanese"); mb_internal_encoding("EUC-JP");
$header = mb_encode_mimeheader("テスト送信者",'ISO-2022-JP');
// ケース1 out
print($header);
// ケース2
mb_language("Japanese"); mb_internal_encoding("EUC-JP");
// ケース2 out
print($header);
0096nobodyさん
2005/09/26(月) 18:40:45ID:???0097nobodyさん
2005/09/26(月) 20:06:11ID:???自分で書くスクリプトで問題が出るような作りをする香具師は
全体的に悔い改めるべきだと思う。ポカミスじゃなくて
理解不足の致命的なミスで危険な問題だから。
よく共有サーバでOffにした方が...という話も聞くが
そんならもっとPHPの動作環境を根本的に見直せと。
0098nobodyさん
2005/09/26(月) 21:29:45ID:???mkdirとかuseraddとか。出来るなら、その書き方がわかるサイトなどを
教えてもらえますか?ぐぐっても参考とするところが見つからなくて・・
0099nobodyさん
2005/09/26(月) 21:39:42ID:???そう熱くなるな。
関数の良し悪しじゃなく使う方のロジックの問題なのは誰も分かってるのに
どっかにサンプルコードあったからーとか安易に考えてるのが問題。
例えばinclude $_SERVER[REMOTE_ADDR'];は無問題だが
それをロジックで示せる人間は割と少ない希ガス。
>>98
おまいは示せそうにないな。
0101nobodyさん
2005/09/26(月) 22:00:00ID:???('**' は、ディレクトリ階層を再帰的にたどってくれるパターンです。)
これをサポートした関数ってありますか。
Rubyならできるとかいわれたんですけど、PHPでやりたいです。
0102nobodyさん
2005/09/26(月) 22:08:50ID:???正規表現が間違ってますか?
<?php
$date = "<li>aaaaaaaa</li><li>bbbbbbbb</li><li>cccccccc</li>";
$ary = split('<li>.*</li>', $date);
print_r($ary);
?>
0105軟式PHP
2005/09/26(月) 23:11:52ID:???<?php
$date = "<li>aaaaaaaa</li><li>bbbbbbbb</li><li>cccccccc</li>";
preg_match_all("/<li>.*?<\/li>/",$date,$reg);
print_r($reg);
?>
簡単にだけど。
0108nobodyさん
2005/09/27(火) 06:17:35ID:CN65Gin9を有効にして、php.iniを保存しました。
Apacheを再起動して、<?php phpinfo() ?>をブラウザからアクセス
するとMySQLの項目が表示される、と思うのですが
私の場合、Apacheを再起動すると、「php_mysql.dllがありません。」
のようなことをPCが叫びます。
どうしてでしょう?原因がさっぱりわかりません。ご教授くださいませ。
0109nobodyさん
2005/09/27(火) 06:50:18ID:NWOBxAVj0110nobodyさん
2005/09/27(火) 06:52:18ID:NWOBxAVj0111nobodyさん
2005/09/27(火) 07:55:07ID:???dllということはWindowsのようですからPHPを解凍したディレクトリにあるlibmysql.dllというファイルをシステムディレクトリ(例:C:\WINDOWS\system32\)にコピーすると幸せになれるかもです。
0112nobodyさん
2005/09/27(火) 10:24:29ID:???<?php echo date('m/d', filemtime('../xxx/zzz.log') ) ?>
なんですが、
色々なディレクトリに存在する複数のファイルを参照して、
いずれかが更新されていればその日時を表示させる、
というようなコードはないでしょうか?
../xxx/zzz.log 2005/09/25更新
../../yyy/yyy.dat 2005/01/01更新
./www.log 2005/09/26更新
↓
./www.log の更新日時を表示
0113nobodyさん
2005/09/27(火) 10:26:55ID:???何をもってして「更新されている」と判断するのかが分からない。
0114nobodyさん
2005/09/27(火) 10:50:45ID:B3+8rfdNstripslashes
バックスラッシュが取り除かれた文字列を返します。(\' が ' になるなど) 2つ並んだバックスラッシュは1つのバックスラッシュになります。
stripcslashes
バックスラッシュを取り除いた文字列を返します。C言語と同様に \n, \r ..., 8進表現, 16進表 現を認識します。
という説明があったのですが、よくわからないです。
0115nobodyさん
2005/09/27(火) 10:53:30ID:???>色々なディレクトリに存在する複数のファイルを参照して
ループ処理 + readdir 関数で1ファイルづつ舐めながら、
>いずれかが更新されていれば
基準となる UNIX 時間か何かと if 比較して
>その日時を表示させる、
date('m/d', filemtime('../xxx/zzz.log')
ってのは、そんなに難しい事なの?
0118nobodyさん
2005/09/27(火) 10:58:33ID:???>stripcslashes
手元の教科書には addcslashes 関数でクォートされた文字列をアンクォートする
って書いてある。用途別って事かと。
0119nobodyさん
2005/09/27(火) 11:02:27ID:???>>115でも書いてる通りの方法だけど。
$files = array('../xxx/zzz.log','../../yyy/yyy.dat','./www.log');
forerach($filelist as $value) $filemtimes[] = filemtime($value);
sort($filemtimes,SORT_NUMERIC);
echo $filemtimes[0];
0120119
2005/09/27(火) 11:03:36ID:???$files = array('../xxx/zzz.log','../../yyy/yyy.dat','./www.log');
forerach($files as $value) $filemtimes[] = filemtime($value);
sort($filemtimes,SORT_NUMERIC);
echo $filemtimes[0];
0121nobodyさん
2005/09/27(火) 11:28:55ID:???php/4.3.11にPOSTしたときの連想配列ってid属性じゃ受け取れないみたいで、将来的にどうしたらいいの?
0122nobodyさん
2005/09/27(火) 11:43:10ID:???0123nobodyさん
2005/09/27(火) 11:50:44ID:???XTML1.1のDTDから ttp://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod をDLしてくると、
<!ENTITY % InputType.class
"( text | password | checkbox | radio | submit
| reset | file | hidden | image | button )"
>
<!-- attribute 'name' required for all but submit & reset
-->
とあるから、nameを使ってええんでないの?
0124nobodyさん
2005/09/27(火) 12:46:22ID:???ありがとうございます。(--ゝ
参照するファイル数が増えると、多少読み込み時間は長くなりますかね?
>>120氏のコードは.phpとして保存して、別のphpのhtml部からincludeさせるというような方法でいいんですよね?
>>113
スミマセン。 「複数のファイルを参照して、更新日時の一番新しい物を表示」
の間違いでした。(汗
0125nobodyさん
2005/09/27(火) 15:29:08ID:???そんなとこでsortしないほうがよか
foreach($files as $value) $mtime = max($mtime, filemtime($value));
0127115
2005/09/27(火) 17:36:05ID:???うおー。max 関数を使って、そういう事ができるのか。
趣味でチマチマと PHP やってる程度の自分にとっては、目から鱗です。
また少し、書くスクリプトに幅を出せそう。
0128nobodyさん
2005/09/27(火) 18:00:11ID:???0131nobodyさん
2005/09/27(火) 20:37:55ID:???00134nobodyさん
2005/09/28(水) 10:15:01ID:???0137nobodyさん
2005/09/28(水) 10:43:06ID:???では、mysql_closeについて
「 持続的でないリンクはスクリプトの実行終了時に自動的に閉じられるの で、この関数は通常の場合必要ありません。」
と説明されています。
この関数が必要とされる「通常」でない場合とは、どのような場合でしょうか。
ヒントや手がかりでもお教えいただけましたら幸いです。
よろしくお願いします。
0138nobodyさん
2005/09/28(水) 10:57:23ID:???たとえば、DBから情報を取得してから、そのあとに長い処理が続く場合とか。
ほら、気持ち的に切っといたほうがいいだろ。
難しい話はしても分からんと思う。
0139nobodyさん
2005/09/28(水) 11:32:02ID:dxIsb4Ke1枚ずつというのは手間がかかるのでまとめて処理する方法があれば
教えてください。
0140nobodyさん
2005/09/28(水) 12:08:28ID:oH6eqvtcMail_mimePartを使いメールのエンコードをやってみました。
使ってみると、setTxtBodyで指定したメール本文が反映されずbodyの
値が入っていませんでした。
どなたかMail_mimePart::encode()の使い方、または参考になりそうなページを
ご存知の方いませんか?
0141nobodyさん
2005/09/28(水) 12:22:48ID:b9i0UmwQ自分はHoge.classなんですが。
0142nobodyさん
2005/09/28(水) 12:30:00ID:???エディタが拡張子で色分けとか判別する場合、.classだとJavaのソースとごっちゃになるから漏れは.class.phpにしてるけど。
まあフレームワークとか配布されてるコードでは.class.phpが一番よく見かける罠。
0143nobodyさん
2005/09/28(水) 12:33:39ID:???テキストとしてソース垂れ流しちゃう危険性もあるから、.phpで終わらせるのが普通。
*.inc.php
*.class.php
*.conf.php
とかかな。
0144nobodyさん
2005/09/28(水) 13:22:27ID:???0147nobodyさん
2005/09/28(水) 13:54:56ID:oiijkcifサーバーに負荷をかけなくてすむのでしょうか?
1、
echo"こん";
echo"にちわ";
2、
echo"こん".
"にちわ";
3、
$html .="こん";
$html .="にちわ";
echo $html;
4、
echo <<<EOD
こん
にちわ
EOD;
0148nobodyさん
2005/09/28(水) 14:11:10ID:???こんにちは
<?php
0149nobodyさん
2005/09/28(水) 14:57:24ID:oiijkcifありがとうございます
そちらの方向で行きます
0151150
2005/09/28(水) 17:13:12ID:???普通じゃんね。
あほだな俺。
スルーしてください(鬱
■ このスレッドは過去ログ倉庫に格納されています