【PHP】下らねぇ質問はID出して書き込みやがれ 116
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2012/02/26(日) 11:49:58.54ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 115
http://kohada.2ch.net/test/read.cgi/php/1327005803/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0866(498===523===525)===(498=523=525)
2012/03/16(金) 13:40:37.20ID:Ny7vUNEaなるほどー。
>>865
緩い比較は使わないので、僕は後者しか使ってないです。
後者の書き方を知らなかった時は、switchを使うのがすごくイヤで、ifで書いていたりしました。
0867nobodyさん
2012/03/16(金) 15:13:52.02ID:???どちらかを使うって事は無いな
0868867
2012/03/16(金) 15:14:48.41ID:???正)どちらかのみ
0870(498===523===525)===(498=523=525)
2012/03/16(金) 16:49:38.82ID:Ny7vUNEa0872nobodyさん
2012/03/16(金) 19:59:09.74ID:???マエカブ株式会社
ってネタを思い出した
0873nobodyさん
2012/03/16(金) 22:25:23.76ID:90NjddGX// somelib.php
$global_variable = 'golobal variable';
class Somelib {...}
// myclass.php
class Parent {...}
class Child1 extends Parent {...}
class Child2 extends Parent {
public function some_method() {
require_once 'somelib.php';
$somelib_obj = new Somelib();
}
}
このようにひとつのファイルに複数のクラスを割り当てています。
Child1ではsomelib.phpは不要なので、Child2が使用された場合にのみ読み込もうと、上記のように書きました。
しかし、インスタンス生成は(当然)できるものの、グローバル変数$global_variableは読み込まれません。
somelib.php内に$GLOBALS['global_variable']として呼び出すコードがあるため、そこでエラーとなります。
この場合のルールってどうなってるんでしょうか。
※myclass.phpのグローバル領域にてrequireした場合には問題ありません。
0875nobodyさん
2012/03/16(金) 22:55:23.96ID:90NjddGXありがとうです。そうか、ライブラリと同じ(グローバルの)スコープではないんですね。
動作の確認できました。ひとまずrequireの直後に以下のように追加して凌ごうと思います〜。
なんかえらい雑な感じもするけど・・・
$GLOBALS['global_variable'] = $global_variable;
0876nobodyさん
2012/03/17(土) 04:06:15.48ID:ErwHrG3p↑のサイトのやり方で、ページングの機能をつくりたいのですが、
0からではなく、最初のページを1からにしたいんです。
どなたか教えてください。。。
0877nobodyさん
2012/03/17(土) 04:22:39.51ID:???0878nobodyさん
2012/03/17(土) 04:38:51.34ID:ErwHrG3pありがとう。でもわからんw
function getNaviLink() {
$naviLink = null;
for ($i = 0; $i < $this->maxPageNum; $i++) {
ここを1にしたら最初のページのリンクがなくなたです
0880nobodyさん
2012/03/17(土) 05:20:39.95ID:ErwHrG3pたぶんできた!!!ありがとう\(^o^)/
0881nobodyさん
2012/03/17(土) 05:24:18.22ID:???全体的に変えないとだめだろう
+1とか-1とかつけたり消したり等号を<から<=に変えたり
つうか自分で作れない人は改造スレね
http://kohada.2ch.net/test/read.cgi/php/1314546533/
0882nobodyさん
2012/03/17(土) 05:46:48.90ID:???Awesome Pagination with ZF, Paginator, AjaxContext and the HTML5 History API
http://blog.philipbrown.id.au/2011/03/awesome-pagination-with-zf-paginator-ajaxcontext-and-the-html5-history-api/
0883nobodyさん
2012/03/17(土) 05:57:56.87ID:???0884nobodyさん
2012/03/17(土) 06:18:27.10ID:???> 毎回ページング対象の全レコードを投げる必要があったりと、とても微妙な事をしているので、
> データ量が多い場合には微妙な気がするけれど、数千件程度のデータなら別にこれでも良いんじゃないかな〜と。
こんなこと書いてるところを信用するなでいいと思う。
0885nobodyさん
2012/03/17(土) 06:27:58.81ID:???0887nobodyさん
2012/03/17(土) 06:32:20.08ID:???とか書いてるのに
$this->pageNum = intval($pageNum);
とか書いてるのがPHPの嫌なところだな
こういうのってしっかりやるときはやっぱり
InvalidArgumentException投げるんだろうか
0889nobodyさん
2012/03/17(土) 06:40:37.80ID:???0890nobodyさん
2012/03/17(土) 07:01:48.15ID:???0891(498===523===525)===(498=523=525)
2012/03/17(土) 07:48:34.40ID:WDIEzOVg>>884
Pear::Pagerも、同じく取得するデータを制限するのではなく、
全件取得して表示するデータを制限するだけという小規模仕様。
http://pear.php.net/manual/ja/package.html.pager.php
>数千件程度のデータなら
まぁ、非効率なことをやっているという意識があって、
実際の動きが遅くないならいいんじゃないかという気もする。
件数が増えればすぐに遅くなる。
0892nobodyさん
2012/03/17(土) 07:59:08.54ID:???<?php
print \"No\";
?>
";
$bbb = str_replace( "No", "Yes",$data );
/////////////////////
$dataの文字列が<?php ?>でくくって
あるとstr_replace できないようですが
置換する方法を教えて下さい。
0893(498===523===525)===(498=523=525)
2012/03/17(土) 08:06:22.87ID:WDIEzOVgそれは言語とは関係のないコードの話ですよね。
「$this->pageNum = intval($pageNum); 」では、フォームから受け取った文字列型のページ値を
文字列から数値に「意図的に」変換しつつ、入力値の制限にもなるし、全く問題ない記述だと思う。
自分なら、フォームで受け取る処理でページは数値化しておくけど。
0894(498===523===525)===(498=523=525)
2012/03/17(土) 08:09:10.72ID:WDIEzOVg$data="" じゃなく $data='' に。
0895nobodyさん
2012/03/17(土) 08:10:25.63ID:???2dが2になるのが嫌なんです
0897(498===523===525)===(498=523=525)
2012/03/17(土) 08:18:37.82ID:WDIEzOVgページャーの外で ctype_digit でもしとけばいい話。
って、やっぱりPHPと関係ない。
0898nobodyさん
2012/03/17(土) 08:21:27.67ID:???0899nobodyさん
2012/03/17(土) 08:24:34.84ID:???0900nobodyさん
2012/03/17(土) 08:30:02.68ID:???/detail/1420596/
/detail/1420596jp/
が同じ結果ってのはな
後者はNotFoundにしないとだめだろ
0901nobodyさん
2012/03/17(土) 09:27:30.59ID:j6AXQeWwQdSmtp error: getMessage error line -> 543
QdSmtp error: Error From setting line -> 488
QdSmtp error: Send Data Error or Auth Error line -> 415
Qdmail error: Qdmail Version 1.2.6b ,PHP Version 5.2.11
Qdmail error: OS WINNT ; PHP Version 5.2.11 ; Qdmail version 1.2.6b
php.ini status: mb_language = Japanese ; mb_internal_encoding = UTF-8 ; mb_detect_order = ASCII,JIS,UTF-8,EUC-JP,SJIS
Qdmail Status debug: 0, log: 3, errorlog: 0
Qdmail error: No send . Because SMTP mail method replied error line -> 2190
Qdmail error: Send Error line -> 2115
Qdmail error: Error happen, see upper line -> 2194
Qdmail error: Send Error line -> 2115
Qdmailでメールを送信すると上記のようなエラーが出て送信できない場合があるのですが、
これはどういったエラーなんでしょうか?
(このあとすぐにもう1度同じ処理を更新ボタンを押してすると成功する場合が多いです)
0902901
2012/03/17(土) 09:28:09.71ID:j6AXQeWwメールサーバはさくらインターネットを利用しています。
0903nobodyさん
2012/03/17(土) 10:26:37.10ID:???0904nobodyさん
2012/03/17(土) 11:47:59.61ID:???PEARでもスレ違いって言われるぐらいなのに
0905nobodyさん
2012/03/17(土) 12:26:16.65ID:???0906892
2012/03/17(土) 15:25:57.69ID:???ありがとうございました。
0907(498===523===525)===(498=523=525)@家
2012/03/17(土) 17:13:21.10ID:m3CObGes静的型付けならそうなるが、動的型付けであっても、自動変換しないでエラーにする関数が
用意されていたらいいんだと思う。
が、PHPは「自動変換しますよ!」的なポリシーで、用意していないって事なのかな。
まぁ、簡単に書けるので、そうしたければ自分で用意して使え、というポリシーなんだろう。
JavaだとInteger::Integer(String s)か。
http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Integer.html#Integer(java.lang.String)
>>899
大して変わんねんじゃね?
>>900
確かに横着。
でも知っていて手を抜く場合もあるかも。
0908nobodyさん
2012/03/17(土) 20:28:53.68ID:???windows7、php 5.4.0です。
ディレクトリをオープンする時、フォルダパスにダメ文字が入っていると開けないのですが、どうすれば解決できるでしょうか。
$path="C:\コッソリ噂";
opendir($path);
文字コードをsjis、sjis-winにするのかなと思ったのですが、変わりませんでした。
opendir(mb_convert_encoding($path,'SJIS','UTF-8'));
opendir(mb_convert_encoding($path,'SJIS-win','UTF-8'));
0910nobodyさん
2012/03/17(土) 20:39:47.36ID:yzv5Q1Zj【OS名】windows7
【PHPのバージョン】5.4
【連携ソフトウェア】無し
【質問内容】
phpファイルのエンコードはurf-8です。
ディレクトリをオープンする時、フォルダパスにダメ文字が入っていると開けないのですが、どうすれば解決できるでしょうか。
$path="C:\コッソリ噂";
opendir($path);
文字コードをsjis、sjis-winにするのかなと思ったのですが、変わりませんでした。
opendir(mb_convert_encoding($path,'SJIS','UTF-8'));
opendir(mb_convert_encoding($path,'SJIS-win','UTF-8'));
0911nobodyさん
2012/03/17(土) 21:34:51.63ID:???WindowsはShift_JISだから無理なのかもしれんな
http://toro.2ch.net/test/read.cgi/tech/1306595564/
こっちの人のほうが詳しいと思われ
0912nobodyさん
2012/03/17(土) 21:37:20.90ID:???0913(498===523===525)===(498=523=525)@家
2012/03/17(土) 21:58:14.67ID:m3CObGesPHP 5.3以降のバグ?
ttp://old.nabble.com/-PHP-users-35287--Windows7-%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E8%AA%AD%E3%81%BF%E5%87%BA%E3%81%9B%E3%81%AA%E3%81%84-td29136372.html
0914nobodyさん
2012/03/17(土) 21:58:18.95ID:???・・・数スレ毎にこの話題出るね。
簡単に言えば現在のPHPは対応できてないんでダメですね。
詳しく知りたければ過去スレに書いたのでも見てください。
>>909
スレの無駄なんで、今後は回答しながら指摘してくれるかなぁ。
0916nobodyさん
2012/03/17(土) 22:08:05.98ID:???0917nobodyさん
2012/03/18(日) 01:11:04.96ID:???0918nobodyさん
2012/03/18(日) 01:43:24.75ID:QddY4QUA【PHPのバージョン】5.3
file_get_contentsやcurlで、あるサイトの内容を取得しているのですが、どちらでも最新の内容が取れません
bashからだとcurlを使うと最新の内容が、wgetだと上記と同じく古い内容が取得されます
趣味で作ってる物なのでラグがあっても問題はないのですが、これらにどのような違いがあるのか気になります
詳しい方いましたら教えていただきたいです
0920nobodyさん
2012/03/18(日) 01:52:38.48ID:???どこのサイトか晒せばいろいろ試せるんだがな
0921918
2012/03/18(日) 02:02:29.75ID:???http://gamercard.xbox.com/ja-JP/[gamertag].card/
タグは伏せてます
プレイしたらここに掲載される情報が更新されるんですがwin7でブラウザから見て最新になっていても
centosからだと・・・って状況です
shell_exec("curl http://~")で試してみましたがこれでも古い情報になります
現時点で2時間ほどラグ出てるので向こう側の問題かも・・・?
というか箱○持ってないと検証できないですね
0923918
2012/03/18(日) 02:45:07.11ID:QddY4QUAcurlだと最新が〜と>>918で書きましたが間違いでこっちも古かったです
URLがen-USだとどの方法でも最新のが得られるようです
ブラウザのリクエストヘッダ使ってみたりしましたが相変わらずでした
やっぱり向こう側の問題な気がします
0924nobodyさん
2012/03/18(日) 03:50:55.73ID:???0925918
2012/03/18(日) 09:35:25.48ID:QddY4QUA別のCentOS(こっちは6)で試したらどれでも最新版が取得できるので
IPで弾かれてる予感が・・・常用時はキャッシュ使ってるので負荷はかけてない筈でしたが
ブラウザからでも即時更新されることもあれば寝て起きるまで更新されないこともあるので
向こう側の問題ってことで決着します
0926nobodyさん
2012/03/18(日) 10:01:26.49ID:???0927nobodyさん
2012/03/18(日) 20:11:59.01ID:rlrUKc8I消費税率上げる
消費が減る
税収減る
}
税収が増えません
どうすればいいんでしょうか?
0928nobodyさん
2012/03/18(日) 20:19:01.70ID:???消費税率上げる
消費が減る
税収減る
if(927が高額納税){
while(true){
税率が下がる
消費が増える
景気が良くなる
税収が増える
}
}
}
0929nobodyさん
2012/03/19(月) 00:19:43.05ID:???こちらを参考にログインフォームを作っているのですが、
Strict Standards: Non-static method DB::isConnection() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\Auth\Container\DB.php on line 150
や
Strict Standards: Non-static method DB::parseDSN() should not be called statically, assuming $this from incompatible context in C:\xampp\php\PEAR\DB.php on line 520
というようなエラーが沢山(末尾の数字が変わる)出てしまいます。
PEAR::DBがインストールされていないときに出るエラーのようなのですが、今はMDB2を使うようになっていると聞きます。
上記のURLのソースをMDB2で使うにはどの様に変えていけば良いのでしょうか
0930nobodyさん
2012/03/19(月) 00:43:22.26ID:???http://pear.php.net/manual/ja/package.authentication.auth.auth.auth.php
http://pear.php.net/manual/ja/package.authentication.auth.intro-storage.php
0932nobodyさん
2012/03/19(月) 01:41:14.49ID:cSahNEV1http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1483756154
ここの質問にお答え願えないでしょうか。
ヒントだけでも結構です。
簡単に言うと、CGIの掲示板にスカイプボタンをつけたいんです。
どこをどういじればよいのやら・・・
0933nobodyさん
2012/03/19(月) 01:41:44.97ID:cSahNEV10935nobodyさん
2012/03/19(月) 01:57:32.49ID:???0936nobodyさん
2012/03/19(月) 03:11:25.15ID:???0937nobodyさん
2012/03/19(月) 03:20:07.54ID:???0938nobodyさん
2012/03/19(月) 04:14:36.21ID:???0939nobodyさん
2012/03/19(月) 10:49:45.16ID:???0940nobodyさん
2012/03/19(月) 18:01:12.36ID:/hyp6Xkg【PHPのバージョン】5.4
【連携ソフトウェア】無し
【質問内容】
$a["b"]をfの中で$xに参照渡しをし、$a["b"](=$x)の値を書き換えたいのですが
$a["b"]="a";
f($a);
print $a["b"];
function f(&$a){
if($a["b"]=="a"){
$x=&$a["b"];
}else{
$x="";
}
$x="x";
}
こう書くと狙い通りにxと表示されるのですが、ifを(true?true:false)の一行の書き方で書こうとすると
$a["b"]="a";
f($a);
print $a["b"];
function f(&$a){
$x=($a["b"]=="a"?&$a["b"]:"");
$x="x";
}
文法エラーが発生してしまいます。
$x=&($a["b"]=="a"?$a["b"]:"");
$x=($a["b"]=="a"?(&$a["b"]):"");
この様に書いても同じでした。
一行の書き方で参照渡しするにはどうしたらよいのでしょうか
0942nobodyさん
2012/03/19(月) 23:18:33.49ID:???0943nobodyさん
2012/03/19(月) 23:28:21.50ID:???出来てもよさそうなのにな。出来ないんだよ。
$a["b"]=="a"?$x=&$a["b"]:"";
まあ、ifで書きなよ
0944nobodyさん
2012/03/20(火) 01:39:16.41ID:???0946910
2012/03/20(火) 02:41:57.55ID:???またはexec("mklink /H \"{$tempPath}\" \"{$path}\"");してファイルを持ってくる方法にしました。
やれば出来る。なんでも出来る。
0947944
2012/03/20(火) 02:44:26.84ID:???0948nobodyさん
2012/03/20(火) 08:27:38.77ID:???文字列の方は、一文字づつのfrom toの指定を文字列で行うもの(だから文字数同じ)
配列の方は from toが文字列
0949nobodyさん
2012/03/20(火) 17:35:10.61ID:5sAZwRmN{html_options name=form[$i.num][enable][] options=$select selected=$i.sel}
このようにnameに配列を指定するとエラーになってしまうのですが、
これを回避する方法はないものでしょうか。
すみませんがご教示ください。
0951nobodyさん
2012/03/20(火) 17:39:45.04ID:???smartyスレ立てればよろし
0952nobodyさん
2012/03/20(火) 20:19:21.63ID:kQLmWU30MySQLのint型のカラム(例、id番号格納用)からPHPでidを取得する場合には、
int型、string型のどちらになるのが普通でしょうか?
同一コードなのに、動作がおかしいので、var_dump()で確認すると、
レンタルサーバー(PHP5.2.5)では、string型になっています。
逆に、ローカルのXAMPP(PHP5.3.5)では、int型になっています。
環境が違うと型も異なるのでしょうか?
0953nobodyさん
2012/03/20(火) 22:34:30.30ID:RhIqQwV3http://smallworld.west-tokyo.com/blog/2011/02/php-study-6.html
このソースではどうやってPOSTされた物をセッション変数に入れているのですか?
0954nobodyさん
2012/03/20(火) 22:59:01.27ID:XuJ1KzYbregistCheck.php
でうけとったのをregistForm.phpに渡している。
>>952
レンサバの環境がわからんとなんともいえん
0955953
2012/03/20(火) 23:05:30.24ID:RhIqQwV3それはregistForm.phpの2行目から3行目あたりで行われているということですよね?
$_SESSION['username']=$_POST['username']みたいなのが見当たらないのですが、なぜ渡せるのですか?
0956nobodyさん
2012/03/20(火) 23:30:39.79ID:???5.3からmysql関連のドライバの扱いが変わってるんでその辺かなぁ。
いろいろ変わってるんだけどそーいうのが簡単に調べられねーんだよな。
>>955
get_magic_quotes_gpcだの、いつの時代のだよと思ったら去年の記事・・・
いろいろ変だし、そこ見るのはやめるのを俺はお勧めする。
0957953
2012/03/20(火) 23:37:12.10ID:RhIqQwV3わかりました。他の所を参考してみます。
ありがとうございました・
0958952
2012/03/21(水) 00:43:26.28ID:pFyJJ5uVレスありがとうございます。
やはりバージョンの違いが原因と考えた方がよさそうですね。
直感的には、MySQLのカラムがintなら、PHPで取得したデータも
intというのが、わかりやすいです。
また、これからは、5.3以上のサーバーが増えそうなので、
5.3でも動くように変更してみます。
0959nobodyさん
2012/03/21(水) 04:15:32.77ID:???レンサバの5.3だと仕様通りstringが返るから、OSの問題なんかね
0960nobodyさん
2012/03/21(水) 07:58:14.83ID:NtYwhUXpResource id #1
と表示されるんですが、これはどういう意味ですか?
0961nobodyさん
2012/03/21(水) 09:08:59.69ID:???意味を聞かれても答えられるようなものではない
リソースの概念については
ttp://php.net/manual/ja/language.types.resource.php
0962nobodyさん
2012/03/21(水) 09:13:44.19ID:???fopenの返り値あたりを表示してんじゃねーの?
http://jp.php.net/manual/ja/language.types.resource.php
0963952
2012/03/21(水) 10:43:08.42ID:Jp6FiHgKcoreseverでPHP5.2から5.3へのバージョンアップが可能だったので、
試したところ、5.3にしても、string型が返ってきました。
おっしゃるとおり、PHPのバージョンの問題でなく、OS、MySQL側などの問題のようです。
string型で返るのが仕様なら、string型で統一したいと思います。
WIN+XAMPPの組み合わせだと、int型が返るのかもしれませんね。
0964(498===523===525)===(498=523=525)
2012/03/21(水) 11:16:59.46ID:4pswCVucDBに何を使ってアクセスしているか書きましょうよ。
値取るまでのコードを全部書いたらいい。
0965nobodyさん
2012/03/21(水) 11:19:43.80ID:???それ以外で取得できるのはクライアント側の
中間のライブラリとかで処理してる。
0966952
2012/03/21(水) 11:52:52.10ID:Jp6FiHgKPDOを使ってアクセスしています。コードは、こんな感じです。
/**** DB接続PDO ****/
$dsn = 'mysql:host='. SERV .';dbname='. DBNM ;
try {
$dbh = new PDO($dsn, USER, PASS) ;
$dbh->query('SET NAMES utf8') ;
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE) ;
$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ) ;
} catch (PDOException $e) {
die('db error.');
}
$sql = 'SELECT * FROM users WHERE mail=:mail AND pass=:pass AND state=1' ;
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':mail', $mail, PDO::PARAM_STR);
$stmt->bindParam(':pass', $pass, PDO::PARAM_STR);
$stmt->execute();
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$_SESSION['id'] = $row['id'] ;
$_SESSION['user'] = $row['user'] ;
レス数が950を超えています。1000を超えると書き込みができなくなります。