トップページphp
1001コメント342KB

【PHP】下らねぇ質問はID出して書き込みやがれ 85

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/06/15(月) 22:53:52ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0103nobodyさん2009/06/22(月) 20:14:54ID:???
その場合、フルパスで書く、って以外の
対処法は無いの?
0104972009/06/22(月) 20:20:25ID:???
chdir()で予め移動しておけば相対パスでも当然いける はず
0105nobodyさん2009/06/22(月) 20:26:05ID:EjMUz/ox
どなたか助けてください。

微々たるもんですが、Perlを少しいじった事があったので
PHPの勉強の為、Perl→PHPへ移行しています。
で、その中でどうしても分からない部分がありましたので質問させて頂きます。

read(STDIN, $alldata, $ENV{'CONTENT_LENGTH'});

このPerlをPHPに変換するとどうなるのでしょうか?
お手数ですがよろしくお願いいたします。
0106nobodyさん2009/06/22(月) 20:38:05ID:HPmTjla5
>>101
/etc/aliasesに書いたコマンドラインのエラーメッセージを
ファイルに出力させようとしたけどなんかうまくいきませんでした
(foo: "| /usr/bin/php /home/foo/mail.php >/tmp/error.log")
ので、エラーがなんなのかわかりませんでした><

>>102
そうみたいですね
メールでgetcwdの結果を返させたら
/var/spool/postfixになってました。

で、違う問題が浮上したんですけどよろしいですか?

これで作ったファイル(test.dat)の所有者・所属グループがnobdy nobodyになってるんですけど
これってどうやったら設定返れますか?><
(たぶん、自分が聞いてるのはaliasesで設定したコマンドを実行してるユーザーは誰なのか?)
自分がしたいのはapacheが作ったファイルに メールででも書き足しできるようにしたいんですが。
0107nobodyさん2009/06/22(月) 20:41:07ID:HPmTjla5
あ、そっかそのファイルにchmodさせてotherもwrite可能にすればいいんでしたね><
0108962009/06/22(月) 21:09:32ID:???
やっぱり 所有者がnobodyってのが問題>< これってどうにかできないですかね?
0109nobodyさん2009/06/22(月) 21:24:38ID:???
>>104
なるほどね
chdirってそういう時に使うんだ。

教科書では見たが、使い道がわからなかった。
0110nobodyさん2009/06/22(月) 21:28:31ID:???
ここで質問して答えが返ってこなかったら、

http://stackoverflow.com/
で聞いてみよう。
0111nobodyさん2009/06/22(月) 21:32:57ID:???
>>110
ウイルス?
0112972009/06/22(月) 21:42:50ID:???
>>108
nobodyユーザでchmod("/path/to/file", 0777);を実行させればできると思う

>>105
URLデコードはPHPでは自動でしてくれるから$_POST['key']みたいにアクセスできる
0113nobodyさん2009/06/22(月) 22:36:12ID:iiTIgfBL
91だけども
誰か解決策わかる人いませんか?
92>>
ロードしてないからって何をロードです?
できれば具体的な方法を教えて頂けると助かります。
0114nobodyさん2009/06/22(月) 22:37:21ID:JP1gh/Oz
PHPプログラムでMySQLのデータを処理、前と次のページ
の送りボタンを作成したいんですが、どう作ればいいのでしょうか。
答えのサイトどっかしりませんか。
例では、35件データがあった場合
最初の画面が20件、次は15件表示されます。
pearありとなしで作り方お願いします。
0115nobodyさん2009/06/22(月) 22:47:42ID:???
goto 宿題スレ
0116nobodyさん2009/06/22(月) 22:51:40ID:???
>>113
goto マニュアル
01171052009/06/22(月) 23:00:28ID:EjMUz/ox
>>112
早速ありがとうございます。

ちなみに質問方法が悪かったですね。
$_POST['key']のkeyにあたる部分の数が多い、または決まっていないなどで指示できないのです。
で、たとえば$_GET['key']のkeyが不確かな場合は
$_SERVER["QUERY_STRING"];でクエリから抽出すればいいのですが
POSTの場合はどうすればいいのかなぁ?と思い
質問させていただきました。

お手数ですが再度、よろしくお願いいたします。
0118nobodyさん2009/06/22(月) 23:02:03ID:???
foreach ($_POST as $value) {
echo $value;
}
01191052009/06/22(月) 23:18:00ID:EjMUz/ox
>>118
ありがとうございます!
無事にできました。

また何か分からない事がありましたらよろしくお願いいたします。
本当にありがとうございました。
0120nobodyさん2009/06/22(月) 23:24:01ID:???
>>114
PEAR:PAGER
0121nobodyさん2009/06/22(月) 23:24:53ID:???
>>118
そんなコード書いてだいじょうぶなの?
見たことないんだけど。
0122nobodyさん2009/06/22(月) 23:35:36ID:???
えっ
0123nobodyさん2009/06/22(月) 23:56:26ID:???
$_POSTは単なる配列に過ぎないから、関数に引数として丸ごと渡そうがforeach()で回そうが普通に動く。
0124nobodyさん2009/06/23(火) 00:04:19ID:???
foreach ($_POST as $value) {
echo $value;
}

まじですかwwwww
こんなの初めて見ました
0125nobodyさん2009/06/23(火) 00:05:10ID:???
>>124
同士がいた。
0126nobodyさん2009/06/23(火) 00:12:42ID:???
アップデート時の質問
サーバー1台で運用中で、できるだけダウンタイムを短くしたいと思ってます。

・configure
・make
・make test (一応)
・httpd stop
・make install
・httpd start

こんな感じかと思ってますがどうでしょう
0127nobodyさん2009/06/23(火) 00:55:44ID:???
echo '<p>メンテナンス時間は1時間を予定しております</p>';
01281052009/06/23(火) 01:59:17ID:eAPItn6A
>>124
私もです。
調べても分からない事は、素直に聞くべきですね。
本当に勉強になりました。
0129nobodyさん2009/06/23(火) 02:18:54ID:???
>>127
どやって表示すんだよww
0130nobodyさん2009/06/23(火) 05:20:28ID:fbX2StFR
inc.phpに
$hoge = "abc";など複数の変数や定数が定義されてて、
それを別の.php内のクラスの中で読み込むとします
class myClass{
require 'inc.php';
}
ここで、このクラス内に読み込まれた変数・定数にprivate属性?を設定するには
どうしたらいいですか?
DBの接続情報などが書いてあるので、インスタンスから見られる可能性は消したいんです
考え方がおかしかったら、それについても一言もらえると嬉しいです。
0131nobodyさん2009/06/23(火) 05:27:10ID:???
>>118
を見て驚いてるって、foreachを初めて見たってことか!?
0132nobodyさん2009/06/23(火) 05:42:31ID:???
>>130
パースエラーになるかと
0133nobodyさん2009/06/23(火) 10:57:26ID:hM5iLPbb
リンクに自動的にセッションIDを付加する設定にしているのですが、
http://〜の場合は付加してくれません。(たぶん、外部リンクへの配慮かと思うが・・・)
SSL通信をはさむ場合、セッションIDは手動で付加するべきなのでしょうか
0134nobodyさん2009/06/23(火) 11:40:11ID:???
foreach ($_POST as $key=>$value) {
echo htmlspecialchars($value, ENT_QUOTES);
}
しないとセキュリティホールになるよ。
0135nobodyさん2009/06/23(火) 12:24:13ID:26Ndjc+C
php暦2日だけど質問してよか?

【OS名】CENTOS
【PHPのバージョン】わかんね、4.xだと思う
【連携ソフトウェア】mysql
【質問内容】
テーブルAにはお店のIDとお店の名前とか、テーブルBにはお店のIDと販売アイテムとかが入ってる
んで
$test = "SELECT `SHOPID`, `ITEMS`, FROM `TABLEB` ";
$test2 = mysql_query($test);
$test3 = mysql_fetch_assoc($test2);

echo $test3['SHOPID'];

って書くと当然1とか2とかで表示されちゃう
これをテーブルAを参照してお店の名前を表示したいんだけどどうすればいい?
01361352009/06/23(火) 12:25:59ID:26Ndjc+C
あぁ、一番上にあったから書き込んだけど初心者向けのスレあったのかすまんこ
マルチするわけにもいかないんで多めに見てくだしあ
0137nobodyさん2009/06/23(火) 12:40:43ID:???
SQLはココじゃないしな

SELECT a.shopid,a.shopname,b.items
FROM tablea AS a,tableb AS b
WHERE a.shopid = b.shopid
0138nobodyさん2009/06/23(火) 12:41:59ID:???
結合使え
0139nobodyさん2009/06/23(火) 13:30:29ID:???
今からやるなら PHP5 使え
0140nobodyさん2009/06/23(火) 14:24:41ID:???
でっお花屋さんでも開くの?
0141nobodyさん2009/06/23(火) 14:25:30ID:hM5iLPbb
PHP5.3つかえ
01421352009/06/23(火) 14:47:09ID:26Ndjc+C
>>137-
あざーっす
次から気をつけます
0143nobodyさん2009/06/23(火) 18:49:10ID:???
$obj = &Log::factory();
01441432009/06/23(火) 18:53:44ID:w/0G3XQg
143は途中で書き込んでしまいました。

質問なんですが、クラスのインスタンス生成時、
$obj = &Log::factory();
$obj =& Log::factory();
アンパサンドの位置が異なることで処理はどのように変わるんでしょうか?
同じですか?
0145nobodyさん2009/06/23(火) 21:31:14ID:KCXdMJjN
HTMLソースを改行コードをすべて<br/>に変換してDBにぶち込んであります.
これを取り出す際に<pre>〜</pre>の中身を\nに戻して取り出したいです.

<pre>〜</pre>が複数ある場合や,入れ子になってる場合にも使える方法ありませんか?
よろしくお願いします.
0146nobodyさん2009/06/23(火) 21:45:11ID:???
変換しないべき
0147nobodyさん2009/06/23(火) 21:47:10ID:???
regex
0148nobodyさん2009/06/23(火) 23:25:35ID:???
preが入れ子って、確かHTML的にダメだろ。

面倒くせえから、丸ごとDOMにぶち込んでXPathで処理。
0149nobodyさん2009/06/24(水) 00:21:17ID:QqjFg27f
入れ子の内側<pre>を外す処理をする必要があるな
0150nobodyさん2009/06/24(水) 02:58:42ID:O6/z8sKK
phpの入門書に書いてある奴をそのまま写したつもりなのに上手くいかないです
<html>
<head>
<title>PHP TEST</title>
</head>
<body>
<?php
echo"<p>Hello World</p>";
?>
</body>
</html>

って書いたのですが、IEで開くと

Hello World

"; ?>

と表示されます
アドバイスください
01511052009/06/24(水) 02:58:57ID:21wDpb5Z
>>134
なるほど。
特殊文字を変換しないと直接入力されたら、そのまま命令を実行されてしまうのですね。

親切にありがとうございます。
また、何かありましたらよろしくお願いいたします。
0152nobodyさん2009/06/24(水) 03:10:23ID:QqjFg27f
よくあるパターンだ
サーバーがPHPとして認識してないんだよ
ファイルの拡張子を確認 .php
ファイル名が正常ならサーバーに問題がある
0153nobodyさん2009/06/24(水) 03:22:07ID:O6/z8sKK
>>152
サーバーに使うのとは別のPCで作っているのでサーバーを介さずにその場で開いてます
とりあえず動作確認だけしたいのですがどうすればいいのでしょうか?
0154nobodyさん2009/06/24(水) 03:29:08ID:QqjFg27f
>>153
ちゃんとローカル環境を構築してある?
0155nobodyさん2009/06/24(水) 12:53:26ID:???
{ ?>

フリーのスクリプトで
という書き方をよくみるんですがこれはどういうことなんでしょうか?

例えば

<?php if ($page == 'unko') {

echo "test"; ?>
<a href="index.php" class="text">Images</a>
<?php }

else { echo "bgcolor=\"#0099FF\""; ?>>

<a href="<?php if ($page == 'chinkof') {?>../<?php } ?>


のように。


<?php } ?>
はヒアドキュメント末尾のような意図でつかわれているのでしょうか?
エラーは返さないようなのですが。
0156nobodyさん2009/06/24(水) 13:09:03ID:???
重ねて質問なんですが、
SQLのクエリや、ヒアドキュメントで
$var を
{$var} にしているのを見るんですが、
これをしないとエラーになるんでしょうか?

SQLクエリの中でも
$var のままだったりするコードもよく見るんですが、
{$var} と $var をどのように使い分けているんでしょうか?
0157nobodyさん2009/06/24(水) 13:14:48ID:???
質問でunkoとか例示する人って・・・
0158nobodyさん2009/06/24(水) 13:28:29ID:???
>>155
<?php と ?> の間は PHP と解釈され、それ以外は HTML と解釈される。

>>156
配列の場合は {} が必要。
変数の場合は必要ないけど、
統一のためや、見やすくするために {} を使う人いるね。
0159nobodyさん2009/06/24(水) 13:31:30ID:???
配列は変数じゃないと?
0160nobodyさん2009/06/24(水) 14:40:53ID:XDFiYdla
>>158さん

ありがとうございます。勉強になります
<? ?> 内でステートメントが完結していなくても
問題ないんですね
0161nobodyさん2009/06/24(水) 14:43:29ID:???
ステートメントが寸断されてたらそりゃ問題あるよ
問題ないのはブロックだろ
0162nobodyさん2009/06/24(水) 17:58:43ID:???
MacとWindowsを識別して別のページに飛ばすことって可能ですか?
携帯・PCは識別出来たんですが、OSの識別はぐぐっても出てこない。
見落としてたらすんません。誰かご教授お願いします。
0163nobodyさん2009/06/24(水) 18:05:12ID:???
UAでわからなかったっけ?
Mac?Windows?みたいに質問するって方法もある
あとやったことないけどJavaScriptで改行コード"\n"を展開させてそれを受信してみるとか。。
0164nobodyさん2009/06/24(水) 18:15:53ID:???
get_browser
ttp://jp2.php.net/manual/ja/function.get-browser.php
も忘れずに。
0165nobodyさん2009/06/24(水) 18:24:52ID:???
>>163-164

ありがとう!
WindowsかWindowsじゃないかで、やってみようと思います。
0166nobodyさん2009/06/24(水) 18:54:57ID:O6/z8sKK
>>154
ローカル環境という言葉自体をはじめて聞きました
ググってみたのですが、説明が抽象的でよくわかりませんでした
ローカル環境を構築したPCはサーバーになるということですか?
だとしたらサーバーにしないで動作確認だけする方法はありますか?
ずれた質問をしてるかもしれませんがご教示願います
0167nobodyさん2009/06/24(水) 19:54:37ID:???
まず「ローカル」と「サーバ」の違いを理解したほうがいいよ
Webアプリケーション製作の基礎中の基礎。っていうか根本概念。
プログラム書くのはまだ早すぎる。
0168nobodyさん2009/06/24(水) 20:57:38ID:???
$lastという変数をvar_dumpしたところ
string(1) " "
と返ってきました
これは変数に半角空白が入ってると
思い

if($last == ' ')echo 'true';

と書いてみたのですがtrueが帰ってきません
string(1) " "をもっと詳しく調べる方法はないでしょうか?
0169nobodyさん2009/06/24(水) 20:59:46ID:???
ord()
0170nobodyさん2009/06/24(水) 21:11:08ID:???
どうせ改行コードだろう
0171nobodyさん2009/06/24(水) 21:13:51ID:O6/z8sKK
>>167
ローカルはオフラインのこと
サーバーはオンラインでデータをやり取りするためのもの


・・・と解釈してるのですが間違ってますか?
0172sage2009/06/24(水) 22:24:39ID:QqjFg27f
Apache と php のインストール
0173nobodyさん2009/06/24(水) 22:48:49ID:???
>>161
そうだったんだ?
0174nobodyさん2009/06/24(水) 22:49:32ID:???
>>166
プログラムを教えてください
http://pc12.2ch.net/test/read.cgi/tech/1243778529/
0175nobodyさん2009/06/24(水) 22:57:21ID:???
>>171
間違ってる
0176nobodyさん2009/06/25(木) 00:57:46ID:Niw+Ve6P
【OS名】XP
【PHPのバージョン】php5.2
【質問内容】
HTMLでinputボタンを下記のように6個作ってあります。

A0 B0
A1 B1
A2 B2

A0のボタンが押された後、B0のボタンが押されたら「1」
A0のボタンが押された後、B1のボタンが押されたら「2」

と言うようにボタンの組み合わせによって数値を作り
3桁のパスワードを作る画面を作りたいと思っているのですが、
PHP1日目故、どこをどう作っていいのか分からず途方にくれています。

何かヒントでも頂ければと思い書き込みさせてもらいました。
レス頂ければ幸いです。
0177nobodyさん2009/06/25(木) 01:08:21ID:???
パチスロでも作ってんの?
0178nobodyさん2009/06/25(木) 02:22:08ID:???
>>176
要は3桁の数字をボタンで入力させて、サーバーに送ればいいんでしょ?
それだったらJavascript使って、ボタン押した時にhiddenなinputに一桁ずつ入れて、三桁目が入ったらphpファイルにpostすればいいんじゃない?

でもパスワード入れる画面なら、普通にinput type=textのほうが操作性いいと思うよ!
0179nobodyさん2009/06/25(木) 02:31:59ID:Niw+Ve6P
>>177
パチスロではないです。課題で出された問題なんです。

>>178
そうです。ボタンの組み合わせで3桁の数値を作って111の様なパスを設定し、
それをログイン画面の入力欄に入力されたパスワードと比較して、
正しければOKのページ、間違いならエラーメッセージと言うような
処理にしたいと思っています。

Javascriptで上記が満たせる処理が作れるんでしょうか?
色々調べてみようと思います。
0180nobodyさん2009/06/25(木) 03:51:50ID:???
>>179
これってPHPの課題?
画面の遷移無しでって話ならjs使わないと無理だろ。
画面の遷移ありならPHPだけで出来るけど。

どうせなら課題の問題全部伝えないと答え出ないよw
0181nobodyさん2009/06/25(木) 04:07:38ID:???
>>179
>>180の言う通りでPHPで実現するにはどうしても画面遷移が必要だし、そうするメリットは何もない。
だから数字の入力と、サーバーに送る動きは別物で考えるべき。
前者はJSで、後者はPHPでやればいいよ。

暇だから書いてあげるよ!課題は?
0182nobodyさん2009/06/25(木) 04:24:18ID:???
本人のためにならんことを
0183nobodyさん2009/06/25(木) 06:41:54ID:HSbLKHIx
>>180
PHPの課題です。
画面の遷移の有無でも違いがあるんですね。
知りませんでした。

>>181
>>176で書いた処理を使ってパスワードを設定した後、
そのパスワードをどこかに保持した状態でログイン画面に遷移します。
ログイン画面から入力されたパスワードと設定したパスワードを比較して、
正しければOKのページ、エラーならメッセージの表示と言う風に
処理を分岐させたいと考えています。

javascriptとPHPを上手く使わないといけないのですね。
奥が深いです。
0184sage2009/06/25(木) 07:29:23ID:utUUg4I/
>>176
javascriptで簡単にできるぞ
0185nobodyさん2009/06/25(木) 13:20:30ID:???
関数の前に & がつくのは、つかないのと何が違うのでしょうか?

function &test() {
}

function test() {
}
0186nobodyさん2009/06/25(木) 13:30:30ID:???
>>185
リファレンス

PHP: リファレンスの説明 - Manual
http://www.php.net/manual/ja/language.references.php
0187nobodyさん2009/06/25(木) 13:35:10ID:???
>>186
ありがとうございます。
変数のリファレンスは分かった気がします。

関数のリファレンスは
どんなときに使うと便利か誰か教えてくれませんか。
0188nobodyさん2009/06/25(木) 14:27:22ID:???
関数の返り値を参照にしたい場合だよ
だから変数と同じ
0189nobodyさん2009/06/25(木) 15:08:43ID:???
>>188
ありがとうございます。
どういう時に返り値が参照渡しだといいのでしょうか。
0190nobodyさん2009/06/25(木) 16:53:33ID:???
だから変数が参照渡しだと嬉しいときと同じ
0191nobodyさん2009/06/25(木) 17:04:31ID:???
変数も分かった気がするだけなので(^^;;
どういう時かよく分からんのです。。。
0192nobodyさん2009/06/25(木) 18:00:17ID:???
動けばいいっちゃ
0193nobodyさん2009/06/25(木) 18:16:24ID:???
誰か具体例教えてくださーい
0194nobodyさん2009/06/25(木) 18:48:17ID:???
たい焼きの作り方かな?
0195nobodyさん2009/06/25(木) 19:34:23ID:???
まずは、たい焼きくんを釣る
0196nobodyさん2009/06/25(木) 20:00:11ID:???
SQLクエリに対して何もヒットしなかった場合を判別したいときって、sqlite_num_rows()で
行数を見るしか方法無い?
sqlite_queryの結果ハンドルがFALSEを返すかと思ったけど、よく読むとクエリが失敗した
場合にFALSEを返すので使えない。

今はこんな風に書いているけど、何かこう美しくないというかもっとスマートな方法が
あるような気がする。

$sql = "SELECT ....";
$res = sqlite_query($db_con, $sql);

if (sqlite_num_rows($res) == 0) {
  //0件の時はSQL投げ直し
  $sql = "SELECT ...";
  $res = sqlite_query($db_con, $sql);
}

while ($row = sqlite_fetch_array($res, SQLITE_ASSOC)) {
}
0197nobodyさん2009/06/25(木) 20:23:47ID:utUUg4I/
mysql_affected_rows();
0198nobodyさん2009/06/25(木) 20:31:04ID:4KEfnuyb
>>184
javascriptでどういう風にプログラムを組めばいいか
何かヒントを教えて頂けないでしょうか?
0199nobodyさん2009/06/25(木) 20:55:26ID:utUUg4I/
<script type="text/javascript">
// <![CDATA[
function test(n) {
document.getElementById("out").innerHTML = n;
}
// ]]>
</script>
<div id="out"></div>
<input type="submit" value="1" onClick="test(1)">
0200nobodyさん2009/06/25(木) 21:19:33ID:???
>>197
やっぱり行数で見るしかないのか…
イメージ的に、boolで返してくれそうな関数があっても良さそうなんだけど。
0201nobodyさん2009/06/26(金) 01:13:39ID:???
クエリは正しく通ってるんだからfalseじゃおかしいだろ
0202nobodyさん2009/06/26(金) 01:32:36ID:???
>>198
<?php
if($_POST["pass"]=="成功の場合の数字")
echo "成功";
else
echo "エラー";
?>
■ このスレッドは過去ログ倉庫に格納されています