【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/
0582nobodyさん
2005/10/08(土) 03:30:52ID:CIqOzoxdPHPを使おうかSSIを使おうか迷っています。
サーバーに不可がかからず表示が早いのはどちらが早いんでしょうか?
0583nobodyさん
2005/10/08(土) 03:51:34ID:???鯖のことを考えるなら本当にCGIが必要かどうかから検討すべき。
そうでないなら好きなほうで。
0584582
2005/10/08(土) 04:23:18ID:CIqOzoxd動的なメニューです。
鯖への負荷や表示の速度は
PHP、ssiどちらをつかっても変わらないってことですか?
0585nobodyさん
2005/10/08(土) 04:31:24ID:???中身が作りこまれてないのにどっちがなんて比較できないだろ?
まあ、テキストをincludeさせるだけなら、SSIの方が軽い。
0586582
2005/10/08(土) 04:45:21ID:CIqOzoxdありがとうございます、SSIでやってみます
0588nobodyさん
2005/10/08(土) 09:13:52ID:???セキュリティの為、
GETで取得した値が3桁の数字以外だったらエラーという処理を行いたいのですが、
if(!(ereg("([0-9]{3})", $_GET['code']))){echo "不正な値です"; exit;};
上記だと3桁以上の数字にもマッチしてしまいます。
どうすれば3桁の数字のみマッチする様になるのでしょうか?
0589nobodyさん
2005/10/08(土) 09:25:49ID:???たとえばA.php(フォーム)からB.phpにPOSTして結果表示するとして、
B.phpではリロードをされたくない場合(リロードされたら処理を中止してエラーに)。
いろいろ考えてみたけど、かなり複雑にしないとリロード対策できないみたいね…
リロード対策くらい標準関数またはライブラリで用意してほしいですね。
0590nobodyさん
2005/10/08(土) 09:37:30ID:???if(isset($_GET['code'])
&& is_numeric($_GET['code'])
&& strlen($_GET['code']) == 3){
echo "適正な値かも";
}else{
echo "不正な値です";
exit;
}
0592nobodyさん
2005/10/08(土) 09:45:13ID:???えっっ、セッションでどのように?
A.phpでセッション変数に値を格納しておいてB.phpでリロードしても、
ずっとセッション変数は格納されたままだからリロード判定には使えないのでは。。。
0594nobodyさん
2005/10/08(土) 11:05:35ID:???>>590が正しいっちゃ正しいが、めっちゃ丁寧。
簡単に対応させたかったら、その正規表現を"^[0-9]{3}$"にするといいよ。
「^」が最初、「$」が最後って意味。今のまんまだと、3桁の数字が含まれてたら〜、になってるはず。
完全一致にこれはよく使うから覚えとくとよし。
0595nobodyさん
2005/10/08(土) 11:12:32ID:???0596nobodyさん
2005/10/08(土) 11:16:51ID:???0597nobodyさん
2005/10/08(土) 12:47:10ID:???Linuxでsendmailを使ってメール送信をするプログラムなのですが、ちゃんと動かず、
どうも拡張モジュールがうまくいってないようだと思い、再確認したんですが
コンパイル条件にも--enable-mbstringをつけてるし、php.iniのextension_dirも
/usr/local/lib/php/extを指定しています。おかしいなと思って確認すると、
phpフォルダ下にextフォルダがありません。これってどういうことでしょうか?インストールがうまくいってなかったってことですかね?
どなたかアドバイスお願いします。
環境はFedoraCore4,php5.0.4です。
0599nobodyさん
2005/10/08(土) 13:07:09ID:???色んな可能性が考えられる。
phpinfoで確認して全部正しいか確認しる。
extension_dirはサーバーによって違ったりするから自分で確認して再セット。
あとはブラウザから呼び出して実行とかしてるんなら、php.ini弄ったらapache再起動な。
0600nobodyさん
2005/10/08(土) 13:19:35ID:???これってどういうこともなにも、そのまんま、無いってことだろ
cd /usr/local/lib/php/ext
が通るか?
0601588
2005/10/08(土) 13:30:39ID:???>>594
>>598
ありがとうございました。
590氏がソースまで記述してくれたので、
これを手本にやってみます。
完全一致の件も参考になりました。
0602nobodyさん
2005/10/08(土) 13:39:56ID:???正規表現の話なら
^[0-9]{3}$
とか
0603nobodyさん
2005/10/08(土) 13:57:40ID:???PHPのconfigure時に--enable-mbstringを付けてビルドしたのなら、mbstring関数は *静的* に組み込まれる。
なので、mbstringに関しては、extフォルダやmbstring.soがどうこうは関係ない。
<?php phpinfo(); ?>を実行して、Multibyte Supportがenabledになっているかどうかを確認してみたら?
ただ、sendmailが動作しない→拡張モジュールがうまくいっていない、という判断は正しいのかな。
sendmailが動かないというスクリプト、エラーメッセージ等を晒した方が早いんじゃないかな。
0606nobodyさん
2005/10/08(土) 14:44:19ID:???おまいら親切だな。
質問があるんだが、もう少しROMしてFAQ調べて、
切り分けて、環境書いて聞くことにする。
良スレだ。
0607nobodyさん
2005/10/08(土) 14:50:36ID:51SvXaJnPHPのプログラムを作りたいと思っているのですが、お教えいただきたいことがございます。
作りたいと思っているのは、HP上に申し込みフォームのようなものを作成し、送信していただいたものを
メールで受け取るというものです。
そこでネット上でその一連の処理のサンプルプログラムをもらったのですがフォームの項目などを
自分が望むように作り変えるには、どの部分を変更すればいのでしょうか?
そのサンプルをアップローダーにあげていますのでどなたかご教授願えませんでしょうか?
サンプルです↓
indexと完了画面と自作のライブラリが入っています。(この自作のライブラリの意味がまったくわかっていないのですが
何もいじらなくても大丈夫でしょうか?)
http://up.spawn.jp/file/up1899.lzh
私自身、付け焼刃の知識なのですが、indexの上のほうの入力チェックのところと、メール送信処理の部分と最後のフォーム
の項目を作るところを変更すればよいと思うのですが違うのでしょうか?
フォームの項目を追加したりするのは大丈夫だったのですが、最初の方の入力チェックのところを変更するとブラウザで
表示させても真っ白な画面になってしまいました。なぜでしょうか?
上記のサンプルに自分自身でフリガナの項目を追加したものも上げますのでどこが間違っているかご指摘願えませんでしょうか?
サンプルです↓(なぜか真っ白になってしまい、表示されない)
http://up.spawn.jp/file/up1900.lzh
phpファイルがupできないためlzhファイルに圧縮していることをお許しください。
長文失礼いたしました。
0608nobodyさん
2005/10/08(土) 15:00:20ID:???up1900.lzh に含まれる index.php だけど、10行目の先頭が全角スペースになってるね。
if ( $_REQUEST[ "VALUE_KANA" ] == "" ) {
~~
半角スペースにすれば大丈夫だと思うよ。
php.ini の display_errors を On に設定すれば、真っ白ページではなく
ブラウザにエラーメッセージを表示してくれるので設定しておくといい。
0609nobodyさん
2005/10/08(土) 15:31:05ID:???0610608
2005/10/08(土) 15:41:22ID:???up1899.lzh の方も見てみた。おまいさんが書いた、
indexの上のほうの入力チェックのところと、メール送信処理の部分と最後のフォームの項目を作るところを変更
で大丈夫。index.php 以外は触らなくてもいい。
ただ、元のスクリプト自体が結構いいかげんなので >>608 で書いた display_errors = On にすると
警告メッセージが一杯表示されてしまうので、
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
の両方を設定するか、元のスクリプトを修正(こちらの対応が望ましい)した方がいい。
他にも mb_xxx の文字コード指定等、修正した方がいいところはあるけど、キリがないのでこの辺で。。。
>>609
暇だったもので。
0611597
2005/10/08(土) 16:50:54ID:wzJ6Bsx7>>599>>603
phpinfoの一部をコピペします。
Configure Command './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-gd' '--with-zlib' '--enable-mbstring' '--enable-trans-sid' '--enable-soap'
mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation enabled
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.0
エラーメッセージらしきもの
Warning: mb_send_mail() [function.mb-send-mail]: Missing To: field in /usr/local/apache2/htdocs/php10/day04-1/sendmail.php on line 9
>>600 通りません。phpの下にextがありません。
0612597
2005/10/08(土) 16:51:49ID:wzJ6Bsx7<?php
$header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="■■".$_POST['_subject']."■■\n\n";
foreach($_POST as $key=>$value){
if(!strstr($key,"_")){
$body.="[".$key."]".$value."\r\n";
}
}
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>
ちなみにapacheを立ててやってます。sendmailのパスは/usr/sbin/sendmail -t -i -f〇○○@〇○○.co.jp (自分のアドレス)
どうでしょうか???
0613nobodyさん
2005/10/08(土) 16:53:44ID:???そんな関数はないのでしょうか?
0614597
2005/10/08(土) 16:57:05ID:???ちなみにwindowsでは同じプログラムでメールが送れました。
0616603
2005/10/08(土) 17:05:13ID:???エラーメッセージが Missing To: field なので
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
行で参照している $_POST['_email'] の中身が空なんだと思う。
sendmail.php を呼び出している側を見直してみたら?
とりあえずメールが送信できるかどうかのテストなら
mb_send_mail('おまいさんのメールアドレス',$_POST['_subject'],$body,$header_info);
でテストはできるけれど。
0617nobodyさん
2005/10/08(土) 17:48:11ID:???「内部的に組み込まれた関数」をもう少し正確に。
スクリプト内部で定義した関数は、そのまま関数名で呼べるし
文字列に入ってる関数名でも呼べる手段がある。
そういうことを言いたいのじゃないと思うけど。
0619597
2005/10/08(土) 17:54:17ID:wzJ6Bsx7なんか説明不足ですみません。
このシステムはmail_input.phpからsendmail.phpを呼び出すプログラムなので
値はちゃんと渡されていると思います。さっきのエラーメッセージはsendmail.phpに直接アクセスしたときのものでした。
ちなみに
<?php mb_send_mail(アドレス,件名,本文); ?>
というプログラムにアクセスしてもメールは送られませんでした。
ということはやはり拡張関数がうまく機能していないのではないでしょうか?
また、各サイトを回ってみましたが、/usr/local/lib/php/extが無いという例はありませんでした。
やはりphpフォルダの下に、*.soを含むextフォルダが無いことが原因でしょうか?
0621nobodyさん
2005/10/08(土) 18:13:31ID:???phpinfo()のほうが詳しいが、$ php -mで組み込まれてるモジュールが見える。
上で言われてるように静的に組み込まれてるんだよ。そういう風にConfigurしてるんだから。
soが出来るのは --with-foobar=shared のように指定した場合だけ。
あと「渡されていると思います」って何?
0623nobodyさん
2005/10/08(土) 18:18:06ID:???>やはりphpフォルダの下に、*.soを含むextフォルダが無いことが原因でしょうか?
本当に>>603を読んだ上での発言なのか?
0625623
2005/10/08(土) 18:25:39ID:???sendmail_path =/usr/sbin/sendmail -t -i -f〇○○@〇○○.co.jp
と設定しているって意味でいいんだよな?
phpが動作しているサーバーにログインして
echo "To: 送信先メールアドレス" | /usr/sbin/sendmail -f〇○○@〇○○.co.jp
で正常にメール(タイトル、本文は空)は届くのか?
0626nobodyさん
2005/10/08(土) 18:28:29ID:???ただ単にphpから、sendmailコマンドでメール送るだけのプログラムを書く。
文字通りそれだけ。
つーか、fc4の環境は知らんが、/usr/sbin/ なんていきなり叩けるのか?
0627613
2005/10/08(土) 18:46:34ID:???すみません、言葉足らずでした。
strlen()やarray_push()みたいに予め用意されている関数のことです。
自鯖ではMySQLを使っているのですが、レン鯖ではSQLiteな為、
関数呼び出しの度に場合分けするよりcall_user_func()みたいに指定して呼び出すことが出来れば
場合分けが1度ですみ楽だなぁと思ったもので・・・
0628nobodyさん
2005/10/08(土) 18:46:44ID:???0629nobodyさん
2005/10/08(土) 22:49:43ID:???テキストボックスにパスワードなどを入れて、キーボードのEnterキーを
押すと、submitボタンがクリックしてログイン出来るというのが普通だと
思うのですが、なぜかEnterキーを押しても反応しません。
マウスで送信ボタンを押さないと。。
これってどうしてこうなるのでしょうか?なにかFormに設定や記述が必要なのでしょうか?
0630nobodyさん
2005/10/08(土) 23:04:39ID:???HTMLで作ってんじゃないの?
テキストボックスにパスワードですか。
テキストボックスが複数あるとエンターで送信出来なかったりするらしい。
実験してないから知らんけど。
ユーザ名はテキストボックスで、パスワードはtype=passwordにしてみれば?
関係ないけど、
>submitボタンがクリックしてログイン出来る
日本語が変ですよ。
0631nobodyさん
2005/10/08(土) 23:22:28ID:???その辺はブラウザが行う動作なのでPHPは関係ないし、ブラウザ毎の振舞いの話なので
オマイさんの言う「普通」というのはありえないよ。
確かにそのように動作してくれるブラウザの方が多いとは思うけれど。
別のブラウザで試してみるか、動作しなかったブラウザをカキコしてみればだれか
追試してくれるかもね。
参考までに以下のブラウザでは大丈夫だったよ。
IE6 SP2、Opera8.01、Firefox1.0.7
確認なんだが、本当に submit ボタンなのか?
属性が button で javascript で submit しているとかではないよな?
0632nobodyさん
2005/10/08(土) 23:28:22ID:???入力欄が複数あってもEnterキーで送信されると思うんだけどな。
あ、でもNetscape4.9ではダメだった。
0633630
2005/10/08(土) 23:33:44ID:???やっぱそうなんだ。
ttp://www.tohoho-web.com/lng/199905/99050015.htm
ググってすぐ出てきたんだけど、ネスケだめだって書いてた。
てゆか別にエンターで送信出来なくてもいいじゃんね。
タブ→エンターとかで問題ない。
0634nobodyさん
2005/10/08(土) 23:38:11ID:???0635nobodyさん
2005/10/09(日) 01:03:28ID:???「リターンキー」と言ってしまう中年でした
0636nobodyさん
2005/10/09(日) 01:48:24ID:???$headerinfoの中身をってかその場所直にでもええけど
"From: [email protected]" ようはFrom: フィールド
だけにして試してみなされ。
0637nobodyさん
2005/10/09(日) 02:48:10ID:???あるテーブルの内容が
パターン表 { NO , CL1 , CL2 , CL3 } という4つの列で構成されていたとして
CL表 { CL , CLNAME } への参照をしています。(CL1〜3 references cl(cl) )
SQLで、CL1,CL2,CL3に対応するCLNAMEを結果として出力するには
どんなSQLがありますかね。。。orz
0638nobodyさん
2005/10/09(日) 07:51:27ID:???0639nobodyさん
2005/10/09(日) 09:04:53ID:???何故ベンチを取らないのか不思議だが
ファイルI/Oに構文解析という糞重い処理が、関数のコールより軽いわけが無い
何度もIncludeを繰り返すとかもうアホかと
ただし速ければいいというわけじゃなく意味的に関数にふさわしいかどうかは考慮する必要がある
0640nobodyさん
2005/10/09(日) 09:29:10ID:???そういや今読んでるAjaxACのソースでもメソッド内で
外部ファイル読んで(requireだが)たりするな
0641nobodyさん
2005/10/09(日) 10:18:15ID:???何度も呼ばれる処理をinclude()するのが関数よ
りはやいケースって例えばどんなですか?
コンパイル済みのをメモリにキャッシュ出来るけど
それでもinclude()のスタックは削れないし、そも
そもこれはファイルの中身によるというわけでは
ないし。ピンとこないです。
0643nobodyさん
2005/10/09(日) 11:07:13ID:???0644nobodyさん
2005/10/09(日) 11:12:59ID:???0645nobodyさん
2005/10/09(日) 12:09:35ID:???0646nobodyさん
2005/10/09(日) 13:47:17ID:???0647nobodyさん
2005/10/09(日) 14:03:21ID:???0648nobodyさん
2005/10/09(日) 14:10:53ID:???0649nobodyさん
2005/10/09(日) 16:22:16ID:???0650nobodyさん
2005/10/09(日) 16:36:55ID:???0651nobodyさん
2005/10/09(日) 17:02:46ID:???上の質問読まずにレスしてるか関数を知らないという、ただそれだけのことだろ
0652nobodyさん
2005/10/09(日) 17:18:15ID:???�麓b]
ファイル一覧を表示させようとしています。
ディレクトリ[a]の中にディレクトリ[b]があります。
$dh = opendir(".");
while(($entry = readdir($dh))){
print"$entry\n";
}
↑のようなPHPファイルをディレクトリ[a]に置いて実行するとディレクトリ[a]のファイル一覧が表示されるのですが、
$dh = opendir("./b");
としたところ
.
..
しか表示されません。ディレクトリ[b]のファイル一覧を表示するにはどのようにすればよいでしょう?
0654nobodyさん
2005/10/09(日) 17:28:30ID:???ディレクトリ開いたときに入ってくる
.
..
って一体なに?
0655597
2005/10/09(日) 17:28:56ID:GtXpmFa3あと、おそらく今回とは関係ないのかもしれないですが、
/usr/local/lib/php/extが無いっていうのはおかしくないのですか?
もしあとから動的に組込みたいときとか組み込めなくないですか?
0657652
2005/10/09(日) 17:39:03ID:???0658652
2005/10/09(日) 17:45:48ID:???is_fileだとjpgファイルは表示されないのですね。
0660nobodyさん
2005/10/09(日) 17:56:00ID:???ディレクトリくらい必要なら作ればいいだけじゃないのか?
あと、どんなMakefile作ったかしらんがデフォだとLIBDIR/extensions/no-debug-non-zts-YYYYMMDD/*.soになるぞ
設定は自分の好みでやればいい
0662655
2005/10/09(日) 18:57:30ID:???0663nobodyさん
2005/10/09(日) 19:38:02ID:???0664nobodyさん
2005/10/09(日) 21:04:31ID:???0666597
2005/10/09(日) 21:35:16ID:GtXpmFa3<?php
mb_send_mail("自分のアドレス","件名","文章");
?>
でもメールは届きませんでした。
>>625
その意味で正しいです。
cat 適当なファイル | /usr/sbin/sendmail アドレス
でもダメでした。
>>626
/usr/sbinは行けます。(叩けるっていうのはアクセスできるという意味でしょうか)
>>636
やってみましたけどうまくいきませんでした。
ただ/var/log/maillogを見るとログは残っているのでsendmailの設定の問題でしょうか?
0667nobodyさん
2005/10/09(日) 21:46:39ID:JXyGtMyG0668nobodyさん
2005/10/09(日) 21:49:27ID:???> >>625
> その意味で正しいです。
> cat 適当なファイル | /usr/sbin/sendmail アドレス
> でもダメでした。
> >>626
> /usr/sbinは行けます。(叩けるっていうのはアクセスできるという意味でしょうか)
つまり、sendmailコマンドを知らないということか・・・。
「適当なファイル」じゃなくて、 >>625 の通りのことをやって(もちろん To: アドレスは自分に)
メールが届くかどうかをテストする。
「叩ける」というのは、コマンドが実行できること。
lsとかで /usr/sbin ディレクトリが見えるとかじゃないよ。
>>626が言ってるのは、/usr/sbin/sendamail を nobody が実行できるの?ってこと。
0670597
2005/10/09(日) 22:18:47ID:???コマンドラインで
echo "To: 送信先メールアドレス" | /usr/sbin/sendmail -f〇○○@〇○○.co.jp
でもRecipient names must be specified
と返ってきます。
sendmailをnobodyが実行できる、というのはパーミッションの問題でしょうか…?
一応755でした。
0671nobodyさん
2005/10/09(日) 22:25:33ID:???マニュアルのやり方で普通にコンパイルできるし
出来合いのパッケージもある
>>666
FC4でSendmail使うならネットワークと権限の適切な設定が必要
同じ事を繰り返してもダメよ >もう一度確認してみます
0672nobodyさん
2005/10/09(日) 22:45:37ID:???sendmailコマンドの使い方が間違っている。エラーメッセージにもその示唆がある。
さくっと探してみたけどいい解説ページが見つからなかったので、manの和訳のページを。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
「sendmail コマンドライン to from echo」あたりでググっていくつかページを見れば
大体どういう使い方(方法は1つじゃない)をすればいいのか分かるんじゃないかなぁ。
0673597
2005/10/09(日) 22:47:11ID:???え…そうなんですか?
少しぐぐってみました。
ttp://gapo.zive.net/sendmail/index.html
こんな設定ですか?
0674nobodyさん
2005/10/09(日) 22:48:09ID:???いいかげんスレ違いなんで異動してもらいたい。
0675nobodyさん
2005/10/10(月) 01:09:15ID:???0676nobodyさん
2005/10/10(月) 02:55:51ID:9d+wLEX3_,,..,,,,_
/ ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''"
綺麗な顔してるだろ・・・死んでるんだぜ・・・それで・・・
0677nobodyさん
2005/10/10(月) 02:56:12ID:???0678nobodyさん
2005/10/10(月) 02:56:41ID:???0679nobodyさん
2005/10/10(月) 07:59:41ID:???0680nobodyさん
2005/10/10(月) 09:44:42ID:???どうしたらいいですか?
【URL】
http://www.example.com/aaa/index.html
【相対パス】
<img src="../bbb.jpg">
../bbb.jpg
【絶対パス】
<img src="http://www.example.com/bbb.jpg">
http://www.example.com/bbb.jpg
■ このスレッドは過去ログ倉庫に格納されています