【PHP】下らねぇ質問はID出して書き込みやがれ 101
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2010/11/15(月) 13:00:07ID:???過去スレ、関連スレ、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:???0810nobodyさん
2010/12/14(火) 20:43:58ID:???DIRECTORY_SEPARATOR 使ってるよ
ただインクルードについては、include_pathに入れちゃうからパス指定はしてない。
0811サーバー”管理”
2010/12/14(火) 20:46:08ID:???0812nobodyさん
2010/12/14(火) 20:49:58ID:???>>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:???0816nobodyさん
2010/12/15(水) 01:02:35ID:???以下の命令を実行すると
$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を使っています。
よろしくお願いします。
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"] にだけ、
値が入らないのですが、何が間違えなのさっぱり分かりません。
データベースの方の設定で「*」の時は取得できない設定とかってあるのでしょうか。
0820nobodyさん
2010/12/15(水) 04:11:52ID:???0821nobodyさん
2010/12/15(水) 07:48:29ID:???0822nobodyさん
2010/12/15(水) 08:47:47ID:24J/DfE6PHPで皆がMySQLとかに自分の情報を書き込むサイトを作ってるのですが
この場合、PHPはアクセス制限かけた所に保存して、書き込みフォームで引き出すという方がいいでしょうか?
それともそのまま書き込みフォームにphpを記入してもいいのでしょうか?
安全面から見るとどっちの方がいいんでしょう?
0823nobodyさん
2010/12/15(水) 09:07:07ID:???要するに、public下にスクリプトを置くか、
public下ではhtmlレベルでrequire_onceかなんかでphpを呼び出すかってことかな?
どっちも一緒
0824818
2010/12/15(水) 09:22:44ID:V9crItGvphpmyadminでの操作では、問題ありません。
phpmyadminのsql画面で同じsql文を実行すると、3項目出てきます。
mysql_fetch_assocというのは、知らなかったので
調べてやってみます。
0825nobodyさん
2010/12/15(水) 09:23:21ID:24J/DfE6すみません、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:???連用して使う感じだからそんな安全重視とかって感じではない
だからこそphpはセキュリティをしっかりやらなければならない
0829nobodyさん
2010/12/15(水) 09:35:26ID:24J/DfE6解りやすいたとえありがとうございます!
0831nobodyさん
2010/12/15(水) 09:48:59ID:???リスクは一緒。
0832nobodyさん
2010/12/15(水) 09:53:44ID:???0833nobodyさん
2010/12/15(水) 10:00:38ID:???0834nobodyさん
2010/12/15(水) 10:18:05ID:V9crItGvレス、ありがとうございます。
mail_addressは1つしかありません。
phpmyadminでのsql実行や、「*」を使わずカラム指定した時は
正常に見えるので構造定義等は間違っていないと思いたいのですが。。。
他のカラムと違うのはmail_addressを主キーに指定しているくらいです。
0835nobodyさん
2010/12/15(水) 10:48:14ID:???0836nobodyさん
2010/12/15(水) 10:56:45ID:???フィールドを指定したときと*の場合で読む順序が変わってるだけかと。
確かめてみたらプライマリキーを指定したときはプライマリキーの順番、
*やプライマリキーを出力に指定してない場合はINSERTした順番のような感じだった。
なので、835に一票
0837nobodyさん
2010/12/15(水) 11:06:51ID:???警告でるし、そのときはNULLのはず。
DBでNULLならNULLだけど。
0838nobodyさん
2010/12/15(水) 11:13:25ID:V9crItGvレス、ありがとうございます。
>>それって単にSQLの最初の一行目のmail_addressが空なだけなんじゃねw
最初のレコードのmail_addressカラムにデータが入ってないと言うことでしょうか。
データ自体は入っています。(テスト中で3件しかないので)
836さんの言われてることは、mail_addressカラムに全部データが入っていれば
問題ないのですよね。
ただ、 >>プライマリキーを出力に指定してない場合 って言うのが、よく分かりません。
出力する、しないが指定できるのでしょうか?
ちょっと、ググって来ます。
0840nobodyさん
2010/12/15(水) 11:53:05ID:MdJi7P3P【PHPのバージョン】5.3
【連携ソフトウェア】Apache, MySQL
【質問内容】
超ローカルcatv接続なのに規制されました(泣
phpを使って規制解除をしてもらう方法を教えてください
0841nobodyさん
2010/12/15(水) 12:01:17ID:???0842nobodyさん
2010/12/15(水) 12:54:05ID:???$class = new {var $m_name = "value"};
>>838
あとは凡ミスしか考えられない
色々と弄り回しているんだろうからデータも再確認した方がいいかも
0844nobodyさん
2010/12/15(水) 13:12:58ID:???> $info["mail_address"] にだけ値が入らない
どのようにして、「値が入らない」ことを確認していますか?
実は値が入っていても、「入っていない」と誤って認識してしまうプログラミングをしている可能性はありませんか?
0845nobodyさん
2010/12/15(水) 13:20:44ID:???0846nobodyさん
2010/12/15(水) 13:26:38ID:???>>842
一応あるといっていいのか謎な物はある
$class = new stdClass();
$class->m_name = "value";
こんな感じでプロパティを追加してく
メソッドも一応関数使って追加できたはず
0847nobodyさん
2010/12/15(水) 14:55:36ID:V9crItGvレス、ありがとうございます。
print($info["mail_address"]); とやって確認しています。
他のデータは表示されます。
ここまで来ると凡ミスだと思います。
問題の行の「*」を各カラム指定に変えると、正しく取得できるので
他の行でミスをしてるとは考えづらいのですが、多分、ほんの些細なこと
で引っかかってると思います。
もう一度、しっかりプログラムをチェックしてみます。
0848nobodyさん
2010/12/15(水) 15:02:20ID:???プログラムの見直しなどを行って、それでも本当に値が入っていないと判断できたならば、
$info["mail_address"] がどんな状態になっているかを調べませんか?
そして、調べた結果をこのスレに書いてもらえますか?
私個人の経験ではありえない状況であるので、是非にとも、一つの知識として得ておきたいと思いました。
厚かましいお願いで申し訳ありませんが、宜しくお願いします。
0849nobodyさん
2010/12/15(水) 15:33:06ID:???0850nobodyさん
2010/12/15(水) 17:03:42ID:???可能ならDBのテーブル構造を示したほうが参考になるかも。
$info["mail_address"]だけが空というのは原因が想像できないので
フィールド名を変えてみたりして試したらどうですか。
"name"と"mail_address"のフィールド名を逆にしたらどうなりますか?
0851nobodyさん
2010/12/15(水) 18:21:14ID:???0854818
2010/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:???それは知らなかったな。
まあ覚えておくべきはこのMySQLの仕様じゃなくてvar_dumpを使うだのといったバグの探し方だよ。
0856nobodyさん
2010/12/16(木) 01:56:04ID:???0857nobodyさん
2010/12/16(木) 02:31:19ID:???0858nobodyさん
2010/12/16(木) 03:18:28ID:swQxSHZwecho 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:???概念知ってるのに実装できないのは頭が足りないから
頭が足りないのは勉強するしかない
勉強しても補えないほどのIQの持ち主ならお気の毒だ
0860nobodyさん
2010/12/16(木) 06:03:25ID:???0862nobodyさん
2010/12/16(木) 09:11:05ID:???わからんがなさそう。
mb_convert_encodingを実行する直前と直後で値を比べて判断するしかないんじゃない
0863nobodyさん
2010/12/16(木) 13:02:54ID:???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:???0866nobodyさん
2010/12/16(木) 13:15:27ID:???ちゃんと呼び出されているのか、include_onceの返り値を確認する。
warningが出てないか確認する。
include_onceじゃなくてincludeかrequireを使ってみる。
0867nobodyさん
2010/12/16(木) 13:27:41ID:???ないものはインクルードされない
0868nobodyさん
2010/12/16(木) 13:29:05ID:???0869nobodyさん
2010/12/16(木) 13:31:02ID:???0870nobodyさん
2010/12/16(木) 13:34:20ID:???0871nobodyさん
2010/12/16(木) 13:37:39ID:???0872nobodyさん
2010/12/16(木) 13:42:27ID:???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:???0877nobodyさん
2010/12/16(木) 13:58:58ID:???それならまだ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:???0880nobodyさん
2010/12/16(木) 14:31:14ID:???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:???なんだから、includeの問題じゃないだろ。
Cがないか、スペルが間違っているか、全角半角が間違ってるか
要するに、そういうレベルの話だろ。
0882nobodyさん
2010/12/16(木) 15:20:20ID:???0883nobodyさん
2010/12/16(木) 15:41:22ID:???0884nobodyさん
2010/12/16(木) 15:42:20ID:???include_onceでも返り値を確認すれば済む話。
0885nobodyさん
2010/12/16(木) 15:43:30ID:???それならまだAjax使えって言えよ・・・
0886nobodyさん
2010/12/16(木) 15:50:15ID:???0888nobodyさん
2010/12/16(木) 16:10:51ID:???反応が鈍すぎます。
該当レスが書き込まれて30分以内にレスできない場合は無駄なリソース消費を
抑えるためにレスを控えるようスクリプトを改善して下さい。
0891nobodyさん
2010/12/16(木) 16:22:40ID:???全ID表示なら透明あぼーんで解決するのにね。
0892nobodyさん
2010/12/16(木) 16:24:13ID:???0893nobodyさん
2010/12/16(木) 16:27:13ID:???0894nobodyさん
2010/12/16(木) 16:30:20ID:???0895nobodyさん
2010/12/16(木) 16:41:59ID:???0896nobodyさん
2010/12/16(木) 19:31:31ID:WN9KAPbv【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:???0898nobodyさん
2010/12/16(木) 19:44:29ID:???ファイルがあるんなら、すなおにリンクして 右ボタンおして保存してねって逃げればどうよというのはおいといて、
header前になんか書き出してないかチェック。
駄目なら
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="sample.pdf"');
だけでテスト
0900nobodyさん
2010/12/16(木) 19:56:58ID:???0901nobodyさん
2010/12/16(木) 20:08:04ID:???なるほど
状況が理解できました。
連想配列の索引、表の定義、SQLを絡めて、大変にためになる事例でした。
結果報告にお礼します。
ありがとうございました。
0902896
2010/12/16(木) 20:22:09ID:WN9KAPbvXAMPPですね。ありがとうございます。
>>898
とりあえず、それだけのPHPファイルを作成したらうまく動きました。
ありがとうございます。
ただ原因がいまいち分からないので、また暫く自分なりに
挑戦してみてダメだったらここで再び質問させて頂こうと思います。
0904nobodyさん
2010/12/17(金) 06:06:59ID:???0905nobodyさん
2010/12/17(金) 08:03:34ID:???0906nobodyさん
2010/12/17(金) 08:47:30ID:???0908nobodyさん
2010/12/17(金) 09:56:16ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。