【PHP】下らねぇ質問はここに書き込みやがれpart14
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/12/18(日) 10:10:12ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
過去スレは>>2
0337nobodyさん
2005/12/26(月) 13:39:27ID:???0338nobodyさん
2005/12/26(月) 13:43:37ID:???本当にありがとうございました。
0339nobodyさん
2005/12/26(月) 14:04:32ID:???よくよく見るとこういったネタで埋まってるのな。
0341nobodyさん
2005/12/26(月) 14:55:26ID:???0342nobodyさん
2005/12/26(月) 15:03:30ID:???本当にありがとうございました。
0343nobodyさん
2005/12/26(月) 15:04:51ID:???本当にありがとうございました。
http://hobby7.2ch.net/test/read.cgi/car/1135550661/l50
0344nobodyさん
2005/12/26(月) 15:12:35ID:???本当にありがとうございました。
0345nobodyさん
2005/12/26(月) 18:04:54ID:???ホットメールに以下の要領でメールを送信しようとしているのですがmb_encode_mimeheader($char)を
加えるとメールを受け付けてくれなくなります。
$headers = "From: ".mb_encode_mimeheader($char)." <[email protected]>"
件名を省いて以下のようにすると受け付けてくれるのですが件名を加えてメールを受信して貰う方法は
ないのでしょうか?。
$headers = "From: <[email protected]>"
0346nobodyさん
2005/12/26(月) 18:10:13ID:???$headers = "From: ".mb_encode_mimeheader(mb_convert_encoding($char,"JIS"))." <[email protected]>"
としたら?
0347nobodyさん
2005/12/26(月) 18:25:19ID:???0348nobodyさん
2005/12/26(月) 18:33:40ID:???だめでした(^^;
ErrCode = -81
ErrString = [MAIL FROM:] not permitted by remote SMTP server
ErrInfo = 501 Invalid Address
SMAIL SMTP-Send MX = "pamx1.hotmail.com." SMTP = "test.co.jp" From = " =?ISO-2022-JP?B?GyRCJGYkJiRsJCQbKEI=?= <[email protected]" To = "[email protected]" Failed !
SMTP-Error = "501 Invalid Address"
SMTP-Server = "pamx1.hotmail.com."
0350nobodyさん
2005/12/26(月) 19:05:36ID:???Subjectです。ホットメールから逆に送ってみて比較したりするのですが良くわかりません。
ISO-2022-JPでエンコードしたら日本語が使えるというものではないのでしょうか?。
0353nobodyさん
2005/12/26(月) 19:21:33ID:???エラーメッセージは「そのアドレスは無効」と言っているから,
日本語云々以前の問題…というオチじゃないんだよね.
日本語入れなきゃ通るみたいだし.
ダブルクォーテーションは関係ないかなぁ.
うちのメーラーは「てすと <[email protected]>」とするとエラーが出て,
「"てすと" <[email protected]>」に訂正してしまうので.
半角英数のみだとクォーテーションなしでも通るけど.
的外れだったらゴメン.
0354nobodyさん
2005/12/26(月) 19:40:01ID:???あ、勘違いしていました。
subjectではなくて差出人名です(^^;すいません。
「"」を試してきます。
0355354
2005/12/26(月) 19:59:49ID:???From: ここに文字(英語含めて)が入るとだめみたいです <[email protected]>"
0356nobodyさん
2005/12/26(月) 21:03:46ID:???0357nobodyさん
2005/12/26(月) 21:44:13ID:???メールの仕様を詳しく解説してるサイトありませんか?
探したんですが見つかりませんでした。
0358nobodyさん
2005/12/26(月) 21:58:36ID:???俺んとこでは普通のメーラーからニックネームつきメアドが届いてるから大丈夫じゃないの?
1度、全く同じFromアドレスを一般的なメーラーで送ってみて、
エンコ内容やヘッダ内容の違いでも比較してみればいいんじゃないかと。
0360nobodyさん
2005/12/26(月) 22:43:32ID:???戻り値が「0」のことも考慮すると、
if (array_search($foo, $bar) === false) {
} else {
(やりたい処理)
}
という極めて美しくないソースになります。
こんなとき皆さんはどうされますか?
0361nobodyさん
2005/12/26(月) 22:45:13ID:???0363354
2005/12/26(月) 23:11:06ID:???Received: from home ([127.0.0.1]:1859)
by nature.dip.jp with [Mail Server]
id <S21> for <[email protected]> from <[email protected]>>;
Mon, 26 Dec 2005 23:05:58 +0900
「>>」とかなってるし・・・
前はここにも from =?ISO-2022-JP?B?GyRCJGYkJiRsJCQbKEI=?= <[email protected]>
とかなってたから、これが原因な気がします
どちらにしろ送信できないんですけどね(^^;
0364354
2005/12/26(月) 23:14:02ID:???0365nobodyさん
2005/12/27(火) 00:09:06ID:???エラーの内容がMAIL FROMがおかしいって言われてたよね?
それってヘッダじゃなくてSMTPのエンベロープFROMアドレスの事じゃないの?
sendmailで送信してるなら -f オプションでちゃんと指定してみたら。
0366354
2005/12/27(火) 10:10:17ID:???やはりPHPのmb_send_mailの「Form:」ヘッダーに「<」「>」が含まれている場合、他のヘッダー情報に「<<」や「>>」などの
悪影響を及ぼしてしまうように思います。FromはメールアドレスだけにしてReturn-Pathに同じように差出人名を入れた
場合はちゃんと届くのですが・・・。
x From: abc <[email protected]>\r\n
x From: abc [email protected]\r\n
x From: <[email protected]>\r\n
o From: [email protected]\r\n
0368nobodyさん
2005/12/27(火) 10:30:05ID:???echo ("<html><head><title=\"403 Forbidden\"></head><body>");
echo ("403 Forbidden<br>");
echo ("$host_name<br>");
echo ("$host_ip");
echo ("</body></html>");
exit;
こんなのって有りですか? IEとFirefox で挙動が違う。
0370nobodyさん
2005/12/27(火) 10:37:59ID:???まさか extra-headers にReturn-Path:行を追加したのではないよね
ちなみに、OSとPHPのバージョンとか、関連する設定はどうなってる?
0371354
2005/12/27(火) 10:39:39ID:???結果は全く同じでした(*ノ-;*)
PHP > X-Mail > メールソフトは差出人名を入れても上手く行くのですが
PHP > X-Mail > HotMail になるとエラーになります(^^;。
0372354
2005/12/27(火) 10:42:40ID:???あ、すいません。
Windowsなのでsendmail_path = の設定は出来ないと思うのですがどうなのでしょうか?。
XPSP2+XMail+PHP5.1.0です。
0373nobodyさん
2005/12/27(火) 10:47:39ID:???塚さ、WindowsでX-Mail使っているとか情報小出しにするなよ。
要するに、SMTPがX-Mailとかいうので、
宛先がホットメール以外だとうまくいくけど、
宛先がホットメールだとダメってことか?
差し出し人名を日本語でなくて英字だとどうなる?
ちなみに、ソース晒してみたら?
0374nobodyさん
2005/12/27(火) 11:06:54ID:???windowsならメールを送る前にini_set("sendmail_from","[email protected]");
してみたらどうかな。
ヒマなのでソースを斜め読みしたら、windowsの場合そいつがエンベロープFromに
優先的になってるようだ。
なんかfrom:ヘッダーから自動的に抽出してるみたいだけど、
そこのところが腐ってるのかも。
0376354
2005/12/27(火) 11:08:31ID:???ヤフーには正しく届きます。
ソースと言っても以下のようにやっているだけなのでこれと言って特別な事はしていないのです。
ホットメール厳しい(*ノ-;*)。
mb_language('Japanese');
mb_detect_order('sjis-win,eucjp-win');
mb_internal_encoding("UTF-8");
$mime_from = mb_encode_mimeheader(mb_convert_encoding($headers,"JIS"))." <[email protected]>\r\n";
$headers = "From: ".$mime_from;
$headers .= "Return-Path: ".$mime_from;
$headers .= "X-Mailer: PHP"."\r\n";
@mb_send_mail(
$to
,$subject
,$message
,$headers
);
0377354
2005/12/27(火) 11:13:14ID:???374さんのおっしゃるとおりでした。
ini_setしたら届きました<(_ _)>。
php.iniをちゃんと設定しろという話しでしたね・・・。
みなさま、ありがとうございました。
0378nobodyさん
2005/12/27(火) 11:15:52ID:???MAIL FROM でエンベロープを指定するようだ。
だから "From: hoge <[email protected]>" の場合は
MAIL FROM: <hoge <[email protected]>>
という事になって、これがSMTP的に正しくなくてエラーになるんじゃないかな。
つまりini_set("sendmail_from","[email protected]")しておくのは必須の気がする。
と、ここまで書いたところでもう解決してたのね。
0379nobodyさん
2005/12/27(火) 11:39:22ID:???とりあえず
<title=\"403 Forbidden\">
これは無いな
<title>403 Forbidden</title>
だろ
それとecho に( )使うのも違和感ある
0380nobodyさん
2005/12/27(火) 11:52:48ID:???echo () はどうかわからないけど
"" でくくってるから<title=\"403 Forbidden\">でいいんじゃない
0381nobodyさん
2005/12/27(火) 11:53:04ID:???txtファイルから読み込んでグラフの値に代入する時
txtファイルを配列に格納→y軸データの配列にそれぞれ変数を代入する。
の流れで出来ないのでしょうか?
0387381
2005/12/27(火) 15:16:55ID:???上手く出来なかったのです。
jpgraph1.19使用、レンタルサーバのphpinfoを見るとGD関連はenableでした。
解凍した中にあるsrcを
public_htmlの下にアップロードしました。日本語使用予定は無いので日本語化しておりません。
public_html/src/Examples/testsuit.phpを起動すると
この時点でいくつかのグラフは表示されませんでした。
この中で表示された一つのexample0.phpのソースを試しに改変する事に。
適当にy軸値を変えるとグラフも変わり、感動しつつ本題のテキストファイルのデータをグラフに反映しようとしました。
追加したのは、example0.phpのinclude以下に
$ufile = "./ufile.txt";
$fp = file($ufile);
list($a1,$a2) = explode(",",$fp[0]);
とし、$ydataの最後二つを$a1,$a2としてみたのですがグラフにはこの二つの変数は表示されませんでした。
public_html/ufile.txtとなっており、ファイルの中身は
10,15
となっています。
分かりにくい点などあるやもしれませんが、どうぞアドバイス宜しくお願いします。
0388nobodyさん
2005/12/27(火) 16:35:37ID:???example0.phpの<?phpの次に
ini_set("display_errors", 1);
error_reporting( E_ALL );
を追加する
0389nobodyさん
2005/12/27(火) 18:25:47ID:???JavaではintやbooleanのラッパークラスとしてIntegerやBooleanがありますが、それに相当するものです。
自作するのは簡単なのですが、PHPあるいはPECLなどにすでに用意されてあればそちらを使おうと思います。
あと、日付や時刻をあらわすクラスなんてのも探しているんですが、あれば教えてください。
よろしくお願いします。
0391nobodyさん
2005/12/27(火) 22:18:13ID:???全部型チェックさせてたのを思い出した。
いま? やめた。なんか文句言われたから。
0393nobodyさん
2005/12/28(水) 08:38:44ID:???ttp://www.phpclasses.org/
0394nobodyさん
2005/12/28(水) 15:04:17ID:???mime_content_typeするしかないのでしょうか?。
0396nobodyさん
2005/12/28(水) 18:02:58ID:???変数にバイナリデータがあるって事は、そのデータは作ったか取得したかのどっちかだよねぇ?
作ったのならmime-type決定してるはずだし、取得したならどーせ保存するんだからファイルに落とせばいいし。
何がしたいかによってやり方も変わる。
0397nobodyさん
2005/12/28(水) 18:20:02ID:???それがファイルに落とすなら良いのですがDBに入るので出来る事ならファイルに落とさずに処理したいのです。
やはり自作関数作るしかないですよね。そこまでするなら最初の何バイトかファイルに落として識別させるかな、
なんて考えています。ファイル名は拾得出来るので拡張子から判断するのも手だとは思うのですが、なんか
スッキリしない感じがします。
0398nobodyさん
2005/12/28(水) 18:42:31ID:???DBにファイル入れるのはあまりオススメできないが・・・
そーゆーことならテンポラリ作って処理するしかないだろうねぇ
0399nobodyさん
2005/12/28(水) 18:51:25ID:???地震なかった?
0400nobodyさん
2005/12/28(水) 19:16:44ID:???おれはいつも揺れてるから関係ないし
0401nobodyさん
2005/12/28(水) 19:22:28ID:???アドレスに、PHPの変数を混ぜたい時どうすればいいのでしょうか?
<SCRIPT language="JavaScript">
<!--
function winopen(w,h){
win1=window.open("$x.html","","width="+w+","+"height="+h);
}
//-->
</SCRIPT>
などにしたいのですが・・・。
0404nobodyさん
2005/12/28(水) 19:39:53ID:???ちょっとくらい外れてたっていいじゃない。
0405nobodyさん
2005/12/28(水) 19:40:33ID:???0406nobodyさん
2005/12/28(水) 19:42:55ID:???<!--
function winopen(w,h){
win1=window.open("<?php echo $x;?>.html","","width="<?php echo $w;?>","height="<?php echo $h;?>");
}
//-->
</SCRIPT>
ってことじゃないの?
0408nobodyさん
2005/12/28(水) 20:05:27ID:HUgW2hhm連続送信対策をしたいのですが
方法として、
送信者のIPを記録するログファイルを用意し
送信しようとするたびに、ログファイルから送信者のIPを
探し、ログファイルに存在しない、
もしくは存在してもタイムスタンプが規定の時間を経過している場合
送信を完了させる。
というものを考えています。
そこで、ログファイルからのIP検出の際
fgets()でシーケンスに調べていく他に、
一気に調べたりする方法
(1行ずつ見ず指定文字列がファイル内にあるか見るような関数)
はありますか?
あるなら、よろしければ関数名だけでも教えてください
0410nobodyさん
2005/12/28(水) 20:42:21ID:???<STYLE type="text/css">
<!--
body {
background-color: black;
font-size : 14px;
line-height : 27px;
word-spacing : 3px;
letter-spacing : 3px;
font-family : Verdana,sans-serif;
overflow-x:hidden;
}
-->
</STYLE>
とした所、リンクの下線は消えず・・・。
もしかして、PHP側にスタイルの制限あったりでしょうか?
0411nobodyさん
2005/12/28(水) 20:46:46ID:???$s = 'xx<0>x<3><2>x';
$a = array('A', 'B', 'C', 'D');
これを、<0> を $a[0] で置き換える、<1> を $a[1] で置き換える、.... ということをしたいです。
今はこうしています。
for ($i = 0; $i < count($a); $i++) {
$pat = '/<' . $i . '>/';
$s = preg_replace($pat, $m[i], $s);
}
しかし、これだと配列の長さが長くなるほどループの回数が増えます。
できれば、preg_replace()を1回だけ呼び出すだけにしたいのですが、できますでしょうか。
preg_replace_callback() を使えばできるのかと思いましたが、コールバック関数に $a を渡すことができないため、できなさそうです。
どなたか教えてください。
0412nobodyさん
2005/12/28(水) 20:46:54ID:???CSSスレ行きなされ。
0413nobodyさん
2005/12/28(水) 20:47:34ID:???ファイル保存も考えたのですが、そのファイルをURL自打ちされて外部からアクセスされたくないので
特定のディレクトリに置いてしまうのは気がひけたのです。ファイルを作成してURL外において要求
された時だけPHP経由で公開すると言うのが良いのでしょうか?。
>>408
私は邪道だからIP毎にファイル作成してます(^^;。
0414nobodyさん
2005/12/28(水) 20:48:56ID:???<style type="text/css" media="all">
<!--
a {
text-decoration: none;
}
-->
</style>
0415nobodyさん
2005/12/28(水) 20:49:36ID:???PHP以前の問題でしょ。
文体からして>>401と同じ人だと思うけど、
もうちょっとcssスレやjsスレで勉強してからきたほうがいいと思う。
これだけじゃかわいそうなので、
下線を消すためのcssは、border-style:none;など。
0418415
2005/12/28(水) 20:56:23ID:???border-style:none;ってのはきにしないでください。
0419nobodyさん
2005/12/28(水) 21:00:06ID:???申し訳ないです。
サイトで勉強してきますorz
答えて下さった方ありがとうございました。
0420nobodyさん
2005/12/28(水) 21:00:07ID:???良スレの悪寒……w
0421nobodyさん
2005/12/28(水) 21:32:32ID:???0423nobodyさん
2005/12/28(水) 21:55:23ID:???0425nobodyさん
2005/12/28(水) 22:04:55ID:???0426408
2005/12/28(水) 22:26:08ID:HUgW2hhmfile_get_contentsを調べてみました
確かに便利ですね
どうもありがとうございます
>>413さん
それも、便利そうですね
だけど、アクセス数が高くなってくると
ログファイルでパンパンになりませんかね^^;
利用人数に応じてそれも検討してみます
ありがとうございます
>>422さん
file()で配列扱いになるんですね
知りませんでした^^;
よろしければ、どういう形式で配列に入るか教えていただけませんか?
***.***.***.****(IP) , 2005/12/28/23:00(改行)
***.***.***.****(IP) , 2005/12/28/23:25(改行)
という形式とさせてください
0427408
2005/12/28(水) 22:26:50ID:HUgW2hhm0428nobodyさん
2005/12/28(水) 22:32:01ID:???1行の内容がそのまま配列1要素(改行付き)
なので、in_array()じゃ探せないな。
preg_grep('/^'.preg_quote($IP).',/', file("ファイル名"))
ってとこでどーよ?
0429nobodyさん
2005/12/28(水) 23:07:39ID:???0432408
2005/12/29(木) 00:50:22ID:ziv/ZkA5勉強不足で、教えてもらった関数が使いこなせないので
とりあえず、勉強しなおしてからまた明日にでも質問させていただきます
どうもありがとうございました。
IP
時刻
IP
時刻
・
・
・
みたいな書き出しかつ、シーケンス方式でIPを検出させれば楽なんですが
あまりにも、芸がないもので・・・
ちなみに、
アクセスするたびにDB(mysql)にログを残していって
DBから調べて・・・エラーか否かっていうのは
アクセス量にも寄ると思いますが、どんなもんでしょう?(鯖負荷など)
それではまた明日・・・ありがとうございました
0433nobodyさん
2005/12/29(木) 01:04:49ID:???大量のアクセスがあるならファイルに保存するよかDBがいいだろ。
その辺はアクセス数次第だから両方実装してみてベンチでも取って
想定されるアクセス量のときに速い方を選べ。一般的正解など無い。
0434nobodyさん
2005/12/29(木) 04:10:14ID:1WTCJJ6c引数が ?test=hoge の場合 文字例 AAAを出力し、員数が無い
場合何も表示しないようにしたいのですが:
$mode = $_GET['test'];
if ($mode = 'hoge'){print("AAA");}
とまではやってみたのですが、員数が無い場合
何も表示しない方法が分からなくて行き詰まってしまいました。
こんな私ですがよろしくお願いします。
0435nobodyさん
2005/12/29(木) 04:26:08ID:???if(count($_GET) == 0) { exit; }
とか
if($_SERVER["QUERY_STRING"] == "") { exit; }
とか。
POSTデータもチェック要るのか?これ。
0436434
2005/12/29(木) 04:56:52ID:1WTCJJ6cありがとうございます、員数は誤字でした。
>POSTデータもチェック要るのか?これ。
よく考えてみたら必要ありませんでした。
<?php
if($_GET['test'] == 'hoge'){echo "<p>マンセー</p>";}
if(count($_GET) == 0){exit;}
?>
としてみましたが、何故か「<p>マンセー</p>」がprintされません。(当然ですが「.php?test=hoge」としました)
echoの使い方は間違ってないと思うのですが…
エラーも出力されません。
■ このスレッドは過去ログ倉庫に格納されています