【PHP】下らねぇ質問はここに書き込みやがれpart13
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/11/25(金) 21:16:56ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
0558553
2005/12/08(木) 19:12:45ID:???setuidとかsuexecにするということでしょうか?
useridを動的に変えたいので、その方法だとユーザ分スクリプトを作る必要が
出てきてかなり厳しいかなと。
色々とぐぐって見たのですが、sudoしろとかいった内容しか見つかりません。
sshでアクセスする場合などのパスワードなんかを聞いてくるような
場合の処理はphpでは不可能でファイナルアンサーでしょうか?
0560nobodyさん
2005/12/08(木) 19:16:57ID:???ヘッダの改竄を防ぐためにどのようなサニタイズを行ったら良いのでしょうか?
0561nobodyさん
2005/12/08(木) 19:19:20ID:???http://www.php.net/manual/ja/language.types.integer.php
整数のサイズはプラットフォームに依存しますが、 約20億(32ビット符号付)が一般的な値です。
0562nobodyさん
2005/12/08(木) 21:38:33ID:uvzNzscrありがとうございました。
0564nobodyさん
2005/12/09(金) 00:57:30ID:???0565nobodyさん
2005/12/09(金) 10:40:28ID:???echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add$s' value='ぽち'></CENTER></FORM>";
}
とした場合、ぽちボタンが押された時〜を実行するという記述をしたいのですが、
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if (isset($add$s)){
〜実行部分〜
}
としても、エラーを吐くみたいです。
$add$sあたりが怪しいと思うのですが、どう書けばいいでしょうか?
}
とした場合、ぽちボタンが押された
0566nobodyさん
2005/12/09(金) 10:41:21ID:???if ($_SERVER["REQUEST_METHOD"]=="POST"){
if (isset($add$s)){
〜実行部分〜
}
}
です。
0567nobodyさん
2005/12/09(金) 10:46:10ID:???ここのサイトの簡単なプログラム例というのを実行したんですが、
エラーが出てしまいます。どなたか解決方法分かる方おられますか?
ちなみに、php.iniのextension=php_pdf.dllの部分は有効にしています。
0568nobodyさん
2005/12/09(金) 10:47:15ID:???0570567
2005/12/09(金) 10:59:23ID:???25行目のdie("Error: " . PDF_get_errmsg($p));でParse Error
31行目のPDF_begin_page_ext($p, 595, 842, "");でFatal error: Call to undefined function: pdf_begin_page_ext()
33行目の$font = PDF_load_font($p, "KozMinPro-Regular-Acro", "Ext-RKSJ-H", "");で上と同じエラー
今のところこういう感じです。
0572nobodyさん
2005/12/09(金) 11:13:20ID:???おまえもどんなエラーだか明記しろよ。
つーか、POSTされたものは$_POST[]だろ。
ま、register_globals=onなら別だが。
0573nobodyさん
2005/12/09(金) 11:20:47ID:???0575nobodyさん
2005/12/09(金) 11:28:06ID:???あ、ちと勘違いだ。
PDF PHP インストールでぐぐってみて。
要するに、PDFlibで使えるようになる関数がundefined functionなわけ。
つまりちゃんといんすとーるされてないってことだから。
0576nobodyさん
2005/12/09(金) 11:29:24ID:???0578nobodyさん
2005/12/09(金) 11:48:46ID:???libpdf_php.dllってファイル持ってるのかよ
そもそもphp.iniを読み込めてないんじゃないの
phpinfo();で確認しろ
0580nobodyさん
2005/12/09(金) 11:58:15ID:???サンプルソースってどこかないですかね?
0581567
2005/12/09(金) 12:05:53ID:???libpdf_php.dllは、PHPのextensionsフォルダにあります。今確認しましたが、
認識はしてくれているようです。
>>579
そうなんですか…。では、なんとか他の方法を探ってみます。
お二人ともありがとうございました
0582nobodyさん
2005/12/09(金) 12:07:39ID:???0583nobodyさん
2005/12/09(金) 12:12:02ID:???phpinfoでPDFlibのバージョンチェック
PDFlib GmbH Version が6以上ならPDF_begin_page_extが使える
5なら使えないのでDF_begin_page関数に変える
0586nobodyさん
2005/12/09(金) 12:20:11ID:???0589567
2005/12/09(金) 12:39:51ID:HHj6b6mWバージョンは6.0.1でしたが、PDF_begin_pageしか動かないようでした。
>>585
ありがとうございます。それは承知しています。
0590565
2005/12/09(金) 13:26:31ID:???next.php内で
if ($_SERVER["REQUEST_METHOD"]=="POST"){
for($i=0;$i<20;$i++){
if (isset($add$i)){
実行部分
のように、POSTされてきたのが、$add0だったら〜、$add1だったら〜、$add2だったら〜・・・
としていきたいのですが、$add$iの書き方がまずいらしく、エラーが出ます。
$add[$i]と書くとエラーは出ませんでしたが、上手く作動しませんでした。
一つ手前のphpのフォームの部分は
for($s=0; $s<count($d_file); $s++){
echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add$s' value='ぽち'></CENTER></FORM>";
}
といった感じで、ボタン毎にadd0 , add1 , add2・・・となっています。
といった感じです。
下記エラー内容です。
「Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ')' 」
ラインは、「 if (isset($add$i)){」この部分でした。
解決策があれば、教えて下さい。
0591nobodyさん
2005/12/09(金) 13:31:01ID:???http://jp2.php.net/manual/ja/language.variables.external.php
0592nobodyさん
2005/12/09(金) 13:49:39ID:hr0We1go0594nobodyさん
2005/12/09(金) 14:06:53ID:???今回だけだぞ。
ヒント: $add{$i}
ホントに下らない質問だから、次回からはきちんと調べるようにwww
0595nobodyさん
2005/12/09(金) 14:08:49ID:???確かめてないけど
for($s=0; $s<count($d_file); $s++){
echo "<FORM ACTION='next.php' METHOD='POST'>";
echo "<CENTER><INPUT type='submit' name='add[$s]' value='ぽち'></CENTER></FORM>";
}
isset($add[$i])
0598nobodyさん
2005/12/09(金) 15:09:37ID:AOiVoXBqSQLのint型のフィールドに放り込んである値を
mysql_fetch_arrayで取り出してそのまますぐにtypegetに入れたらstring
ってでるんですけど、これはいったい・・・。
型変換すればいいんですけど、どういう時にこういうことがおきるんすか?
0599598
2005/12/09(金) 15:10:43ID:???こっちで改めて質問しなおしてます。マルチっぽくてスイマセン。
0600nobodyさん
2005/12/09(金) 15:30:29ID:???0601nobodyさん
2005/12/09(金) 15:43:19ID:???あら、PHP5で register_globalをonにした覚えが無いのでoffのはずなんですがorz
デフォでoffですよね
0602598
2005/12/09(金) 15:44:28ID:???じゃあDBでどのような型に入ってたとしても、
PHPに読み込むと必ず文字列になると認識をして無いと危険と言うことですね。
0605nobodyさん
2005/12/09(金) 15:53:00ID:???0606nobodyさん
2005/12/09(金) 15:58:07ID:???何故かそれだと出来なくて、 add[$i]でポストされたのを、
if ($_SERVER["REQUEST_METHOD"]=="POST"){
for($i=0;$i<count($rp);$i++){
if (isset($add[$i])){
で受け取れています・・・。
globalはoffなんですが、どうしてでしょうかorz
0607nobodyさん
2005/12/09(金) 15:58:37ID:???0608nobodyさん
2005/12/09(金) 16:16:49ID:???0611nobodyさん
2005/12/09(金) 17:27:38ID:???意見ありがとうございます。
add0でポストされていても、i=2になっていたりするので、上手くいかないのですorz
breakしてないからかもですが・・・。
現状で上手く動作してるので妥協してるのですが、もう少しいじってみます。
0612nobodyさん
2005/12/09(金) 17:36:35ID:???となっていて、配列$fruitにぶどうがある場合、falseにしたいんですけど、
これって、list($f[0],$f[1],$f[2]) = expload("/",$fruit[3]);
みたいに分解してからチェックするしかないですかね?
スマートなやり方があれば教えて欲しいんですけれど、公式でarrayの関数順番に見るもそういう関数が見当たらないので(´д`)
0613nobodyさん
2005/12/09(金) 17:39:15ID:???0614nobodyさん
2005/12/09(金) 17:40:43ID:???配列$fruitにぶどうがある場合って、"いちご/ぶどう/なし"が要素にある場合も含めるの?
だったらpreg_grepかな。
0616nobodyさん
2005/12/09(金) 17:52:21ID:???ぶどうのみなのでin_arrayかな・・・。
となると、
$fruit =array("りんご","ばなな","めろん","いちご/ぶどう/なし"); で、
if(in_array("ぶどう","$fruit)){
echo "ぶどうあり。"
}
だと、trueって事ですか・・・。
しらなかったです。ありがとう!
0617nobodyさん
2005/12/09(金) 17:54:16ID:???0618nobodyさん
2005/12/09(金) 18:04:33ID:???in_array()のマニュアルよく読んでみ
0620nobodyさん
2005/12/09(金) 18:30:08ID:???特殊な法則みたいなの覚えないと駄目みたい・・・。
取り合えずはexploadで分解してチェックする事にしますorz
0621nobodyさん
2005/12/09(金) 18:42:56ID:JUWxzeIo画像のサイズは指定し縮小はできますが、画像の容量を指定し
縮小する方法はありませんでしょうか?
50KB 横240 縦180
↓
10KB 横* 縦*
0622nobodyさん
2005/12/09(金) 18:43:28ID:???0624nobodyさん
2005/12/09(金) 22:18:50ID:???ご存知の方やり方を教えて頂けると幸いです。
0627nobodyさん
2005/12/09(金) 22:24:52ID:???0629nobodyさん
2005/12/09(金) 22:42:42ID:???既にボタンを設置した後だと駄目なんですかねぇ・・・。
0630nobodyさん
2005/12/09(金) 22:45:31ID:???0631nobodyさん
2005/12/09(金) 22:58:44ID:???意味不明な事言ってたらすみませんm(._.)m
0633nobodyさん
2005/12/09(金) 23:46:12ID:???ありがとうございます!
0634nobodyさん
2005/12/10(土) 00:39:08ID:???0635nobodyさん
2005/12/10(土) 01:46:07ID:???判定してます。
[login.php]
ini_set('session.gc_maxlifetime', "3600");
session_start();
$_SESSION["lid"] = $hogehoge;
header("Location: index.php");
[各ページ]
ini_set("session.gc_maxlifetime", "3600");
session_start();
if (!isset($_SESSION["lid"])){
header("Location: login.php");
}
gc起動して掃除→login.phpへリダイレクトされるまで 3600秒のハズですが、
なぜかデフォルトの1440秒でセッションが切れ、login.phpへリダイレクトしてしまいます。
session.gc_maxlifetimeの内容をdumpしてみたのですが、ローカルでは3600に
なっているようです。
共用サーバーなのでphp.iniの直接変更はできません。
どうにも原因がつかめません。
解決の糸口はありますでしょうか…
0636nobodyさん
2005/12/10(土) 03:30:32ID:???連鯖だとセッションを同じところに保存するかもしれないので無理かも
phpinfoでsession.save_path見てみれ。/tmpなんぞになってると他人に
GCされてる可能性蟻
.htaccessでphp_valueが設定できるならsession.save_pathを指定するか
session_save_path()して変更して確認してみれ
0638nobodyさん
2005/12/10(土) 12:03:17ID:A5Y35bGz(例えば生徒の点数を入力すると点数の分布の折れ線グラフが出るとか)
イメージを表示するファイルの変数をdefineとかで記して、
直接ファイルを書き換える以外に方法はありますか?
できたらファイルを弄らずに関数みたいに出来たらと思うんですが。
0640nobodyさん
2005/12/10(土) 12:28:52ID:???症状:
GDやMb_Stringなど追加モジュールが、Apacheから php5apache2.dllモジュール経由だとロードできてないが、
同じスクリプトを、コマンドラインから php.exeで実行すると追加モジュールのロードはできる。
環境: Apache 2.0.55 + PHP 5.1.1および5.1.2-dev
※httpd.conf
LoadModule php5_module D:\php\php5apache2.dll
AddType application/x-httpd-php .php
※php.ini #php.ini-distからの変更点
magic_quotes_gpc = Off
extension_dir = "D:/php/ext"
upload_tmp_dir = "C:/tmp"
extension=php_exif.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mbstring.dll
Linuxで自分でビルドする方が楽だと思う今日この頃。
0643nobodyさん
2005/12/10(土) 12:45:10ID:???さんくす、ビンゴだった。
Win版は、C:\WinNT に php.ini 置かないといけないのね…。
Linux, Unixでしか環境作ったことないから、php.ini は、
インストールディレクトリで良いとばっかり思ってたよ。
0644nobodyさん
2005/12/10(土) 13:01:37ID:???俺はいちいちコピーするのがめんどくさいので
httpd.confに
PHPIniDir "C:\php5.1"
と書いてる
0645nobodyさん
2005/12/10(土) 13:02:21ID:9PXirItw仕事で見せられた規約には「なるべく参照渡しを使え、理由は値渡しよりパフォーマンスがあがるから」ということです。
理由付けはどうでもいいのですが、既存の他の人のコードを見ると参照渡しの実際の書き方についていくつか方法があるようで私なりに意味を考えたのですがおかしいところがあればつっこんで欲しいのです
1番 $obj = &new Object();
$objには(どこかに実体が存在している名前無しのnew Object()の)参照が入る
2番 function &getValue() { return $obj;}
$objは実体(インスタンス)だが $retObj = getValue();で取得した$retObjは$objの参照となる
3番 function &getValue(){}を呼び出すとき
$retObj = &getValue();
$retObj = getValue();
のどちらでも変わらない 両方とも結果の参照が入る(2番と同じ状態になる)
4番 function getValue(){}を呼び出すとき
$retObj = &getValue(); は結果の参照が入る(2番と同じ状態になる)
$retObj = getValue(); は結果のコピーが入る
5番 $strVal1 = &$strVal2; 参照が入る?
6番 function setValue(&$strVal){$this->val=$strVal} 5番と同じ状態になる?
7番 function setValue(&$strVal){$this->val=$strVal} となっている状態で
$strMyVal = "abc"; setValue($strMyVal); とやると、$strMyValの参照が自動的に渡される
8番 上記7番の状態で setValue(&$strMyVal); を呼び出すと・・・?どうなる?
0646645
2005/12/10(土) 13:06:23ID:9PXirItw関数の引数はdefineで定義したものも入れたいこともあるでしょうから
すべて function setValue($strValu)と&無しで書いて
呼び出し元の方で参照を渡すのか参照を取得のか↓したほうが混乱しないと思うんですが・・・
// 呼び出し
setValue(&$strTest);
// 取得
$strVal = &getValue();
0648nobodyさん
2005/12/10(土) 13:51:16ID:???call_time_pass_reference はそのうちサポートされなくなるらしいよ。
その呼び出し時に参照を渡すって奴ね。
0650638
2005/12/10(土) 14:40:59ID:???やー、何かファイル作ったりとか怖いんで。
初心者につきビビリーです。
>>641
便利そうなのかな。ちょっと試してみますね。
0651nobodyさん
2005/12/10(土) 15:49:35ID:???1番参照
2番はコピー
3番は上は参照、下はコピー
4番どちらもコピー
5番参照
6番コピー
7番コピー
8番コピー
マニュアルにある通り、参照を受け取っても=演算子を使えばコピーされる
>>646はphp4で書くなら悪くない選択
ちなみに「リファレンスが高パフォーマンス」はよくあるガイセビア
これが正しいのはメソッド内でパラメータを「書き換える」場合のみ
その他の場合ではコピーオンライトなPHPでは参照を使ったほうが
遅いしメモリ喰い
参照で受けたパラメータをコピーすると(6番のケース)値コピーで
渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
ありがち
駄目なコーディング規約を嘆きつつ、次のプロジェクトでは規約の
改定に挑みましょう
0653nobodyさん
2005/12/10(土) 16:17:13ID:???setValue($strVal) {
$this->val =& $strVal;
}
}
$obj->setValue($strMyVal); or $obj->setValue(MY_CONST);
まあ実行コストの話は置いておいて、関数がなぜデフォルトで
値渡しなのか小一時間考えたほうがいいかもね。
0654645
2005/12/10(土) 16:19:23ID:???ありがとうございます
>参照で受けたパラメータをコピーすると(6番のケース)値コピーで
>渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
>ありがち
あーなんか始めたばっかりのころ、
ぜんぜん画面が出ないなぁと思って 「&」 消したら直ったことがあったのですが
そういう理由だったんですねぇ
そのときから、「&」に対して避けて通ってきた
関数に渡すときに、その値を関数内で変更する必要があるとき以外は普通に書いておいたほうがよいのでしょうかね?
0655nobodyさん
2005/12/10(土) 16:36:01ID:???http://php.net/manual/ja/language.oop.newref.php
> 逆に多くの場合、参照を使うよりも単純にコピーを使った方が良い結果となります
破壊的関数はデバッグしにくい原因になるし、パフォーマンスの
改善が見込まれる部分だけ参照に変更するのが一般的だと思う
基本的に参照を使うのはオブジェクトの受け渡しのみ
ただしコーディング規約がある以上そっちが優先だけどね
0656nobodyさん
2005/12/10(土) 16:48:52ID:???(例:「1 2 3」を$a=1,$b=2,$c=3といった具合)
半角スペースが区切り文字だと何か不安です。
環境によっては上手く動作しないような。杞憂でしょうか?
0657nobodyさん
2005/12/10(土) 16:49:21ID:vDRN2V5dここのログイン、解説通りに設定したけど。ログインしようとすると、ソースが表示されてしまうん
だけど。原因なんだろ。?
■ このスレッドは過去ログ倉庫に格納されています