【php】part29【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/07/06(水) 09:57:54ID:0DucnAyH・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り
前スレでは、尾張の方でお世話になりました。
原因は唯のファイル名間違いでした。ダッセー俺OTZ
003931
2005/07/13(水) 18:21:45ID:Nyo2L72Xやってみました。
-------------------------------------------------------
$rs = mysql_query("SELECT * FROM hoge");
while( $rec = mysql_fetch_array($rs, MYSQL_ASSOC)){
print $rec{'項目名'};
}
↓
$rs = mysql_query("SELECT * FROM hoge");
$rec = array(mysql_fetch_assoc($rs));
// 1個目
$nCnt = 0;
while($nCnt < 10){
print $rec[$nCnt]{'項目名'};
$nCnt++;
}
// 2個目
$nCnt = 0;
while($rec){
print $rec[$nCnt]{'項目名'};
print $rec[$nCnt]{'項目名'};
}
-------------------------------------------------------
とりあえず、1個目のみ表示させようと思ったのですが、配列1番目のデータしか表示されません。
$nCntを表示させてみたのですが、ループはきちんとしているようです。
多分、ループ前の部分がおかしいとは思うのですが…。そもそもarrayの使い方あってるのでしょうか?
0040nobodyさん
2005/07/13(水) 18:45:43ID:???$rs = mysql_query("SELECT * FROM hoge");
$rec = array();
$nCnt = 0;
while( $rec[$nCnt] = mysql_fetch_array($rs, MYSQL_ASSOC)){
?print $rec[$nCnt]['項目名'];
}
$nCnt = 0;
while(isset($rec[$nCnt])){
?print $rec[$nCnt]['項目名'];
}
こういうことじゃ?
0042nobodyさん
2005/07/13(水) 18:55:25ID:???状況としてはアップロードした結果
$_FILES['XXX']['name'] : クライアントのファイル名
$_FILES['XXX']['type'] : null
$_FILES['XXX']['size'] : 0
$_FILES['XXX']['tmp_name'] : null
$_FILES['XXX']['error'] : 6
となるのですが・・・
神さま何か考えられる原因を教えてください。
Linux+Apache2.0.54+PHP5.0.6(mod_php)
0043nobodyさん
2005/07/13(水) 19:08:28ID:???0044nobodyさん
2005/07/13(水) 20:55:10ID:???0047nobodyさん
2005/07/14(木) 06:53:29ID:???while( $rec[] = mysql_fetch_array($rs, MYSQL_ASSOC)){
これでキーが自動的にインクリされる
0048nobodyさん
2005/07/14(木) 12:46:26ID:SdE/T/Mcphp 5.0.4
zlib-1.2.1.2-2.fc3
./configure で --with-zlib-dir=/usr/lib/
libz が見つからないとおこられます。
$ which libz
/usr/lib/libz.so.1
/usr/lib/libz.so.1.2.1.2
php4のインストール時にはでないのですが、どうすればいいんでしょうか?
0052nobodyさん
2005/07/14(木) 13:46:38ID:SdE/T/Mcありがとうございます。
解決しました。
だめだったとき
zlib-devel 入れて
--with-zlib はずして
--with-zlib-dir=/usr/lib/libz
で解決しました。
ひっかかっていたのは ZLIBサポートなしで GDのpngサポートをやりたかったのですが、
--with-zlibはつけずに通りました。
0054nobodyさん
2005/07/14(木) 13:52:45ID:???zlibフォーマットで圧縮する画像形式だと思ってたけど。
0055nobodyさん
2005/07/14(木) 14:15:44ID:j5wQR+Ydimap_fetchbodyでデータは取得できるのですが、ファイル名もしくは拡張子がわからないとコピーできなくて困っています。
005631
2005/07/14(木) 14:30:26ID:???表示件数を指定したい時は、for文もしくはwhile内でIf文なんですよね?
今はfor文でやってます。
PHP+MySQLは初めてなのですが、
ネットで調べても中々いいサイトがないです。(本家が一番?)
困ったらここで聞けばいいなんて甘えが出てきそうなので、
何かおすすめの本があったら教えてください
m(__)m
005748=52=53
2005/07/14(木) 17:14:23ID:???zlib有効にするのと、GDのpngでlibz使うのとは別物かと思っとりました。
( configure で --with-zlibつけずにやると zlib support = no みたいに出てきたようなので)
んでも いま phpinfo見ると 確かに zlibも有効になってました。
./configure がなんなのか意味もよくわかってなかったりすんですが(;・∀・)
また勉強しときます
0058nobodyさん
2005/07/14(木) 19:29:17ID:???$_REQUEST['get']で書いているのだけど
何か不都合ある?
0059nobodyさん
2005/07/14(木) 19:33:57ID:???悪意のあるなしに関わらず、
クライアントが送ってきた Cookie などに
上書きされる可能性があるため
$_GET を使えばいらなかった心配をするハメになって確認の処理が面倒。
あまりスマートとは思わんな。
0060nobodyさん
2005/07/14(木) 20:39:43ID:???�dクス
呼び出し元ページでPOSTにしたいときに楽かなー、とか思ったが
果たしてそんなケースがあるのか疑問になってきた
そもそも何のためにあるんだろ>$_REQUEST
0061nobodyさん
2005/07/14(木) 21:04:55ID:SdE/T/Mcぐぐっても 早くなると書いてあるくらいで、
短所などが書かれてなくて逆に不安なんですが
使うことでマイナスになる点ってありますか?
0062nobodyさん
2005/07/15(金) 00:29:12ID:???別に$_REQUESTでも問題がないと思うんだけど。
必ず、受け取ったパラメータの値に不正なデータが入っていないかチェックしていれば。
006331
2005/07/15(金) 01:55:51ID:OBw0hLoz今までの応用だと思うのですが、
$rs = mysql_query("SELECT * FROM hoge");
$rec = array();
for($nCnt=0; $nCnt<$pageCnt; $nCnt++ ){
$rec[$nCnt] = mysql_fetch_array($rs, MYSQL_ASSOC);
print $rec[$nCnt]['項目名'];
}
とし、$page_Cnt=10で、10件表示にさせました。
10件以上ある場合は、次ページへ移動させるのですが、
その場合は、配列を10番目〜19番目で表示させようと思ったのですが、うまく行きません。
上のプログラムを少し変更し、次ページに行った時には
$nCntは、10〜19と増えていくことを確認しました。
でも、表示されるデータは0〜9番目のデータを、
1ページ目と何も変わらないのです。
どうすれば、次ページには途中からの配列のデータを表示できるのでしょうか。
0065nobodyさん
2005/07/15(金) 06:55:03ID:???$rs = mysql_query("SELECT * FROM hoge");
$rec = array();
while($rec[] = mysql_fetch_array($rs, MYSQL_ASSOC)) ;
for($nCnt=0; $nCnt<$pageCnt; $nCnt++ ){
print $rec[$nCnt]['項目名'];
}
$start = 10;
$pageCnt= 10;
$rs = mysql_query("SELECT * FROM hoge");
mysql_data_seek($rs, $start);
$rec = array();
for($nCnt=$start; $nCnt<$start+$pageCnt; $nCnt++ ){
$rec[$nCnt] = mysql_fetch_array($rs, MYSQL_ASSOC);
print $rec[$nCnt]['項目名'];
}
0066nobodyさん
2005/07/15(金) 11:51:15ID:???初歩的な質問ですみませんが、$_REQUESTの不正なデータっていうのは具体的にどういうデータの事なんでしょうか?
POSTやGETでも、HTMLタグや\や"などを処理しますが、それとは別に$_REQUESTで送られてくる特有の不正なデータがあるんでしょうか?
0068nobodyさん
2005/07/15(金) 12:10:19ID:???$_REQUEST['get']には$_GET['get'] $_POST['get'] $_COOKIE['get'] ($_FILE['get'] PHP4.3未満)
のどれで上書きされてるかわからなくなるなる可能性がない事もないということやろ
0070nobodyさん
2005/07/15(金) 12:55:17ID:???では、「mode=nantoka(処理分岐用のパラメータ)」みたいに、GETでもPOSTでもどっでも良い場合は、$_REQUESTった方がいいのかにゃ?
0071nobodyさん
2005/07/15(金) 13:03:54ID:NQKXwLdK全然、分かってないだろ。
0072nobodyさん
2005/07/15(金) 13:33:01ID:???0073nobodyさん
2005/07/15(金) 13:40:22ID:???cookieに上書きされて気づかずにハマっていても自己責任だし。
俺も、_REQUEST使ってOKと判断したら、結構使っているし。
0074nobodyさん
2005/07/15(金) 16:37:15ID:???$GLOBAL['form']['〜']
0075nobodyさん
2005/07/15(金) 16:47:27ID:???使ってる人教えて。
いや、Mojavi導入したらもはや関係ないんだけどさ・・・。
0076nobodyさん
2005/07/15(金) 18:00:51ID:SL/muoKmひょっとして再帰的に
ファイル消す->フォルダ消す
という作業をを繰り返さないといけないのですかね?
rmdir()は指定ディレクトリ内にファイルが存在すると
エラーになってしまう。
007773
2005/07/15(金) 18:07:25ID:???便利というか、GPCを見分ける必要があるのなら、
それなりのリクエスト処理クラスを用意するし。
逆に言うと、$_GETとか$_POSTはリクエスト処理クラス以外では使わない。
処理クラスを用意するまでも無いのなら、$_REQUESTで十分てな感じか。
もちろん、例外も有りますが。
0079nobodyさん
2005/07/15(金) 18:13:06ID:???正解。
自分で作るか、>>78のように再帰的に消すコマンドを使うか、pear辺りに転がってる誰かが作ったものを使うか。
0080nobodyさん
2005/07/15(金) 19:16:49ID:???この間それ作っていてふと思ったんだけど、運用ではなくもしスクリプトを作ってる途中に
うっかりミスとかして、ローカルのルートから全部ファイルが消えてしまった!!
とかやった奴おる?
0084nobodyさん
2005/07/16(土) 09:54:26ID:???昔のスクリプトをいじったりするときに新しくクッキーを追加したらバグったとか
可能性があるってことで実例はないと思う
0085nobodyさん
2005/07/16(土) 10:02:31ID:???0086nobodyさん
2005/07/16(土) 13:32:38ID:???ぼきはWindowsにApache入れてるんだけど。
0087nobodyさん
2005/07/16(土) 13:45:57ID:???0088nobodyさん
2005/07/16(土) 13:47:49ID:???0090nobodyさん
2005/07/16(土) 16:46:07ID:???0091nobodyさん
2005/07/16(土) 17:17:02ID:???変数付きのURL(http://hoge.com/test.php?id=a&dr=tn)から
変数のidとdrの値を取得したいんですが、
下記のようにやってもうまくいきません。
どなた様かご教示お願いします。(URLは$urlとしています)
$u = parse_url($url);
$query = $u["query"];
$id = $query["id"];
$dr = $query["dr"];
echo "ID:$id";
echo "DR:$dr";
0092nobodyさん
2005/07/16(土) 17:24:29ID:???$id = $_GET['id'];
$dr = $_GET['dr'];
0093nobodyさん
2005/07/16(土) 17:44:36ID:???PHPのわかりやすさは拍子抜けするほど。
0094nobodyさん
2005/07/16(土) 17:55:11ID:???の resource ってセッションに入れたり出したりしても良いのですか?
0095nobodyさん
2005/07/16(土) 18:00:12ID:???一番最初に $url = 'http://hoge.com/test.php?id=a&dr=tn'; というのがあって、
それをパースしたいってことだろうねぇ。
$query を parse_str() に突っ込めばよいかと。
0098nobodyさん
2005/07/18(月) 15:20:42ID:igP0jwKzメーカーの仕様によらず、各社共通して
・F値
・シャッター速度
・露出補正
・ISO感度
・焦点距離(35mm換算)
・露出モード
・撮影日時
情報を抽出するにはどういうパラメーターを指定して探索すればいいでしょうか?
0099nobodyさん
2005/07/18(月) 17:26:51ID:???つ[ttp://jp2.php.net/manual/ja/function.exif-read-data.php]
0100nobodyさん
2005/07/18(月) 19:05:50ID:???どの関数を使えば良いでしょうか?教えてください。
010198
2005/07/18(月) 19:33:41ID:???exif_read_data関数ですね。
私もそれを使おうと思っているのですがsectionsの中が
さらに区分けされているらしく(配列の配列?)、
どのパラメータを指定すればいいのかまでは
分かりませんでした。
配列を表示させてみたこともあるのですが似たような
名前のパラメータが重複して登場してたりして
各社共通のパラメータがどれなのかという情報も
分かりませんでした。
0103nobodyさん
2005/07/19(火) 02:57:47ID:???ブラウザに出力させる時、直接バイナリデータを出力する場合、「echo」でいいのでしょうか?
DL等は普通に出来、ファイルも壊れては居ないんですが、元のファイルとMD5が一致しなくて悩んでいます。
同じデータをファイルに出力した場合、MD5が一致するので、ブラウザに出力した時に
なにか余計なものが混じっているんだと思います。
原因がわかる方いたらご指南ください。
0104nobodyさん
2005/07/19(火) 03:03:55ID:???ごめんなさい!
010598
2005/07/19(火) 23:03:38ID:???PHPのexif_read_data()に対応していない気が・・・
読んでる最中にプログラムが固まってそれ以降が表示されなく
なってしまいます。
直接バイトを指定して値を読み込ませないとダメですかね?
010798
2005/07/20(水) 12:37:22ID:???ttp://aki.adam.ne.jp/
ここのDezi Boardにexifを読む関数を自作されてる人がいました。
0109質問
2005/07/20(水) 22:56:51ID:???■■■■■■■
■■■■■■■
■■□□□□□
■■□□□□□
■■□□□□□
■■□□□□□
■■□□□□□
■■□□□□□
■■■■■■■
■■■■■■■
↑のようなレイアウトのホームページを作りたいと思います。
全体はHTMLで構成されていますが、
□はxxxx.phpで表示します。
□は固定では無く、縦方向に長くなったり短くなったりします。
それを実行しようと □の部分に
<!--#include virtual="xxxx.php" -->
と書いたのですがうまくいきませんでした。
以上の事を実行するにはどのようにしたら良いのでしょうか?
0110nobodyさん
2005/07/20(水) 23:03:33ID:???先にHTMLの勉強して来い
0111nobodyさん
2005/07/21(木) 00:58:56ID:zkn/ba81「うまくいかなかった」
とはどのようにうまくいかなかったのかを具体的に書かないと何も分からない。
そもそも virtual には対応してるの?
virtual が使えない設定の鯖も結構あるが。
0112nobodyさん
2005/07/21(木) 12:48:51ID:2O2ppr6p-------------
<html>
<body>
〜HTML記述〜
<?php
〜phpプログラム(100行くらい)〜
?>
</body>
</html>
-------------
これを、下のように1つはHTML、もう1つはPHPプログラムの2つのプログラムに分けようと思います。
-------------
---(index.php)---
<html>
<body>
〜HTML記述〜
<?php
〜hoge.php読み込み(なるべく短く)〜
?>
</body>
</html>
-------------
---(hoge.php)---
<?php
〜phpプログラム(100行くらい)〜
?>
-------------
〜hoge.php読み込み(なるべく短く)〜の部分にはどのような記述をすればよいでしょうか。
またその際に(hoge.php)を書き換える必要はあるのでしょうか。
0113nobodyさん
2005/07/21(木) 13:11:29ID:QJOhteRKincludeで調べてみ
0115112
2005/07/21(木) 15:15:30ID:2O2ppr6p<?php include 'hoge.php'; ?>
と書くことでうまくいきました。ありがとうございました。
追加で質問で申し訳ないのですが、112のindex.phpの拡張子をindex.htmlにした場合は、どのようにしたら良いでしょうか?
0120nobodyさん
2005/07/21(木) 23:57:28ID:OPf2mV1L�@九九表
�A2次方程式の解 ax2+bx+c=0
0121nobodyさん
2005/07/22(金) 00:09:46ID:???えーっ!?
for ($i = 1; $i <= 9; $i ++)
{
for ($j = 1; $j <= 9; $j ++)
printf("%3d", $i * $j);
echo "\n";
}
$d = $b * $b - 4 * $a * $c;
if ($d == 0)
echo -$b / (2 * $a), "\n";
else if ($d > 0)
echo (-$b + sqrt($d)) / (2 * $a), ", ", (-$b - sqrt($d)) / (2 * $a), "\n";
else
echo "解なし\n";
0122nobodyさん
2005/07/22(金) 00:50:13ID:1VklDg1R0123nobodyさん
2005/07/22(金) 00:56:19ID:ubHtE5eN例) $temp[0x010f] = 1
この配列をechoで表示させようとして
echo "temp[0x010f]";
とやったんですがうまく表示されませんでした。
キーの16進数を10進数に変換すれば
echo "temp[271]"; //10fの10進数表記は271
正常に表示されました。
なんとかキーは16進数のままechoで表示させることはできないでしょうか?
0124nobodyさん
2005/07/22(金) 00:57:18ID:1VklDg1Rおねげーします。
0125nobodyさん
2005/07/22(金) 01:03:41ID:???0126nobodyさん
2005/07/22(金) 01:05:41ID:1VklDg1R0127nobodyさん
2005/07/22(金) 01:10:58ID:???えーっ!?
<pre>
<form action="<?=$_SERVER['PHP_SELF']?>" method="GET">
a = <input type="text" name="a" value="<?=@$_GET['a']?>">
b = <input type="text" name="b" value="<?=@$_GET['b']?>">
c = <input type="text" name="c" value="<?=@$_GET['c']?>">
<input type="submit" value="OK">
</form>
<?php
if (isset($_GET['a']) && isset($_GET['b']) && isset($_GET['c']))
{
$a = $_GET['a']; $b = $_GET['b']; $c = $_GET['c'];
$d = $b * $b - 4 * $a * $c;
if ($d == 0)
echo -$b / (2 * $a), "\n";
else if ($d > 0)
echo (-$b + sqrt($d)) / (2 * $a), ", ", (-$b - sqrt($d)) / (2 * $a), "\n";
else
echo "解なし\n";
}
?>
</pre>
0128123
2005/07/22(金) 01:12:46ID:???echo "{$temp[0x10f]}"
のように{}で囲ったら正常に表示されました。
(´-`).。oO(なんでだろう・・・)
0129nobodyさん
2005/07/22(金) 01:17:26ID:1VklDg1R0131nobodyさん
2005/07/22(金) 01:24:26ID:???>123だと配列に”$”ついてないからじゃないの?
echo "temp[0x010f]";
echo "temp[271]";
0134131
2005/07/22(金) 01:55:28ID:???言語仕様はわからないけど、>123の書き方($をつけて)だと連想配列とみなされてるみたい。
あと配列自体を引用符で囲まないと期待する値が出力された。
$temp[0x010f] = 1 ;
$temp["0x010f"] = 9 ;
echo "$temp[0x010f]"."\n"; # 9 を出力
echo $temp[0x010f] ."\n"; # 1を出力
0135nobodyさん
2005/07/22(金) 02:02:00ID:???PHPの配列は全て連想配列ですよ。
で、配列のキーは型(int, stringなど)を区別するので、
0x010fと"0x010f"は別のキーとして扱われます。
これは、$temp[0]と$temp["0"]とかでも同様。
0137nobodyさん
2005/07/22(金) 02:12:14ID:???>PHPの配列は全て連想配列ですよ。
ここは合ってると思うけど、
>で、配列のキーは型(int, stringなど)を区別するので、
>0x010fと"0x010f"は別のキーとして扱われます。
これは、>>136が正解じゃないかな。
0138nobodyさん
2005/07/22(金) 13:19:17ID:???ttp://ilia.ws/archives/58-Path-Disclosure-and-PHP.html
$_GETをhtmlspecialcharsしている人はご注意を。
Fixされるまでしばらくの間
display_errors = Off
は必須かな?
■ このスレッドは過去ログ倉庫に格納されています