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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん2010/11/15(月) 13:00:07ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 100
http://hibari.2ch.net/test/read.cgi/php/1288168893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0809nobodyさん2010/12/14(火) 20:42:54ID:???
Windowsサーバーで運用してるシステムもたくさんあると思うが
0810nobodyさん2010/12/14(火) 20:43:58ID:???
>>802=>>808
DIRECTORY_SEPARATOR 使ってるよ
ただインクルードについては、include_pathに入れちゃうからパス指定はしてない。
0811サーバー”管理”2010/12/14(火) 20:46:08ID:???
あり過ぎて困っています。
0812nobodyさん2010/12/14(火) 20:49:58ID:???
>>809
>>802さんは「Linuxで動くシステム」と言っているので
それならローカル環境も、極力本番に近いLinuxにしたらという事を
>>806-807さんは言っているのだと思います。
0813nobodyさん2010/12/14(火) 20:53:37ID:???
丁寧で好感が持てる回答ですね
これを参考にして他の回答者はまともな文章を書きましょう
0814nobodyさん2010/12/14(火) 20:58:13ID:???
はい
0815nobodyさん2010/12/14(火) 21:13:35ID:???
どうみてもAjax厨の自演にしか見えないんだけどな
0816nobodyさん2010/12/15(水) 01:02:35ID:???
mysqlスレに質問するべきかもしれないのですが、
以下の命令を実行すると

$sql = " select log_id, name, mail_address from tokai_member ";
$sql.= " where log_id= '" . $_SESSION["log_id"] . "'";
$res = mysql_query( $sql );
$count = 0;
$info = mysql_fetch_array( $res ) ;

$info["log_id"] $info["name"] $info["mail_address"] にはデータが入るのですが

$sql = " select log_id, name, mail_address from tokai_member ";を
$sql = " select * from tokai_member "; に変えると $info["mail_address"] にだけ、
値が入らないのですが、何が間違えなのさっぱり分かりません。
データベースの方の設定で「*」の時は取得できない設定とかってあるのでしょうか。

環境はWinXp、xamppのmysqlを使っています。
よろしくお願いします。


0817nobodyさん2010/12/15(水) 01:05:46ID:???
>>1
0818nobodyさん2010/12/15(水) 01:15:10ID:V9crItGv
失礼しました。

【OS名】WindowsXP
【PHPのバージョン】5
【連携ソフトウェア】MySQL
【質問内容】
mysqlスレに質問するべきかもしれないのですが、
以下の命令を実行すると

$sql = " select log_id, name, mail_address from tokai_member ";
$sql.= " where log_id= '" . $_SESSION["log_id"] . "'";
$res = mysql_query( $sql );
$count = 0;
$info = mysql_fetch_array( $res ) ;

$info["log_id"] $info["name"] $info["mail_address"] にはデータが入るのですが

$sql = " select log_id, name, mail_address from tokai_member ";を
$sql = " select * from tokai_member "; に変えると $info["mail_address"] にだけ、
値が入らないのですが、何が間違えなのさっぱり分かりません。
データベースの方の設定で「*」の時は取得できない設定とかってあるのでしょうか。

0819nobodyさん2010/12/15(水) 01:17:58ID:???
>>818
それはない。何か見落としてるはず。
0820nobodyさん2010/12/15(水) 04:11:52ID:???
phpmyadminからの操作はどう?
0821nobodyさん2010/12/15(水) 07:48:29ID:???
mysql_fetch_assocで
0822nobodyさん2010/12/15(水) 08:47:47ID:24J/DfE6
質問です
PHPで皆がMySQLとかに自分の情報を書き込むサイトを作ってるのですが
この場合、PHPはアクセス制限かけた所に保存して、書き込みフォームで引き出すという方がいいでしょうか?
それともそのまま書き込みフォームにphpを記入してもいいのでしょうか?

安全面から見るとどっちの方がいいんでしょう?
0823nobodyさん2010/12/15(水) 09:07:07ID:???
>>822
要するに、public下にスクリプトを置くか、
public下ではhtmlレベルでrequire_onceかなんかでphpを呼び出すかってことかな?

どっちも一緒
08248182010/12/15(水) 09:22:44ID:V9crItGv
>>819-821さん、レスありがとうございます。

phpmyadminでの操作では、問題ありません。
phpmyadminのsql画面で同じsql文を実行すると、3項目出てきます。

mysql_fetch_assocというのは、知らなかったので
調べてやってみます。
0825nobodyさん2010/12/15(水) 09:23:21ID:24J/DfE6
>>823
すみません、publicって皆がアクセスできるところでしたっけ?
とりあえずCGIってcgi-binってフォルダがあってそこに入れる感じじゃないですか?そしてそのフォルダに属性でアクセス制限かけたり

だけどphpってHTMLにそのまま記入してますが大丈夫なんですか?っていう感じです、説明足りずスミマセン
自分はcgiみたいにアクセス制限かけた所に呼び出すphp保存して、phpでではrequire_onceやinclude_onceで呼び出した方が安全に思えるんですが
どっちも一緒なのですか
0826nobodyさん2010/12/15(水) 09:26:37ID:???
うん一緒
CGIが家で全裸露出するとしたら
PHPは透明人間になって駅前で全裸露出する感じ
0827nobodyさん2010/12/15(水) 09:28:23ID:???
require_onceとかはプログラムが複雑になったとき同じphpファイルを何回も書き込んで実行しないで
連用して使う感じだからそんな安全重視とかって感じではない
だからこそphpはセキュリティをしっかりやらなければならない
0828nobodyさん2010/12/15(水) 09:34:59ID:???
>>824
mail_addressが2つあるとかじゃないよな?
0829nobodyさん2010/12/15(水) 09:35:26ID:24J/DfE6
>>826
解りやすいたとえありがとうございます!
0830nobodyさん2010/12/15(水) 09:39:01ID:???
>>826>>827
何か違うよーな
0831nobodyさん2010/12/15(水) 09:48:59ID:???
処理は拡張子に依存しているからファイルの中身がHTML寄りであろうがCGI寄りであろうが
リスクは一緒。
0832nobodyさん2010/12/15(水) 09:53:44ID:???
おじちゃんたち、どおして働かないのぉ?.exe
0833nobodyさん2010/12/15(水) 10:00:38ID:???
ブラクラじゃねぇか
0834nobodyさん2010/12/15(水) 10:18:05ID:V9crItGv
>>828
レス、ありがとうございます。

mail_addressは1つしかありません。
phpmyadminでのsql実行や、「*」を使わずカラム指定した時は
正常に見えるので構造定義等は間違っていないと思いたいのですが。。。

他のカラムと違うのはmail_addressを主キーに指定しているくらいです。
0835nobodyさん2010/12/15(水) 10:48:14ID:???
それって単にSQLの最初の一行目のmail_addressが空なだけなんじゃねw
0836nobodyさん2010/12/15(水) 10:56:45ID:???
ORDER BY が無いと読み込む順序は不定。
フィールドを指定したときと*の場合で読む順序が変わってるだけかと。
確かめてみたらプライマリキーを指定したときはプライマリキーの順番、
*やプライマリキーを出力に指定してない場合はINSERTした順番のような感じだった。

なので、835に一票
0837nobodyさん2010/12/15(水) 11:06:51ID:???
キー定義されてないなら
警告でるし、そのときはNULLのはず。
DBでNULLならNULLだけど。
0838nobodyさん2010/12/15(水) 11:13:25ID:V9crItGv
>>835-836
レス、ありがとうございます。

>>それって単にSQLの最初の一行目のmail_addressが空なだけなんじゃねw
最初のレコードのmail_addressカラムにデータが入ってないと言うことでしょうか。
データ自体は入っています。(テスト中で3件しかないので)

836さんの言われてることは、mail_addressカラムに全部データが入っていれば
問題ないのですよね。

ただ、 >>プライマリキーを出力に指定してない場合 って言うのが、よく分かりません。
出力する、しないが指定できるのでしょうか?

ちょっと、ググって来ます。
0839nobodyさん2010/12/15(水) 11:15:03ID:???
>>837
ありがとうございます。
書いてる途中にレスが。。。。

警告みたいなものはでないです。
0840nobodyさん2010/12/15(水) 11:53:05ID:MdJi7P3P
【OS名】Ubuntu 10.10
【PHPのバージョン】5.3
【連携ソフトウェア】Apache, MySQL
【質問内容】

超ローカルcatv接続なのに規制されました(泣
phpを使って規制解除をしてもらう方法を教えてください
0841nobodyさん2010/12/15(水) 12:01:17ID:???
PHPとは関係ないので諦めて規制解除をお待ちください
0842nobodyさん2010/12/15(水) 12:54:05ID:???
PHPにこんな感じの匿名classはないんだっけ?
$class = new {var $m_name = "value"};

>>838
あとは凡ミスしか考えられない
色々と弄り回しているんだろうからデータも再確認した方がいいかも
0843nobodyさん2010/12/15(水) 12:56:54ID:???
>>1
0844nobodyさん2010/12/15(水) 13:12:58ID:???
>>818

> $info["mail_address"] にだけ値が入らない

どのようにして、「値が入らない」ことを確認していますか?
実は値が入っていても、「入っていない」と誤って認識してしまうプログラミングをしている可能性はありませんか?

0845nobodyさん2010/12/15(水) 13:20:44ID:???
if ( $info["mail_address"] = "" ) とかで代入しちゃってるとか
0846nobodyさん2010/12/15(水) 13:26:38ID:???
$infoをvar_dumpで出力して中身見ろ

>>842
一応あるといっていいのか謎な物はある
$class = new stdClass();
$class->m_name = "value";

こんな感じでプロパティを追加してく
メソッドも一応関数使って追加できたはず
0847nobodyさん2010/12/15(水) 14:55:36ID:V9crItGv
>>842,844-845
レス、ありがとうございます。

print($info["mail_address"]); とやって確認しています。
他のデータは表示されます。

ここまで来ると凡ミスだと思います。

問題の行の「*」を各カラム指定に変えると、正しく取得できるので
他の行でミスをしてるとは考えづらいのですが、多分、ほんの些細なこと
で引っかかってると思います。

もう一度、しっかりプログラムをチェックしてみます。
0848nobodyさん2010/12/15(水) 15:02:20ID:???
>>847

プログラムの見直しなどを行って、それでも本当に値が入っていないと判断できたならば、
$info["mail_address"] がどんな状態になっているかを調べませんか?

そして、調べた結果をこのスレに書いてもらえますか?

私個人の経験ではありえない状況であるので、是非にとも、一つの知識として得ておきたいと思いました。

厚かましいお願いで申し訳ありませんが、宜しくお願いします。
0849nobodyさん2010/12/15(水) 15:33:06ID:???
printじゃなくて var_dump で $info 丸ごと見たいところですよね。
0850nobodyさん2010/12/15(水) 17:03:42ID:???
>>847
可能ならDBのテーブル構造を示したほうが参考になるかも。
$info["mail_address"]だけが空というのは原因が想像できないので
フィールド名を変えてみたりして試したらどうですか。
"name"と"mail_address"のフィールド名を逆にしたらどうなりますか?
0851nobodyさん2010/12/15(水) 18:21:14ID:???
凡ミスに対しておまいら不思議なくらいいつまでも親切だな
0852nobodyさん2010/12/15(水) 18:25:26ID:???
>>851
あなたはこのスレに相応しくないようですのでお引取り願います
0853nobodyさん2010/12/15(水) 19:01:54ID:???
>>852
そうした言葉は荒れる原因になるので控えて頂けるよう願います
08548182010/12/15(水) 23:02:39ID:V9crItGv
皆さん、色々ありがとうございました。
思いっ切り、思い込みによる凡ミスでした。
結論は、大文字小文字の違いによるものでした。

私が、大文字小文字の区別を他言語と混同していたのが原因です。

テーブルの構造の方では「mail_Address」、phpファイルの方では
$info["mail_address"]等「A」と「a」の違いでした。

var_dumpで確認したところ、カラム指定を「*」にすると、連想配列のインデックスは
テーブルの構造で定義された通りの大文字小文字の区別で設定され、
カラム指定の場合は、カラム指定で書いた大文字小文字に修正されて設定されていました。

構造定義では「mail_Address」、select命令で「*」を指定した場合、 $info["mail_Address"] と
なって、カラム指定で「mail_address」と書くと $Info["mail_address"]と設定されました。

なので、「*」でselect文を実行した場合に、print($info["mail_address"]とすると表示されないと
言う事みたいです。

皆さんから、そんなこと当たり前のことだと言われると思いますが、私の様な初心者には
嵌りやすいことかなと思い、長々と書かせてもらいました。

親身にレスを下さってありがとうございました。
0855nobodyさん2010/12/16(木) 00:02:13ID:???
自動的にmail_Address AS mail_addressって意味になるのか。
それは知らなかったな。
まあ覚えておくべきはこのMySQLの仕様じゃなくてvar_dumpを使うだのといったバグの探し方だよ。
0856nobodyさん2010/12/16(木) 01:56:04ID:???
とりあえず荒らしから低レベルPHPerに転換したやつは先にAjax勉強しとけ
0857nobodyさん2010/12/16(木) 02:31:19ID:???
Ajaxを勉強 にすごい違和感、概念を覚えるならまだわかるけど。
0858nobodyさん2010/12/16(木) 03:18:28ID:swQxSHZw
$tmp = mb_convert_encoding('��', 'UTF-8', 'EUC-JP');
echo mb_get_info('illegal_chars'); // 1
$tmp = mb_convert_encoding('��', 'UTF-8', 'EUC-JP');
echo mb_get_info('illegal_chars'); // 2

と、mb_get_info('illegal_chars') の値が加算され続けてしまいます。
これを0に戻す方法はないでしょうか?
よろしくお願いします。
0859nobodyさん2010/12/16(木) 06:02:45ID:???
>>857
概念知ってるのに実装できないのは頭が足りないから
頭が足りないのは勉強するしかない
勉強しても補えないほどのIQの持ち主ならお気の毒だ
0860nobodyさん2010/12/16(木) 06:03:25ID:???
http://hibari.2ch.net/test/read.cgi/php/1272872528/920-
0861nobodyさん2010/12/16(木) 08:58:58ID:???
>>857
>>683
0862nobodyさん2010/12/16(木) 09:11:05ID:???
>>858
わからんがなさそう。
mb_convert_encodingを実行する直前と直後で値を比べて判断するしかないんじゃない
0863nobodyさん2010/12/16(木) 13:02:54ID:???
<?php
include_once(dirname(__FILE__).'/A.php');
include_once(dirname(__FILE__).'/B.php');
include_once(dirname(__FILE__).'/C.php');
?>
それぞれABCを実行したいのですがAとBだけでCが実行されません
どうしたら出来るようになりますか?
0864nobodyさん2010/12/16(木) 13:05:13ID:???
エスパーじゃないと回答無理じゃね
0865nobodyさん2010/12/16(木) 13:08:11ID:???
inclide_onceだから、他でC.phpをインクルードしてるんじゃね?
0866nobodyさん2010/12/16(木) 13:15:27ID:???
>>863
ちゃんと呼び出されているのか、include_onceの返り値を確認する。
warningが出てないか確認する。
include_onceじゃなくてincludeかrequireを使ってみる。
0867nobodyさん2010/12/16(木) 13:27:41ID:???
C.phpを書く。
ないものはインクルードされない
0868nobodyさん2010/12/16(木) 13:29:05ID:???
初心者はエラーをディスプレイ表示にした方が良いぞ
0869nobodyさん2010/12/16(木) 13:31:02ID:???
初心者じゃありません。Ajaxについてはあなた方より詳しいです。
0870nobodyさん2010/12/16(木) 13:34:20ID:???
自称非初心者は大抵素人
0871nobodyさん2010/12/16(木) 13:37:39ID:???
素人じゃありません。JAXAについてはあなた方より詳しいです。
0872nobodyさん2010/12/16(木) 13:42:27ID:???
21日は皆既月蝕だってさ
0873nobodyさん2010/12/16(木) 13:44:49ID:???
月食を月蝕と書かれると気持ち悪い
0874nobodyさん2010/12/16(木) 13:47:23ID:???
素人じゃありません。一人遊びについてはあなた方より詳しいです。
0875nobodyさん2010/12/16(木) 13:52:34ID:???
月食月蝕ウゼェ。
たまには、NetBeansのことも……
0876nobodyさん2010/12/16(木) 13:57:40ID:???
Oracleキモい視ね
0877nobodyさん2010/12/16(木) 13:58:58ID:???
include使ってみろって言ってる奴はあほなのか・・・?
それならまだrequireかrequire_once使えって言えよ・・・
<?php
error_reporting(E_ALL);
require_once(dirname(__FILE__).'/A.php');
require_once(dirname(__FILE__).'/B.php');
require_once(dirname(__FILE__).'/C.php');

これで実行してみろ
0878nobodyさん2010/12/16(木) 14:00:16ID:???
あほじゃありません。カフェインの中毒性についてはあなた方より詳しいです。
0879nobodyさん2010/12/16(木) 14:21:47ID:???
includeならエラーがあっても続くだろ
0880nobodyさん2010/12/16(木) 14:31:14ID:???
<?php
error_reporting(E_ALL);
ini_set("display_startup_errors","on");
require_once(dirname(__FILE__).'/A.php');
require_once(dirname(__FILE__).'/B.php');
require_once(dirname(__FILE__).'/C.php');

こっちの方が良いな
エラーがあっても続くのはincludeもinclude_onceも一緒
0881nobodyさん2010/12/16(木) 15:09:41ID:???
>AとBだけでCが実行されません

なんだから、includeの問題じゃないだろ。
Cがないか、スペルが間違っているか、全角半角が間違ってるか
要するに、そういうレベルの話だろ。
0882nobodyさん2010/12/16(木) 15:20:20ID:???
Bでexitしてるとかそういうこともありえる。
0883nobodyさん2010/12/16(木) 15:41:22ID:???
簡単な質問だとイキイキするなおまいら
0884nobodyさん2010/12/16(木) 15:42:20ID:???
includeを使ってみろと書いたのは>>865の言うように他で既にincludeしている可能性を確認するため。
include_onceでも返り値を確認すれば済む話。
0885nobodyさん2010/12/16(木) 15:43:30ID:???
error_reportingとか書いてる奴はあほなのか・・・?
それならまだAjax使えって言えよ・・・
0886nobodyさん2010/12/16(木) 15:50:15ID:???
Ajaxじゃありません。error_reportingについてはあなた方より詳しいです。
0887nobodyさん2010/12/16(木) 16:07:38ID:???
>>863
>>1
0888nobodyさん2010/12/16(木) 16:10:51ID:???
>>887
反応が鈍すぎます。
該当レスが書き込まれて30分以内にレスできない場合は無駄なリソース消費を
抑えるためにレスを控えるようスクリプトを改善して下さい。
0889nobodyさん2010/12/16(木) 16:15:47ID:???
>>888
訂正スクリプトの割に反応が遅いですね。
スレッドの巡回間隔をもう少し短くして下さい。
0890nobodyさん2010/12/16(木) 16:21:15ID:???
>>864-889
>>694
ID出さない奴に答えてんじゃねぇよ。荒らしかよクズが
0891nobodyさん2010/12/16(木) 16:22:40ID:???
スクリプト言語なんだから途中経過を示す表示でも入れてテストすればわかる。

全ID表示なら透明あぼーんで解決するのにね。
0892nobodyさん2010/12/16(木) 16:24:13ID:???
言ってる意味が全くわかりません
0893nobodyさん2010/12/16(木) 16:27:13ID:???
IDなくてもあぼ〜ん出来るけどな
0894nobodyさん2010/12/16(木) 16:30:20ID:???
言ってる意味が全くわかりません
0895nobodyさん2010/12/16(木) 16:41:59ID:???
お前がその筆頭だけどな(藁
0896nobodyさん2010/12/16(木) 19:31:31ID:WN9KAPbv
【OS名】Windows Vista Homebasic
【PHPのバージョン】5.31
【連携ソフトウェア】特になし
【質問内容】
Xamppから一式インストールして、PHPに挑戦中なのですが、
PDFファイルのダウンロード(或いはブラウザ上で表示)するページが作れません。
以下のサイトを参考に作成したのですが、PDFファイルが
全てテキストファイルとして表示(文字化け)されてしまいます。

IEだとContent-typeが無視される問題があると知り、
FireFoxでも試してみましたが、同じ結果でした。

考えられる原因は何があるでしょうか。よろしくお願いいたします。

参考サイト
ttp://code.nanigac.com/source/view/462
ttp://shoyu-ramen23.jugem.jp/?eid=64
0897nobodyさん2010/12/16(木) 19:33:40ID:???
XAMPP
0898nobodyさん2010/12/16(木) 19:44:29ID:???
>>896
ファイルがあるんなら、すなおにリンクして 右ボタンおして保存してねって逃げればどうよというのはおいといて、

header前になんか書き出してないかチェック。

駄目なら

header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="sample.pdf"');

だけでテスト
0899nobodyさん2010/12/16(木) 19:55:27ID:???
>>896
初心者がXAMPP使うな
0900nobodyさん2010/12/16(木) 19:56:58ID:???
じゃあ何使えばいいのさ
0901nobodyさん2010/12/16(木) 20:08:04ID:???
>>854

なるほど

状況が理解できました。

連想配列の索引、表の定義、SQLを絡めて、大変にためになる事例でした。

結果報告にお礼します。

ありがとうございました。

09028962010/12/16(木) 20:22:09ID:WN9KAPbv
>>897
XAMPPですね。ありがとうございます。

>>898
とりあえず、それだけのPHPファイルを作成したらうまく動きました。
ありがとうございます。

ただ原因がいまいち分からないので、また暫く自分なりに
挑戦してみてダメだったらここで再び質問させて頂こうと思います。
0903nobodyさん2010/12/16(木) 22:52:18ID:???
>>897
AJAXですね。ありがとうございます。
0904nobodyさん2010/12/17(金) 06:06:59ID:???
AJAXじゃありません。初心者についてはあなた方より詳しいです。
0905nobodyさん2010/12/17(金) 08:03:34ID:???
そろそろスレ違いに気付いて移動しろ
0906nobodyさん2010/12/17(金) 08:47:30ID:???
スレ違いじゃありません。JAXAについてはあなた方より詳しいです。
0907nobodyさん2010/12/17(金) 09:42:21ID:???
>>906
先日の周回衛星の失敗原因は何ですか?
0908nobodyさん2010/12/17(金) 09:56:16ID:???
想定外の月蝕の発生によるものです
レス数が900を超えています。1000を超えると表示できなくなるよ。