[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/11 12:00 / Filesize : 340 KB / Number-of Response : 1015
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん(ワッチョイ 1342-Xqtn) mailto:sage [2016/11/09(水) 11:03:26.15 ID:eAjeihOa0.net]

PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 5(実質6)
echo.2ch.net/test/read.cgi/tech/1462971286/

次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

655 名前:デフォルトの名無しさん (ワッチョイ ff30-waAN) mailto:sage [2017/01/24(火) 22:59:12.64 ID:I87canmV0.net]
色々なCMSとかECで管理画面のURLを変更できますがどういう実装なんでしょうか
デフォルト /adminlogin
変更後 /hogehogelogin
ルーター?あたりでリクエストを見てごにょごにょ変更したりなんだりなんでしょうか

656 名前:デフォルトの名無しさん (ワッチョイ b356-JQ1R) mailto:sage [2017/01/25(水) 17:48:43.07 ID:Rne6Kw8A0.net]
Apacheサーバ上で動作するものならmod_rewriteで変更するのが定番中の定番

657 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/26(木) 00:36:54.30 ID:KyKDhrRS0.net]
>>649
それはルータのURIでしょうよ

>>648
そうでしょうね

658 名前:デフォルトの名無しさん (ワッチョイ 1fd6-Q0kd) mailto:sage [2017/01/26(木) 01:34:40.14 ID:MO+7T8JD0.net]
mod_rewrite楽でいいじゃんって感じで
rewriteしまくってわけわかんなくなってるサイトとか
マジ、いじりたく

659 名前:ないのが実在する []
[ここ壊れてます]

660 名前:デフォルトの名無しさん (ワッチョイ 5b42-y5A3) mailto:sage [2017/01/26(木) 23:05:32.18 ID:VOhYXAVW0.net]
単に管理用のプログラムの置く場所を、そのサイトで変えていると言うだけなんてことは無い?

661 名前:デフォルトの名無しさん (ワッチョイ f7ce-AZYz) mailto:sage [2017/01/26(木) 23:45:40.57 ID:cKDcvF/b0.net]
if文の条件でorを多用する時、スマートな書き方ってありますか?

if (A || b() || (C && d()) || $E || F);

↑こういうヤツです

662 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/01/27(金) 11:14:04.21 ID:r9WH4ZGI0.net]
>>653
あんまり量が多いようなら switch case で羅列する

663 名前:デフォルトの名無しさん (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 12:08:48.97 ID:0yUPeU9L0.net]
ネットで調べまくっても解決しないので質問させてください。

Win7にXAMPPをインストールしてPHPを勉強しているのですが、
mb_send_mailでメールが届きません。

ttps://techacademy.jp/magazine/4129
で説明のようにphp.iniとsendmail.iniを設定して
下記のPHPを読み込むと「送信成功」と出るのですがメールが届きません。
php.iniとsendmail.iniの設定は他のサイトで説明されている設定でもいろいろ試したのですが
変わらず届かないので他の問題があるのかなと考えているのですが
同じ症状を経験された方いませんか?

「送信成功」と出てsendmailのエラーが出ていないのでerror.logは作成されません。
迷惑メール等にもメールは見当たらず、gmailやyahooメール等いろんなsmtpを設定しても届いていません。

<?php
if (mb_send_mail('xxx@xxx.com', 'メール送信テスト', 'これはメール送信テストです')) {
print '送信完了';
} else {
print '送信失敗';
}



664 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/01/27(金) 12:22:22.94 ID:r9WH4ZGI0.net]
>>655
宛先が間違っているんやろなぁ

665 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 12:22:47.97 ID:d1ED6onW0.net]
認証方法が変わったりしたんだろ?
とりあえずPHPは後回しにして手動とか、コマンドで出来るか試す。

666 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/01/27(金) 15:46:24.32 ID:qE/DB39Q0.net]
>>655
mailヘッダ情報の設定やってる?
これデバッグできないなら諦めて
他のメールパッケージ使ったほうがいいよ

それでも動作しないなら、sendmailが原因

667 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/27(金) 16:17:02.67 ID:ywWwL4iXH.net]
>>655
今xamppをダウンロードしてみたんだが、ローカルのSMTPサーバを使うのがデフォルトみたいだぞ。

668 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/27(金) 16:22:12.36 ID:ywWwL4iXH.net]
で、ローカルのSMTPサーバを起動したらコントロールパネルでログを見られるみたいだから、
原因の切り分けができるのでは?
https://screenpresso.com/=GRn6e

669 名前:デフォルトの名無しさん (ワッチョイ 6f42-P4zY) mailto:sage [2017/01/27(金) 18:34:40.27 ID:K/AcGzHR0.net]
Windows 7だから、ローカルにメールサーバーが入ってないってことかも?
Linuxのディストリビューションだと、デフォルトで入ってるから悩まなくてもできるけど
Windowsだと・・Virtualboxとか使った方が早いかも?

670 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 19:02:58.26 ID:dfMoaU/d0.net]
xamppにメールサーバーはいってたはずだが
ただし原理は不明だが送信相手かプロバイダに弾かれるかして動作しなかったような・・
メールサーバーとして認められるなんらかの手続きがいるはずかと・・不明だが
しかしグーグル経由して送信するんだろ?

671 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/27(金) 19:11:25.07 ID:dfMoaU/d0.net]
これとおなじだろ。本物サーバーでなくて、メーラーと同様な動作させたいってことだろ? サーバーはグーグルまかせで。




xamppのMercuryを使ってローカル開発環境からメールを送信する
xamppなどを利用してローカルでメールフォームなどを開発する場合、その動作を確認できなくて困ることがあります。
原因は、単純にローカルマシン自身がSMTPサーバではないからです。

xamppにはその問題を解消するために「Mercury」というソフトが同胞されています。これまで、幾度となく何度もチャレンジしたのですが、うまくメールを送信できませんでした。
しかし、今回、設定に成功したのでメモとして残しておきます。

メールが送信されるしくみ
PHPの関数mb_send_mailなどでメールを送信すると、コマンドsendmailなどを使ってメールが送信されるのが通常です。

今回のMercuryを使う場合は、PHPでメールが送信されるとMercuryを経由して、Mercuryで設定したSMTPサーバにメールが投げられます。
つまり、Mercuryはローカルプログラムから受け取ったメールを、メーラーソフトと同じようにしてメールを送信しているわけです。

したがって、この環境を実装するためには、SMTPサーバが必要です。
もちろん、今利用しているISPのSMTPサーバで問題ありません。
helog.jp/xampp/mercury-mail/

672 名前:655 (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 19:26:49.62 ID:0yUPeU9L0.net]
返答遅れて申し訳ないです。

>>656
宛先は何度も確認して別のアドレス宛てにも送っているんで
間違いは無いと思います。

>>657
認証についてはよくわからないのですが、
PHPの本やmb_send_mailを説明しているサイトでは
そのまま問題なくできているようなのです。
メーラーやコマンドライン使って問題なくメールは送れました。

>>658
ヘッダー情報の設定もしてみたのですが結果は同じでした。
PHPのmb_send_mailの勉強なので、もっと出来るようになったら他の方法も勉強してみようと思います。

>>659
ローカルのSMTPサーバを使うまで進んでいませんが
mb_send_mailができないようでしたら勉強してみます。

673 名前:デフォルトの名無しさん (ワッチョイ f7f8-TlWQ) mailto:sage [2017/01/27(金) 19:30:01.77 ID:5anwLQVh0.net]
phpとは違うけど自分もメール送信できない事があってはまった事があった
原因はアンチウイルスソフトで大量メール送信をブロックしていたためだった
virusscanをもし使っていたら下記リンクを参考にしてブロックを外してみて
kayulog.seesaa.net/article/159312396.html



674 名前:655 (ワッチョイ 5320-Cjs8) mailto:sage [2017/01/27(金) 19:48:09.53 ID:0yUPeU9L0.net]
>>661-663
自分が試みているのは「xamppのfake sendmailを使ってローカル開発環境からメールを送信する」の方で、
↓のサイトでも問題なく出来ているみたいなんですが
同じ設定をしてもメールが届かないんです。

helog.jp/xampp/fake-sendmail/

675 名前:デフォルトの名無しさん (ワッチョイ 7e7b-316P) mailto:sage [2017/01/27(金) 20:02:05.93 ID:SOi9h9fX0.net]
Wireshark を使って、通信パケットでも見れば?

676 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/28(土) 10:35:24.40 ID:13qnO7m90.net]
質問です
「$sql = 'select time from sbdate';」
これを使って時間のデータの「40日前〜10日前」を呼び出したいのですがどう書き足すといいでしょうか?
また、登録されている時間のデータで一番新しいデータの呼び出し方も教えていただけると助かります。

677 名前:デフォルトの名無しさん (ワッチョイ 1fd6-Q0kd) mailto:sage [2017/01/28(土) 11:31:58.90 ID:7mM7CN4P0.net]
>これを使って時間のデータの「40日前〜10日前」を呼び出したいのですがどう書き足すといいでしょうか?

$sql = "SELECT time FROM sbdate WHERE time >= :start_date AND time <= end_date";
$params = array(
  "start_date" => date("Y-m-d", strtotime("-40 day")),
  "end_date" => date("Y-m-d", strtotime("-10 day"))
);

$result = SomeDBAccessLibrary::getInstance()->query($sql)->bind($params)->execute();

>また、登録されている時間のデータで一番新しいデータの呼び出し方も教えていただけると助かります。

$sql = "SELECT * FROM sbdate ORDER BY time DESC LIMIT 1";

$result = SomeDBAccessLibrary::getInstance()->query($sql)->execute();

678 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 00:24:45.60 ID:RwW5ifSZ0.net]
windowsと

679 名前:Linuxでまるっきり挙動が違うってのに初めて遭遇したんだけど
そうなるとやっぱりXAMPPって使わないほうがいいのかね?
[]
[ここ壊れてます]

680 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/29(日) 01:23:23.51 ID:q/JB8S+S0.net]
手元でもテストするけど最終的にはDockerで実環境を再現したコンテナ作ってテスト走らせるわ

681 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/29(日) 02:09:49.58 ID:9y6Ir6At0.net]
>>669
ありがとうございました。


XAMPPって駄目なのか
簡単に設定できたからずっと使ってた
今はローカルでやる場合は何が主流なんだろう

682 名前:デフォルトの名無しさん (ワッチョイ 5b42-y5A3) mailto:sage [2017/01/29(日) 02:27:11.14 ID:c27yycvu0.net]
仮想環境で実環境と同じOS使うのが楽だと思う

683 名前:デフォルトの名無しさん (ワッチョイ d3f8-AZYz) mailto:sage [2017/01/29(日) 02:38:41.26 ID:vdPv4D6s0.net]
別にだめじゃない。
XAMPP使っていて問題が起きるような人は結局、本番環境で開発しないと動かないコードが出来上がるタイプ。
つまりOS以外での差もあるわけで、Linuxで開発したからといって、本番環境のLinuxで動くとも限らないということ。
ていうか具体的にどこで問題がおきたの?
Windows専用とか、Windowsだと制限されてるものとかはあるだろうけど(初めて使うものはちゃんと調べる)、
PHPは曲がりなりにもマルチプラットフォームであって、OS差を埋めるためのコードはちゃんと存在するはず。
例えば定数とかうまく使えてる?



684 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/01/29(日) 03:10:55.44 ID:CzSBugT30.net]
本番サーバがLinux環境なら、ローカルもLinuxに合わせたほうがよくない?
環境維持は大事だと思う

685 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/29(日) 09:40:28.87 ID:9y6Ir6At0.net]
PHPの開発環境は皆どうしてる?
Google ChromeとTeraPadで書いて確認してたけど
なんかいいのあれば教えてください
流石に疲れました

686 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/29(日) 09:49:26.20 ID:VE53RC2e0.net]
エディタは好きなのでいいし、PHP開発の大部分はブラウザは不要だろ?
そっちがメインになることもあるだろうけど。
HTMLなど見える部分以外の動作を作るほうが多いからブラウザでの確認はあとでいい。

687 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 10:21:35.96 ID:RwW5ifSZ0.net]
画像周りのライブラリ拾ってきたときにWinとLinuxで動作違ったりしたな

688 名前:デフォルトの名無しさん (ワッチョイ ea30-Ve17) mailto:sage [2017/01/29(日) 10:24:34.69 ID:RwW5ifSZ0.net]
って670俺だわ酔っ払ってたすまん
>>674
mPDFでWinだと画像パス指定するだけでHTMLそのまま吐くんだけどLinuxだと404になってるのよね

689 名前:デフォルトの名無しさん (ワッチョイ d3f8-AZYz) mailto:sage [2017/01/29(日) 11:13:17.56 ID:vdPv4D6s0.net]
サードパーティ製はさすがにわからないけど、
症状からしても画像パスの指定方法に問題があるのだろう。

690 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/30(月) 21:53:03.65 ID:Jl7rOjwJ0.net]
ライブドアブログに記事をアップロードできるようにしたいがどうしたものか?
AtomPub APIというのを使えばできるとらしいが
使い方がわからん…
これは何かダウンロードして使うものなのだろうか?

691 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/30(月) 22:34:22.73 ID:gPTswH1+0.net]
そのくらい初心者でもできるだろ。じぶんも初心者だが・・・
ためしにやってるみる

692 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/30(月) 23:21:18.49 ID:gPTswH1+0.net]
>>681
投稿できたぞ
これそのままつかった

https://github.com/seiyaan/LiveDoorBlogAtomPub

693 名前:デフォルトの名無しさん (ワッチョイ 1fa0-fVsk) mailto:sage [2017/01/31(火) 00:15:35.31 ID:6jwW0/Fs0.net]
>>683
ありがとうございます。
とても助かります。

「通信に PEAR の HTTP_Request2 を使用しております。インストールをお願いします。」

うう…
また知らん機能を…
PEAR とか HTTP_Request2 って何なんじゃい
今日はもうギブアップ



694 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 00:40:09.72 ID:4WQSXuaN0.net]
http request2って古いな
普通にfile_get_contentsでできるんちゃうか

695 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/01/31(火) 00:48:01.99 ID:H/15YF7/0.net]
guzzlehttp/guzzleがPSRのインターフェイスの実装になってるからオヌヌメ

696 名前:デフォルトの名無しさん (JP 0H13-zSxl) mailto:sage [2017/01/31(火) 04:06:45.41 ID:WN418v1sH.net]
windows環境で何年も開発してるけど、本番環境で問題起こったことないよ?

697 名前:デフォルトの名無しさん (ワッチョイ 3338-P4zY) [2017/01/31(火) 09:16:31.18 ID:HVCS3sQm0.net]
phpの知識がないのですが、一通り学ぶのにオススメの本を教えてください。
おいらはC#でプログラム書いてます。
javascriptとperlの知識もあります。

698 名前:デフォルトの名無しさん (ワッチョイ f742-6a6W) [2017/01/31(火) 09:18:56.40 ID:I3GVvv+h0.net]



php_manual_ja.chm (18,027,986 bytes)

php.net/get/php_manual_ja.chm/from/a/mirror

699 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) mailto:sage [2017/01/31(火) 10:25:42.13 ID:AzvNrs+Ya.net]
質問です。投稿フォームからPOSTされた内容AとBを格納し 格納された値Aを
サイトに投稿、Bをメールで自分のアドレスに飛ばす、ということをやりたいです。

<?php
function h($str) {
return htmlspecialchars($str, ENT_QUOTES);
}
$rows = json_decode(file_get_contents('bbs1.json'), true);
if (!empty($_POST['write'])) {
$row = array(
'A' => $_POST['A'],
'B' => $_POST['B'],
);
array_unshift($rows, $row);
file_put_contents('bbs1.json', json_encode($rows));
}
?>
〜htmlによる入力フォーム。省略〜
<?php foreach($rows as $row): ?>
<strong><?php echo h($row['A']) ?></strong>
<?php endforeach ?>
<?php foreach($rows as $row): ?>
<?php
$_POST['B'] = $B;
mb_send_mail("example@yahoo.co.jp", $B)
?>
<?php endforeach ?>

としたのですが動きません。見当違いな箇所は多々あることは自覚していますが
どうすれば良いのか全く分かりません。何かアドバイスをお願いいたします。

700 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 11:02:26.33 ID:4WQSXuaN0.net]
$_POST['B'] = $B;

逆じゃないの?

701 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 11:04:20.78 ID:4WQSXuaN0.net]
このソース自分で書いたの?
<?php foreach($rows as $row): ?>
<?php endforeach ?>
htmlのこれどっちもいらんでしょ

702 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/01/31(火) 11:23:13.97 ID:AzvNrs+Ya.net]
お返事ありがとうございます

>>691
$B = $_POST['B'];
ということでしょうか?やってみましたが投稿はできてもメール送信ができません・・・

>>692
ttp://ponk.jp/php/file/bbs1
を参考に見よう見まねで打ちました
実際には4つぐらいの項目を入力したいのでこうした方が良いのかなと考えた次第です

703 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 11:54:46.58 ID:4WQSXuaN0.net]
>>693
掲示板だったのね。なら下のforeachだけ要らない

mb_language("Japanese");
mb_internal_encoding("UTF-8");

↑を<?phpの下に書いて

メールの部分をこうすれば送信できるんじゃないか
$email = "example@yahoo.co.jp";
$to = 'example@yahoo.co.jp'';
$header = "From: $email\nReply-To: $email\n";

mb_send_mail($to '題名', h($row['B']), $header);



704 名前:デフォルトの名無しさん (ワッチョイ 7e7b-316P) mailto:sage [2017/01/31(火) 12:07:20.02 ID:SZ8YrWi+0.net]
>>688
山田祥寛(よしひろ)、翔泳社
10日でおぼえる PHP 入門教室、第4版、2012

この本では最短で、一通り作れるようになるけど、文法の解説は少ない。
それに、もっと新しい本もあるかも知れない

705 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 12:45:54.81 ID:143GYQRi0.net]
>>688
perlでwebアプリ作成経験あるなら
関数リファレンス1冊あれば十分
それすらPHPマニュアル読めばいいから無くてもいい
あとはperlで作ったのと同じものをPHPで組んでみればいい

PHPは○○の処理する時には××という組み込み関数(あるいはライブラリ)がある
という事をできるだけたくさん知っておく事が大事だと思う
細かい使い方までは覚えて無くていい(使う時になって調べればいいだけ)

楽してなんぼのスクリプト言語で車輪の再発明はするなって事

706 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 12:48:39.39 ID:143GYQRi0.net]
>>676
PHP Storm一択
テキストエディタでシコシコPHP書くとか何の苦行だよって思うw

707 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 12:55:57.11 ID:143GYQRi0.net]
>>675
案件による

俺はCentOS環境を用意してるけど
最近のPHPで実装できるレベル(ハッキリいうとレベルが低い)の案件なら
大半はwindows環境でxamppで開発しても何ら問題ないな

708 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/01/31(火) 13:00:49.60 ID:AzvNrs+Ya.net]
>>694
ありがとうございます!教えていただいたように

<?php foreach($rows as $row): ?>
<strong><?php echo h($row['A']) ?></strong>
<?php endforeach ?>

<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");

$email = "example@yahoo.co.jp";
$to = "example@yahoo.co.jp";
$header = "From: $email\nReply-To: $email\n";

mb_send_mail($to , h($row[B]), $header);

?>

としたのですが合ってますでしょうか?"題名"の部分があるとエラーになってしまうので
一旦空白にしました

動かしてみたのですがメールは届くのですが内容が

From: example@yahoo.co.jp
Reply-To: example@yahoo.co.jp

だけでBに入力した情報は届きませんでした・・・
もし修正箇所等あればお教えください。質問ばかりですみません

709 名前:デフォルトの名無しさん (JP 0H13-zSxl) mailto:sage [2017/01/31(火) 13:03:28.72 ID:WN418v1sH.net]
windowsでいいよ
環境による違いって1%以下じゃね?
それなら開発しやすいwindowsのほうが楽

710 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 13:13:47.97 ID:4WQSXuaN0.net]
>>699
mb_send_mail($to, '題名', h($row['B']), $header);
, が消えてた

あと [B] じゃなくて['B'] だからな
それとフォームでBにpostしてるんでしょうね?
↑でダメならとりあえず $row['A'] で表示されるか試してみなよ

711 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 13:14:05.61 ID:143GYQRi0.net]
>>699
一連の流れを読んでないのに茶々を入れて申し訳ないが
メール送るのにmb_send_mail()使うとかやめとけ(細かい理由はググって勉強して)

俺は昔ZendFrameWorkのコードを元に自作してしまったが
探せばlocalからでも外部のSMTPサーバー使ってでも送れる
便利なライブラリがいくらでもあるだろう

PHPはメール一通送るのに苦労するような言語じゃないぞ
楽してなんぼの言語だ

712 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/01/31(火) 13:31:33.78 ID:AzvNrs+Ya.net]
>>701
失礼しました
今度は題名は表示できましたが他は空白で$row['A']でもダメでした・・・
すみませんもしかしたら誤解を与えていたかもしれないですが投稿フォームは一つで
サイトへの投稿とメール送信をしたい、という意味でした。>>690で省略したフォームは

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>掲示板1</title>
</head>
<body>
<form method="post">
A: <input name="A"><br>
B: <input name="B"><br>
<input type="submit" name="write" value="送信">
</form>
<hr>

です

713 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/01/31(火) 13:37:03.58 ID:AzvNrs+Ya.net]
>>703
またちょっと日本語が変でした
AとBという入力フォームと一つのボタンでAをサイトへ投稿、Bをメール送信したい
という意味です

>>702
そうなのですか?上級者向けだとか脆弱性があるとかでしょうか?
ともかくありがとうございます、調べてみます



714 名前:デフォルトの名無しさん (ワッチョイ e6af-AZYz) [2017/01/31(火) 13:46:41.41 ID:4WQSXuaN0.net]
>>703
ごめん $rowが書き換えられてたから表示されないんだわ

<?php foreach($rows as $r): ?>
<strong><?php echo h($r['A']) ?></strong>
<?php endforeach ?>

こうしたらできると思うわ
ちゃんと勉強して改造したほうがいいと思うけど

715 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 13:53:32.88 ID:143GYQRi0.net]
>>704
mb_send_mail()はPHPのmb周りの文字エンコーディングの扱いの事をよく理解しておかないと
文字化けを起こしたり予期せぬ動作を起こすから

メールソフトでメールを作るのと同じ感覚で
from,to,subject,cc,bcc,添付ファイルetcを指定するだけで簡単にメールを送ることができるライブラリがあるのに
わざわざメールヘッダを自分で組み立てる必要があるmail()・mb_send_mail()関数は
PHPで使う必要性は全くない

716 名前:デフォルトの名無しさん (ワッチョイ 5b46-FuHd) mailto:sage [2017/01/31(火) 14:00:11.16 ID:iovKNvqi0.net]
mailでメール送るぐらいならpopenでMTAにコマンド送る方がまだ勉強にはなるわな
mail使ってメール送ったところでこの関数の糞みたいな仕様を覚えるだけで融通が効かないし

717 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 14:03:28.08 ID:143GYQRi0.net]
>>707
そうそう
mb_send_mail()なんてPHPのダメな部分を凝縮したような関数だと思うw

718 名前:デフォルトの名無しさん (アウアウウー Sa7f-Hx4G) [2017/01/31(火) 14:09:43.37 ID:AzvNrs+Ya.net]
>>705
ありがとうございます!できました!
本当に感謝です。そうですね、ちゃんと噛み砕いて改造できるようにします

>>706
なるほど、そういうことですね
他の送信方法を調べてみますね。ありがとうございます

719 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/31(火) 15:18:40.23 ID:desKHZjFH.net]
>>707
> mailでメール送るぐらいならpopenでMTAにコマンド送る方がまだ勉強にはなるわな
勉強にはなるだろうが、実用度はどうかな

720 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/01/31(火) 15:46:06.26 ID:khfbkkxs0.net]
>>708
同時にもっとも便利な側面でもあるよな

721 名前:デフォルトの名無しさん (アウアウカー Sa5b-R94c) mailto:sage [2017/01/31(火) 16:57:19.69 ID:GujF4JLqa.net]
何も考えずswiftmailer使っとけばいいよ

722 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 17:21:30.16 ID:143GYQRi0.net]
>>710
localのMTAから添付ファイル付きのHTMLメールを送るとかだと
mail()関数使うよりpopenで直接MTA叩くほうがまだ簡単かもなw

723 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/01/31(火) 17:44:39.09 ID:desKHZjFH.net]
>>713
オナニーは一人でやってろ



724 名前:デフォルトの名無しさん (ワッチョイ 5b46-FuHd) mailto:sage [2017/01/31(火) 19:14:14.64 ID:iovKNvqi0.net]
メールで添付ファイル送る時にpopenを使うのってPHP4の頃は結構普通だったけどなあ
mailで送るのとコードの行数ほとんど変わらんだろ

725 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/01/31(火) 19:32:41.67 ID:143GYQRi0.net]
行数っていうかコードの内容自体がほとんど一緒になる(当たり前)
PEAR(笑)を使いたくない時は使ってたっけ

とりあえずオナニーって言葉が使いたかっただけかなとw

726 名前:デフォルトの名無しさん (ワッチョイ a33c-bF0B) mailto:sage [2017/01/31(火) 21:06:08.09 ID:JTv4YpQ+0.net]
mail($to, $subject, $message, $headers);

$m = popen($mta_path, 'w');
fwrite($m, $headers);
fwrite($m, $message);
になるだけだし
mail関数って何年か前から脆弱性を指摘されてたのに結局根本的な解決はされないまま最近になってやっとphpマニュアルに警告が載せられたでしょ
実用度でも後者の方が上だけど710はライブラリがどう実装されてるかコードなんて読んだ事ないんだろう
まあペチパーらしいよ

727 名前:デフォルトの名無しさん (ワッチョイ a33c-bF0B) mailto:sage [2017/01/31(火) 21:18:03.59 ID:JTv4YpQ+0.net]
>>715
今でも普通
自前で実装するかライブラリ側で実装してるかの違いだけで

728 名前:デフォルトの名無しさん (ワッチョイ d3f8-AZYz) mailto:sage [2017/02/01(水) 04:18:07.09 ID:8zVZaxIi0.net]
socketでsmtp実装するとかなんかと勘違いしてんじゃね

729 名前:デフォルトの名無しさん (JP 0H36-Ijd2) mailto:sage [2017/02/01(水) 11:20:13.83 ID:y1IRJd7eH.net]
>>717
お前こそmail()の中身知らずにいってるだろ
まずはPHPのコード読んでからもの言え
お前のは、単なるオリジナルコードの劣化実装に過ぎない

730 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 12:05:05.01 ID:AQgy4mwi0.net]
PHPのmail関数の実装って
簡単にいえばMTAパイプオープンしてコマンド流してるだけだろ

その過程で余計な事をやってるから使いにくいわけで
だったらmail()なんか使わずにpopenしてしまった方が楽って話
を皆さんがしてると思うわけだが
1人だけトンチンカンなのが居て笑えるw

731 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 12:14:12.24 ID:AQgy4mwi0.net]
ちなみに717が書いてる
>mail関数って何年か前から脆弱性を指摘されてた
ってのもPHPが「余計な事」をやってるせい
まぁそれこそ実装コード読めば分かること

今PHPマニュアル見たらやっとこの件について追記されたんだな
ほんと今更だけどw

732 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/02/01(水) 12:25:58.75 ID:LECYUBIq0.net]
Perlの頃はパイプ開いてやってたなー

733 名前:デフォルトの名無しさん (ワッチョイ 5b46-FuHd) mailto:sage [2017/02/01(水) 12:29:39.79 ID:2dY+W0qT0.net]
PHPMailerで話題になった脆弱性の件かなあ
PHPのコードレベルでいえば
mailやmb_send_mailの第5引数にphp_escape_shell_cmdを通してるのが原因のやつ
PHPマニュアルに書かれたのは俺も今はじめて知った

>1人だけトンチンカンなのが居て笑えるw
たしかに
mb_send_mailの糞の上に糞を塗り固めたようなPHPのコードとか本当に読んだことあるのかね



734 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 12:47:28.06 ID:AQgy4mwi0.net]
そうそう
PHPの関数で言うとescapeshellcmd()が勝手に適用される(PHPって本当にこういうのが多い)
せいでMTAがsendmailだと任意のコマンドを実行できてしまうって話
postfix使ってれば関係ないし今更sendmailねぇ…って思うけど
sendmailとか苦行過ぎて二度と触りたくないw

735 名前:デフォルトの名無しさん (オイコラミネオ MM76-bF0B) mailto:sage [2017/02/01(水) 13:00:46.75 ID:IzshbyCZM.net]
今の若いサバ管だとsendmail触れないのも多いんだろうな
いや俺ももう関わりたくはないけどさ

736 名前:デフォルトの名無しさん (ワッチョイ e650-Q0kd) [2017/02/01(水) 16:23:09.34 ID:C9GybJdQ0.net]
【OS】windows【PHP】5.6【連携ソフト】MySQL
exec()を使い別のPHPファイルを実行し、その別ファイルで主にmysqlで処理したいのですが、サーバー上ではなぜかsqlに接続できません。
条件として、exec()を使うにあたって呼び出し先のPHPは、サーバーで用意されているPHPと別のカスタムインストールしたPHP(同じホスト内)を使います。*利用しているサーバーでexec()を使用するために必要な措置。
exec()を使わなければMySQLは問題なく使えています。
そして、exec()を使って別のPHPファイルを実行するところまでは成功しています。
原因が分かる方いましたらよろしくお願いします。

737 名前:デフォルトの名無しさん (アウアウアー Sa76-R94c) mailto:sage [2017/02/01(水) 17:00:19.08 ID:dFm0/nQHa.net]
macOSを利用しておりmampを使って環境を準備しようとしてるのですが、数点教えてもらいたい事があります

macOSのターミナルでphp -v のコマンドを入力すると、5.系が出てきます
mampで7.xをインストールした後に、上記のコマンドを入力したのですが、変化がありませんでした
そこで、適当なphpファイルを作りmampのdocルートに配置、phpversion()を使って本当に動かしてるバージョンを出力したところ7.x系が表示されました

これって、mampがOSとは別にphpの実行環境を作って、OSとは無関係に動作させてるのでしょうか


後、mampはインストールして不要になって削除したりした場合にOSに影響出るとかはありますか
基本的にパスとかいじらなければ問題ないのでしょうか

mampのスレがなかったのでこちらに書き込みしましたがご存知でしたらお願いします

738 名前:デフォルトの名無しさん (ワッチョイ 6bc1-ngM0) [2017/02/01(水) 17:32:00.71 ID:LECYUBIq0.net]
>>727
お前はそれだけ聞いて原因が特定出切ると思うのか?

>>728
どのMAMP使ってるか知らんけどその程度よく分かってないならMAMPなんて使っちゃあかんで
macOSならそもそも標準でPHP入ってるし最新版もHomebrewで簡単にインストール出来る

739 名前:デフォルトの名無しさん (ワッチョイ e650-Q0kd) [2017/02/01(水) 17:56:31.57 ID:C9GybJdQ0.net]
>>729
もし使ってる人なら特定できないまでもある程度の見当は付くのではないかと思ってかなり省略しましたが、逆に他に何が必要でしょうか?

740 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 17:59:02.93 ID:AQgy4mwi0.net]
>>727
エスパーで答えてみるw

呼び出し元のPHPを「A」とし、Aから呼び出されるPHPを「B」とすると
Aを経由せずにBから直接MySQLに繋げられるか試してみたら?
たぶん繋がらない

741 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 18:04:44.97 ID:AQgy4mwi0.net]
>>728
ターミナルから php -i を実行して

mampのdocルートに置いたPHP
<?php
phpinfo();
でを実行して比較してみ

PHPのバージョン以外に違うところが分かるから
特にインストールパスに関する部分をよくみるといい

742 名前:デフォルトの名無しさん (ワッチョイ e650-Q0kd) [2017/02/01(水) 18:25:08.21 ID:C9GybJdQ0.net]
>>731
レスありがとう。早速試してみました。
呼び出し元をaaa.php、exec()による呼び出し先をbbb.phpとすると、
ローカル環境だとaaa.php、exec()使用による呼び出しのbbb.php、bbb.php直接ともにsqlに繋がります。
サーバーだと、aaa.phpとそれ以外もexec()不使用であればどれもsqlに繋がります。またbbb.php直接でも繋がります。
サーバーでexec()を使ったbbb.phpによるsqlの接続が出来ない状態です。(今のところSQL以外は問題なく実行できてる)
ホストは同じなのですが別のPHPからbbb.phpを実行しているのが原因でしょうか。サーバーの都合で別PHPを使っていてローカルでは同じPHPからの実行なので。。

743 名前:デフォルトの名無しさん (ワッチョイ 5b46-FuHd) mailto:sage [2017/02/01(水) 18:49:36.91 ID:2dY+W0qT0.net]
>>733
1.サーバー環境
2.aaa.phpとbbb.phpとmysqlは全て1の同一サーバー上にあるのか
3.aaa.php内で実行されるexec()の内容(具体的にどうやってbbb.phpを呼び出してるか)
4.bbb.phpからmysqlへはどうやって繋いでるか(pdoその他)
あたりを書いてみては?
そもそもexec()を使って実行ってのを本当にする必要があるのかってところから疑問ではある



744 名前:デフォルトの名無しさん (ワッチョイ 6bc1-R94c) mailto:sage [2017/02/01(水) 19:00:17.38 ID:LECYUBIq0.net]
まずどういうエラーで繋がらねぇのかが問題
つか出せる情報全部出せや何を出し渋っとんじゃ

745 名前:デフォルトの名無しさん (ワッチョイ eec9-AZYz) mailto:sage [2017/02/01(水) 19:08:26.13 ID:z0RwPWf30.net]
>>735
こういうアホ(に見られがちな初学者)は、
何が「情報全部」になるのかわからないんだよ

だから、全部出せなんていうのじゃなくて
○○と△△と□□を書け と具体的に指示すべき

746 名前:デフォルトの名無しさん (ワッチョイ 1f56-FuHd) mailto:sage [2017/02/01(水) 19:08:52.47 ID:AQgy4mwi0.net]
こういうレベルの質疑所では少ない情報からエスパーで回答を導き出すのも1つの楽しみ方ではある
いや質問する以上は出せる情報は出すべきなのは確かなんだけどw

>>733
なんかあまり読まずに適当なこと書いてすまなかった

747 名前:デフォルトの名無しさん (アウアウカー Sa5b-R94c) mailto:sage [2017/02/01(水) 19:19:51.15 ID:O7iUTg1Sa.net]
>>736
ご尤もではあるがテンプレ読まない従わないはNG

>>737
悪くはないが勘違いを生産しないためにもこっちがオススメよー

エスパーが質問に答えるスレ
ttp://echo.2ch.net/test/read.cgi/tech/1187922645/

748 名前:デフォルトの名無しさん (アウアウウー Sa7f-R94c) mailto:sage [2017/02/01(水) 19:39:38.68 ID:Dgu+KGMra.net]
あんがとさんです

>>729
ホームブロウ?実はこれを使いたくないというのがmamp使う理由で、まあ言って仕舞えばOS汚したくない病なんですよね、、、
今のところ仮想環境にもう1つmacOS入れるかたまに使う仮想Windowsにmampを入れようか検討
けど、リソース無駄だし快適に操作したいからmacOSに直接入れるか悩んでるんですよね
前にPythonとか勉強してたときはLinux仮想で何とでもなったんですが、mampがLinuxないから
めんどくさがらずxammpとか使えば良いのか、、、

>>732
やってみたのですがパスはデフォの/usr/bin/phpでござった、というかよくわからんかったです

749 名前:デフォルトの名無しさん (アウアウカー Sa5b-R94c) mailto:sage [2017/02/01(水) 19:47:06.68 ID:O7iUTg1Sa.net]
>>739
homebrewなんかよりMAMPの方がよっぽど何やってるか分からんと思うのだが
お前さんの現状がそれを証明してるでしょ

homebrewが嫌なら標準のもの以外何使ったって一緒だし
プログラムより先にその辺勉強したら?

750 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/02/01(水) 21:05:47.39 ID:yFAqAUso0.net]
>>739
もし可能であれば、
homebrewを使う
or
vagrantを使う

個人的には後者で、Lamp環境などをCentOSで構築したい派
ただしその場合、Linux環境を整える知識もいるけど、
サーバサイド開発者にとってLinux操作は欠かせないからやろうぜ

751 名前:デフォルトの名無しさん (ワッチョイ bf17-bE/B) mailto:sage [2017/02/01(水) 21:16:11.38 ID:+ImP5E6S0.net]
>>740
あんまりその辺理解しないでMAMP使おうとしたのがそもそもだめだったのね
別の言語で環境とかでめんどくさい思いしたから楽できるなら楽しようかと思ったのが間違いか

>>741
一応、Linuxのエンジニアだからそっちの知識はそれなりにあるんだけど、
さっとPHPの本とか勉強して簡単なものなら作れるくらいになりたいなーって思って

ま、出直してきます

752 名前:デフォルトの名無しさん (ワッチョイ 6bc1-y5A3) mailto:sage [2017/02/01(水) 21:23:04.08 ID:LECYUBIq0.net]
>>742
Linuxのエンジニアの癖にwhichも知らんとかうっそだろお前

753 名前:デフォルトの名無しさん (ワッチョイ ee5b-FuHd) mailto:sage [2017/02/01(水) 22:44:15.69 ID:yFAqAUso0.net]
>>742
Linuxエンジニアなら、尚更mamp使う必要ないし
vagrantなり、VM環境でやったほうがいいよ



754 名前:デフォルトの名無しさん (ワッチョイ bf17-R94c) mailto:sage [2017/02/01(水) 23:02:41.06 ID:+ImP5E6S0.net]
>>743
ホントでっせ
whichはわかるが、今回のお悩み解決に自力で繋がらなかったからここで聞いたんよ、許して

>>744
アドバイス通りさっきsuseさんでphp7の環境作った!楽しようとしたのがあかんかった
実務で使うわけじゃないがmampで本番環境とか動かしてるところなんてなさそうだし
自分で環境作るってのは大事な勉強と痛感いたしました

755 名前:デフォルトの名無しさん (ワッチョイ 6f42-P4zY) mailto:sage [2017/02/01(水) 23:10:31.30 ID:OMBPerng0.net]
>>727
よくあるトラブルとしては、環境変数周りかな
localとサーバーで違ったりするから

あとexecだと、パスが違うとか、インクルードがうまくできてないとかも多いけど
エラーログとかに普通は何か出てるからわかると思うが






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<340KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef