【PHP】下らねぇ質問はここに書き込みやがれ 66
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/16(日) 17:23:27ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0798nobodyさん
2008/04/06(日) 18:04:27ID:???↓
die(mysql_error());
まぁクリエイト文が間違ってるんだろ
0799nobodyさん
2008/04/06(日) 18:04:41ID:???まずマニュアル
http://www.php.net/manual/ja/function.mysql-query.php
ここ読んでエラー取得しる
DBに対して権限無いとかじゃないだろうね
0800nobodyさん
2008/04/06(日) 18:12:30ID:???0801nobodyさん
2008/04/06(日) 18:16:25ID:???面白半分でもそういうこと書くなよ
本当に晒して誰かがアクセスしたらどうする気なんだ?
不正アクセス幇助してるようなもんだろ
0802nobodyさん
2008/04/06(日) 18:20:35ID:???0803nobodyさん
2008/04/06(日) 18:32:29ID:???802のちんこの小ささにワラタ
0804nobodyさん
2008/04/06(日) 18:41:56ID:???$data = fscanf($fp, "%s,%d,%d,%d");
print_r ($data);
----
ファイルの内容
abc,1,2,3
----
出力
Array
(
[0] => abc,1,2,3
[1] =>
[2] =>
[3] =>
)
配列にちゃんと入ってくれないです。なんで?
0805nobodyさん
2008/04/06(日) 18:48:33ID:???「fscanfがおかしいです。」
0806nobodyさん
2008/04/06(日) 18:54:27ID:???>>804
おかしいのは fscanf だけだろうか。
$data = sscanf('abc,1,2,3', "%s,%d,%d,%d");
var_dump($data);
0808nobodyさん
2008/04/06(日) 19:04:33ID:???間違えました。
array(4) {
[0]=>
string(9) "abc,1,2,3"
[1]=>
NULL
[2]=>
NULL
[3]=>
NULL
}
になりました。
0809804
2008/04/06(日) 19:13:00ID:???おかしかったのは私の頭でした
0810804
2008/04/06(日) 19:13:56ID:???よくわからないけど、最初からファイル作るところからやり直しです。
0811nobodyさん
2008/04/06(日) 19:22:47ID:???%sが"abc,1,2,3"に反応してるだけ
"%[a-z],%d,%d,%d"とか書けばいけるんでないの?
試してねーけど
0812804
2008/04/06(日) 19:37:26ID:???array(4) { [0]=> NULL [1]=> NULL [2]=> NULL [3]=> NULL }
になりました。
PHPはカンマ区切りでsscanfができなアホの子ということでしょうか。
0814804
2008/04/06(日) 19:38:46ID:???また間違えました。[z-z]に打ち間違えました。
array(4) { [0]=> string(3) "abc" [1]=> int(1) [2]=> int(2) [3]=> int(3) }
ちゃんと入りました。
ごめんねPHP。
0815nobodyさん
2008/04/06(日) 19:41:11ID:???0817nobodyさん
2008/04/06(日) 20:23:29ID:???知識積んでいけば最初は糞汚くても徐々に綺麗になっていく
いずれにしても時間かけないと駄目だ
0818nobodyさん
2008/04/06(日) 20:55:14ID:???file(source.php)ではできないようですが・・・。
0819nobodyさん
2008/04/06(日) 20:57:59ID:???ソースが読み込めたら大変な事になると想いませんか?
0820nobodyさん
2008/04/06(日) 21:23:34ID:???そうですか。
では、別の場所で定義した関数を別の場所で表示する事はできますか?
これだと何も表示されなくて困っているのですが。
<html><body>
<?php function hoge(){ echo "I love php"; } ?>
<h1>hogeと出力します。</h1>
<?php
hoge();
?>
</body></html>
0821nobodyさん
2008/04/06(日) 21:28:22ID:???0823nobodyさん
2008/04/06(日) 22:50:32ID:???イメージ的には、
// エクスポート
$arr = array(10,20);
$fp = fopen("hoge.dat", "w");
fwrite($fp, $arr);
flocse($fp);
// インポート
$tmp = file("hoge.dat");
$arr = hoge($tmp); // hoge関数はインポートする関数。そういうのがあるのか知らないですが。。
0824nobodyさん
2008/04/06(日) 22:55:36ID:???0825nobodyさん
2008/04/06(日) 22:56:10ID:???使ったことはないけど。
http://jp2.php.net/manual/ja/function.serialize.php
0826nobodyさん
2008/04/07(月) 01:31:39ID:HAJ8ltXQを
1文字ずつ切り出して配列に入れたいのですが、
その用な関数ってあるのでしょうか?
0827nobodyさん
2008/04/07(月) 01:38:40ID:???ちなみにそのまま$number[0]でもアクセスできるけどね
0830nonono
2008/04/07(月) 03:51:34ID:s+jMxqnz$body = "あいうえおabc";
とあれれば
$body = "あ\い\う\え\お\a\b\c\"
と変換したいのですが
どうすればよいのですか?
お願いします。
0831nobodyさん
2008/04/07(月) 10:19:04ID:???forでまわして各配列に\を追加
あとは配列をくっつける
0832nobodyさん
2008/04/07(月) 11:37:21ID:???0833nobodyさん
2008/04/07(月) 12:18:12ID:AYrwwGs/ちょっと分からなかったんで質問させてください。
mb_send_mailでメール送信する場合、その後popenする必要ってありますか?
もらったコードには入ってるんですが、どこにもpcloseは無いし、
これって不要では?と思って外してみたんですが、それでも普通にメールが送信されます。
でも何か意味があってしてるのかもしれないので、メール関数を使った後に
プロセスをオープンしておく理由があれば教えてください m(_ _)m
0834nobodyさん
2008/04/07(月) 13:36:17ID:nVWcjk0/その結果を使いたいんですが
mysql_fetch_object($n);などを使っても
複数該当した内の一番最初の行しか
表示されてないようなんですが
全ての行を表示するにはどうしたらいいでしょうか。
環境
データベースはMySQL でレンタルサーバland.toに
PHPをうpして使っています
PHP文
<?php
$connect = mysql_connect("localhost", "(ディレクトリ名)", "(パスワード)") or die ("サーバに接続できません");
mysql_select_db("(ディレクトリ名)",$connect) or die ("データベースに接続できません");
$sql = 'SELECT * FROM `img` where sex = 0 LIMIT 0, 30';
for($i=0; $i<2; $i++){
$n = mysql_query($sql, $connect) or die ("クエリーを実行できません");
$r = mysql_fetch_object($n);
mysql_close($connect);
print $r->name;
}
?>
よろしくおねがいします。
0835nobodyさん
2008/04/07(月) 13:49:55ID:???0836nobodyさん
2008/04/07(月) 14:04:24ID:???Xoopsは、gdgdっぽいし、何かお勧めは無いでしょうか?
0837nobodyさん
2008/04/07(月) 14:05:32ID:EvBdHmft0838nobodyさん
2008/04/07(月) 14:18:32ID:???0839nobodyさん
2008/04/07(月) 14:31:04ID:???mb_send_mail() と popen() の間に直接の関連性はないよ。
どんな理由でコマンドを実行してるのかは前任者や実装した人に聞くべき。
>>834
for ステートメントの中で毎回クエリを発行し直してるせい。
mysql_query() と mysql_close() をループの外に置こう。
0840nobodyさん
2008/04/07(月) 14:36:27ID:???なめてんのか
0841833
2008/04/07(月) 14:36:28ID:???ありがとうございます!
そうですよね、直接聞いてみるべきでした。
でもやっぱり直接関連性がないことが分かって良かったです。
0842nobodyさん
2008/04/07(月) 14:51:21ID:Uht2ZkVVforeachの出力の時に
1位
0843nobodyさん
2008/04/07(月) 14:52:35ID:Uht2ZkVVforeachの出力の時に
1位 100点
1位 100点
1位 100点
4位 99点
5位 85点
5位 85点
7位 0点
と順位を計算するにはどういう式がいいのでしょうか?
0844nobodyさん
2008/04/07(月) 14:53:40ID:???0845nobodyさん
2008/04/07(月) 15:03:40ID:???$ranking = "0";
foreach( $arrya_ranking as $key => $value)
{
$counting++;
if($compare_value != $value)
{
$ranking = $counting;
}
echo $ranking . "位\n";
$compare_value = $value;
}
???
0846nobodyさん
2008/04/07(月) 15:15:09ID:???0848806
2008/04/07(月) 17:31:04ID:???単純に最初の %s が全部食ってるだけだと理解してもらう前に
「sscanfもおかしいです。」を期待したんですけどね。
0849nobodyさん
2008/04/07(月) 21:18:56ID:???php.ini または ini_set() で設定できる以下パラメータについて疑問があります。
session.gc_probability
session.gc_divisor
session.gc_maxlifetime
session_start() した瞬間に、probability / divisor の確率で、無効なセッションの掃除が行われることはわかりました。
掃除されていないセッションファイルが残ったまま、maxlifetime を過ぎたセッションにアクセスした場合、このセッションは有効なのでしょうか。
maxlifetime の設定さえしておけば、この時間を越えて有効なセッションが存在してしまうことはないと考えてよいのでしょうか。
0851nobodyさん
2008/04/08(火) 01:02:02ID:0iu/inKG画像アップロード機能つきブログっぽいものを作ってます。
画像ファイル名をセッションIDで決めてます(md5(session_id())
初期画面→アップロード確認画面→確定と遷移させており、
アップロード確認画面にサムネイルを表示したい(Mixiみたいなかんじ)
ので、その時点で既にサーバ上にファイルを置いてます。
そこで確定押されたらそのままで問題なし、
キャンセルを押されたらサーバ上のファイルも削除とすればいいのですが、
そこでブラウザ毎閉じられた場合サーバ上に行き場のないファイルが残ってしまいます。
こういうのを感知する方法というかパッケージみたいなのはあるのでしょうか?
0852nobodyさん
2008/04/08(火) 01:06:53ID:???0854nobodyさん
2008/04/08(火) 04:34:53ID:???ext/session/session.c を分かる範囲で読んでみたが、
session_start() 内でセッション内容を復元してから
GC が働くようになっていた。
考えりゃ名前の通り GC の挙動に対するオプションだし、
セッションの有効期限を保証するもんじゃないな。
自前のセッションハンドラ用意して面倒見るぐらいしか思いつかない。
>>851
お掃除スクリプト組んで
そのアップロード処理時なり cron なりで呼び出す。
0855nobodyさん
2008/04/08(火) 07:05:28ID:j9RtxrkrサーバーサイドでXMLをXSLTを用いて変換し、出力結果のみを表示させたいのですが、
このようなプログラムはPHPを使えば作成可能でしょうか?
具体的な作成方法はこれから自分で学ぼうと思っているので、
可能なのかどうかだけでも教えていただければさいわいです。
よろしくお願いします。
0856nobodyさん
2008/04/08(火) 07:23:40ID:???PHP側でXMLを読み込んで自分で好きに整形して表示したほうが簡単だしいいと思うが
0857nobodyさん
2008/04/08(火) 07:30:38ID:???0859849
2008/04/08(火) 12:56:47ID:???ソース読んだ。なるほど。
gc_maxlifetime 自体、probability に引っかかった後にしか参照されていないのね。。。
セッションファイル読み込み前に検証してくれりゃあいいのに。。。
しっかし、こういう事を調べたいときに、ソースのどこを読むべきなのか、それが良くわからん。。。
0860nobodyさん
2008/04/08(火) 15:36:08ID:???Fromヘッダを指定してメールを送ると
SMTP server response: 501 Syntax error in parameters scanning "From" in C:\xampp\htdocs\php\mail.php on line 21
とエラーメッセージが出てしまうのですが、原因とか分かる方いますか?
メール送信部分のソースは以下な感じです。
$headers = 'From: hoge@example.com' . "\r\n" .
'Reply-To: hoge@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);
よろしくお願いします。
0861855
2008/04/08(火) 15:51:44ID:j9Rtxrkrそんなこともできるんですか・・・参考にします。
>>857
PHPの方が将来性があるような気がするので、
PHPで頑張ってみることにします。
0862nobodyさん
2008/04/08(火) 16:02:03ID:???PHPにてオープンソースのImage_graphってものを使いサンプルのグラフを作成しました。
サンプルの実行例を見る限り、タイトル、メモリの数字などは表示されています。
ですが、実際はグラフは表示されるが、タイトルやメモリが表示されていません。
オープンソースなだけに同じように例が見当たりません。(円グラフの場合、項目名が表示されないのは発見)
どこが駄目かわかる方がいればご教授願えないでしょうか?
ソース:
http://pear.veggerby.dk/samples/code/id/log_axis_low/
以上、よろしくお願いします。
0866nobodyさん
2008/04/08(火) 18:22:50ID:EAGbfhcMリンゴ
└青
└赤
みかん
と表示させたいのですが、上手くできません。
以下のソースについて指摘いただければと思います。
$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");
for($i=0;$i<count($array);$i++){
// 配列の場合
if(is_array($array[$i])){
echo $array[$i]."<br>";
foreach($array[$i] as $value){
echo "└".$value."<br>";
}
// 変数の場合
}else{
echo $array[$i]."<br>";
}
}
0867nobodyさん
2008/04/08(火) 18:27:15ID:???同じ変数名使ってるから変になる
$array = array("バナナ","リンゴ","みかん");
$array[1] = array("赤","青");
ってやった時点で
その配列は
array("バナナ",array("赤","青"),"みかん");
になる
0868860
2008/04/08(火) 18:45:06ID:???レスありがとうございます。
21行目というのは
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);
の行になります。
>>864
見てみたのですが、違いがいまいちわかりません・・・。
ネット上で関数のリファレンス、サンプルコードなどもいくつか確認しましたが、呼び方も同じようです。
Googleで検索したところ、以下の方が同じ症状なのですが、結局解決には至っていないようです。
メッセージが送信できない - PHPプロ!Q&A掲示板
http://www.phppro.jp/qa/818
Windows環境のPHPでRadishをSMTPサーバに使ってメール送信プログラムを動かせている人とかっていませんでしょうか?
0869nobodyさん
2008/04/08(火) 18:53:09ID:???いっぱい居る
0871nobodyさん
2008/04/08(火) 19:11:31ID:???http://jp2.php.net/manual/ja/function.mb-send-mail.php
ヘッダを \r\n で区切って食わせろとは書かれてない。
>>866
$fruits = array("バナナ","リンゴ","みかん");
$attrib = array('', array('赤','青'), array('冷凍'));
ロジックそのままで、変数名だけをこれに合うように書き換えて試してみよう。
0872860
2008/04/08(火) 19:32:59ID:???ありがとうございます。
実際に詳しく解説しているサイトなどあったら教えていただけないでしょうか?
>>870
メールアドレスは実際には送受信可能なものを指定しています。
さっきのURLではそれで解消されたように書いてあったのですが、私の環境では変わらないのです。
>>871
おおっ!それは気付きませんでした。
が、
$headers = 'From: foobar@gmail.com';
mb_send_mail ($_POST['email'], "件名", "本文1行目\n本文2行目\n", $headers);
のように変えてみたのですが、やはり同じく
SMTP server response: 501 Syntax error in parameters scanning "From"
が表示されてしまいます・・・。
0873nobodyさん
2008/04/08(火) 19:40:28ID:???マニュアルを読め
PHPと関係なさ過ぎる
0876860
2008/04/08(火) 20:20:38ID:???>>874
Radish自体はデフォルトの設定(解凍して起動しただけ)の状態で、メールクライアントでのメール送信テスト(localhost:25を指定)は行っています。
そちらのテストでは正常に送信できていました。
php.iniにも以下を設定しており、Radishを落としている時はタイムアウトしたため、SMTPサーバとの疎通というよりは
PHPでのmail関数の使用法に問題があるのかと思い質問させて頂いたのですが・・・。
SMTP = localhost
smtp_port = 25
0878860
2008/04/08(火) 21:42:25ID:???いろいろ試してみたところ、php.iniのsendmail_fromのコメントアウトを解除したところ、無事メールが送信できるようになりました。
この設定はデフォルトというだけで、メールヘッダの方でFromを指定すれば問題ないと思っていたのですが、Windowsの場合必須なんでしょうか?
この設定を有効にした上で、第4引数でFromヘッダに任意のメールアドレスを指定するとちゃんとそのアドレスで送信されるようになりました。
お騒がせしました。
0879nobodyさん
2008/04/08(火) 22:02:00ID:tayW9iIoPHPから別のPHPを実行させる為に、PHPのexce関数を使用しています。
WindowsXP上のサーバ環境で問題なく実行できます。
ところが、WindowsVista上のサーバ環境では、exce関数から別のPHPを実行する事ができません。
OSのセキュリティ関係が影響しているのではと思うのですが、原因を掴めていません。
WindowsVistaで、exce関数からPHPを実行させる方法を知っている方いましたら教えて下さい。
0880nobodyさん
2008/04/08(火) 22:03:01ID:???0881879
2008/04/08(火) 22:32:44ID:tayW9iIo0882nobodyさん
2008/04/08(火) 23:20:24ID:???きもち悪い動きだねぇ。
自分は PHP5.2 / WinXP Homeで SMTP/POPはXMAIL を使ったテスト環境作ってるけど、
sendmail_from はコメントアウトされたままでメール送信できてる。
0883nobodyさん
2008/04/08(火) 23:29:53ID:???php.iniで補完されて通るようになっただけだと思われ
まぁPHPとは関係ないな
0884nobodyさん
2008/04/09(水) 00:32:42ID:???解決策を!
0885nobodyさん
2008/04/09(水) 00:57:57ID:zhyjL3fT["hoge1"]=>
array(9) {
["comment"]=>
string(4) "aiue"
["IP"]=>
string(13) "xxx.xxx.xxx.xxx"
["hoge2"]=>
array(9) {
["comment"]=>
string(4) "aiue"
["IP"]=>
string(13) "xxx.xxx.xxx.xxx"
みたいな構成の場合にhoge1とhoge2を取得したいのですが、どのようにすればよりですか?
0886nobodyさん
2008/04/09(水) 01:01:17ID:???取り出す条件は何よ
foreachでkey取り出せばいいって話じゃなくて?
マニュアル:foreach
http://www.php.net/manual/ja/control-structures.foreach.php
0888862
2008/04/09(水) 01:28:27ID:???おかしいですね、ソースはそのままなんですけど・・・。
もしかしたらサーバの設定が間違ってしまったのかも・・・。
一度見直してみます。
ありがとうございました。
0889nobodyさん
2008/04/09(水) 02:15:28ID:yG4BsjHJ画像のアップローダを作っていて、「A.jpg」と名づけて保存された写真に対して、
「A.jpg」という同じ名前で上書きアップロードをしています
で、その上書き保存はうまくいくんですが、どういうわけか画像のプレビューページに
戻ると古いA.jpgが表示されています
どうしたらいいでしょうか? リロードすると新しい画像になるのでキャッシュかなと
思うんですが、そのページに対して、キャッシュを保持させないような関数など
あるでしょうか?
もしphpの問題でなく、apacheの設定の問題だとしたら、申し訳ないですが
その場合でもご意見もらえたら嬉しいです お願いします
環境はphp5、apache2です
0890nobodyさん
2008/04/09(水) 02:24:15ID:???PHPに関する質問をお待ちしております
0891nobodyさん
2008/04/09(水) 02:35:39ID:???埼玉県警本庄署は8日、中学で同級生だった高校2年の女子生徒(16)に「レイプしますよ」などとメールを送ったとして、脅迫の疑いで同県立高校2年の男子生徒(16)=本庄市=を逮捕した。調べに「間違いありません」と容疑を認めているという。
調べでは、男子生徒は昨年10月から11月にかけて8回にわたり、別の県立高校に通う女子生徒の携帯電話に「暴行しますよ」「日時が決まりました」などとメールを送った疑い。
男子生徒は、自分のアドレスが特定されないよう、別のアドレスに変換してメール送信できるサイトを利用していたが、アクセス記録などから発覚した。
0892nobodyさん
2008/04/09(水) 02:38:59ID:???警察が照会した
0893nobodyさん
2008/04/09(水) 02:44:54ID:???警察に弱みでも握られているのかよ。
0894nobodyさん
2008/04/09(水) 03:22:59ID:???なんで犯罪者をまもらなきゃいけないのかと・・
0895nobodyさん
2008/04/09(水) 03:29:39ID:???0896nobodyさん
2008/04/09(水) 05:20:12ID:???普通の人間は警察の捜査には素直に協力するだろ
0897nobodyさん
2008/04/09(水) 05:26:00ID:???いまどきダッセー
■ このスレッドは過去ログ倉庫に格納されています