【PHP】初心者コーナー 3 Released【スローモード】
3 :
nobodyさん:03/06/11 06:27 ID:kzWk23HI
よっしゃ、3ゲット
う・ん・こ♪
4 げっちゅー
うんこかぶった
7 :
nobodyさん:03/06/11 13:44 ID:lWApjllN
phpでmysqlのテーブルの削除・コピーをおこなう命令を教えてください。
MySQLのマニュアルの見にくさは異常
クラスに詳しいサイトないですかね?
英語でもいいんで・・
どなたかタノム
>9
確かに(見難さには)同意するが、それはPHPのマニュアルに
慣れすぎてる部分が多分にあるからかと。
あとmysql.comの方は結構使えるで。
12 :
nobodyさん:03/06/12 23:40 ID:FX+eijnO
質問です。
ttp://www.komonet.ne.jp/script/f_mail2/komomail.htm ttp://www.komonet.ne.jp/script/f_mail2/komomail.phps(PHPソース)
上記のメールフォームを改造してチェックボックスを配置したいのですが、
HTML側のソースは、
<input type="checkbox" name="abc[]" value="hoge01">hoge01
<input type="checkbox" name="abc[]" value="hoge02">hoge02
<input type="checkbox" name="abc[]" value="hoge03">hoge03
<input type="checkbox" name="abc[]" value="hoge04">hoge04
を追加し、PHP側のソースに
for( $i=0; $i<count($abc); $i++ ) {
print $abc[$i] . "<br>\n";
}
print "<input type=\"hidden\" name=\"sabc\" value=\"$abc\">\n";
を追加しまして動作させたところ、
確認ページでは正常に表示されたのですが、ソースを見ると
<input type="hidden" name="sabc" value="Array">
とvalueの値がどのチェックボックスを選択しても「Array」になってしまい、
このまま送信してもメールにも「Array」と表示されてしまいました。
この「Array」の部分を「hoge01」「hoge01,hoge04」
のように表示させるにはどうすればよいのでしょうか。
宜しくお願いします。
PHPソースみじけ
value=\"$abc\"ここはArayだかだ$abc[$i]だとおもうど、
14 :
12:03/06/13 00:20 ID:???
>>13 それも試してみたのですが、
value=""
となり、何も表示されなくなってしまいました…
書き忘れましたが、
function SendMessage()内には
globalに $sabc を、それと
$msg .= "選択肢 = $sabc\n";
を追加してあります
書いたものをみせないのかい?
for( ) {
}
print "value=\"$abc\">\n";
こうなってるから。
17 :
12:03/06/13 01:19 ID:???
まず配列を$abcなんて呼び出すのがおかしい
必ずインデックスをつけて呼び出さなければならない。($abe[$i])
あなたのソースの一番下の行を$abc[$i]としても
$iのなかに何も値が入っていないので、
おかしなことになります。
ちゃんと$iのなかに数字を入れましょう
19 :
16:03/06/13 01:52 ID:???
読み間違えてた。スマソ。
> この「Array」の部分を「hoge01」「hoge01,hoge04」
ってことなら、
value=\"".implode(",",$abc)."\" みたいにして、
配列を文字列に変換しなきゃいけない。
20 :
12:03/06/13 02:19 ID:???
>>18 インデックスというのは
$abc[0] = hoge01
$abc[1] = hoge02
$abc[2] = hoge03
$abc[3] = hoge04
というやつですよね?
>>19 おぉ!出来ました!implode…配列要素を文字列により連結する、
というヤツですね?これで全ての問題が解消されました。
>>13さん、
>>15さん、
>>16=
>>19さん、
>>18さん、
どうも有難うございました。
PHP勉強し始めてまだ日が浅いのですがもっと努力します。
$abc = array("さる","いぬ","ひつじ","うま","じゃこうねこ");
for($i=0;$i<count($abc);$i++){
print "<input type='checkbox' name='sabc' value='".$abc[$i]."'>".$abc[$i]."<br>\n";
}
こういうことなのか? PHP初心者なのか?
あでで
23 :
nobodyさん:03/06/14 00:13 ID:oYY8Bt5l
$hensu が a か b か c か d か
と言うのを書きたいんですけどうまく出来ません。
どうやったらいいんでしょうか。
ちなみに下記のように書きました。
$hensu = a;
if($hensu == (a||b||c||d)){
echo "あってます";
} else {
echo "違います";
}
>>23 $hoge = array("a","b","c","d");
if (in_array($hoge,$hensu)) {
echo "あってます";
} else {
echo "違います";
}
>23
if ($hensu == 'a' || $hensu == 'b' || ...) {
yes;
} else {
no;
}
if (preg_match("/^[a-d]$/", $hensu)) {
yes;
} else {
no;
}
>>24 >>25 ちゃんと動かせました。
ありがとうございます。
勉強になりました。
27 :
nobodyさん:03/06/14 08:37 ID:p4ucyWfS
リンクをクリックするたびに違うページへ飛ばしたいんですが
srand((double)microtime()*1000000);
$link=round(rand(1,5));
echo"<a href=\"
http://www.*****.com/php?id=$link>リンク</a>\"";
これだとページをリロードしなければリンク先が変わりません
どうやったらいいんでしょうか?
あぼーん
>>27 リロードせずにリンク先を変える方法があれば俺も知りたい。
JavaScriptでもつかったら?
>>32 JavaScriptでやってみたんですが携帯からアクセスすると機種によっては表示できない物があったので
1ページ目 : リンクページ
2ページ目 : rand()でジャンプ先を決めてheader(Location:)で実際にジャンプ
1ページ目のリンク文字(<a>〜</a>の間の文字)は固定になるけど、どう?
>srand((double)microtime()*1000000);
最近のバージョンだと不要だよ。
配列、というかimplodeを多用するとブラウザが落ちる、なんてこと無いですよね?
>>12を真似て更にチェックを増やした(チェック項目じゃなくて種類)ら
途中まで表示されて止まっちゃった(応答無し)んですけど
なぜ12を真似るのか?
>>37 解決しますた
HTMLの書き方がおかしかったみたいです
>>38 前からメール送信フォームのスクリプトを探してたんですけど
チェックボックス付きのって不思議なくらい少ないんですよ
ラジオボタン付きのは多いのに。
こんなCGI探してますスレで聞こうと思っていた時に
12でそういう話題が出てたんでこりゃ僥倖、というわけです
ファイル編集で質問なのですが、
ファイルのn行目だけを消去というような処理は
どうすれば良いのでしょうか。
forとかで回して、
n行目だけ飛ばすとか?
>>41 edが入ってれば・・・
ed {ファイル名} <<EOT
行数d
wq
EOT
こんな感じのことをやらせると簡単?
# 複数行あるときは、行数は大きい順にdコマンドせいよ!
言ってることがわからないときは無視していいよ・・・
45 :
nobodyさん:03/06/16 23:50 ID:ULUKCUBQ
[[ と ]] でかこまれている文字列を抽出する正規表現を教えていただけませんか。
対象文字列が1つだけならば問題はないのですが、
複数ある場合に正しく認識しないのです。
>>41 オーソドックスに1行ごとファイルを読んで、対象行について処理。
消して詰めるんだったらスキップすれば良いし、
空行にしたいなら空行に入れ替えればよい。
処理用のテンポラリは配列を使ってメモリー上でやってもいいし、
PHPの一時作業ファイルの機能を使っても良い。別ファイルに吐くなら
直接そこに書き込んだ方が二度手間にはならないけど。
つかもちぃと、自分のやりたいことを具体的に書けるように汁。
>>45 /\[\[[^(\]\])]*\]\]/
48 :
nobodyさん:03/06/17 03:07 ID:jU4Lgx5s
>>47 $content=ereg_replace("(\[\[[^(\]\])]*\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
こうしてみたのですが、うまく動きません。
どうしたらよいのでしょう。
最初は
$content=ereg_replace("(\[\[.+\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
でした。
preg_replaceじゃないの?
あぼーん
>正しく認識しないのです
>うまく動きません。
これだけじゃね。
PHPってVBみたいなツールないですか?
>>53 意外と安いですね。20まんくらいするのかと思ってたYO!
55 :
nobodyさん:03/06/17 23:07 ID:0jiXtget
ディレクトリのサイズを取得するいい方法はありますか。
ディレクトリの中のファイル一個づつ足していかないとだめなんでしょうか。
58 :
nobodyさん:03/06/18 00:59 ID:z2IuQj0n
PHPで画像をUPしたいんですがサーバ側で
画像の大きさを判別できるのでしょうか?
200×300とか
調べたんですけど関数がないような
ということはC言語で関数を作る?
だれかわかりませんか?
ほんとに調べたのかよこの知障
>>60 やさしいのか、やさしくないのか「RTFM」なんて。。。
やさすい
63 :
nobodyさん:03/06/18 01:57 ID:ozrEi3ht
60>>さん
ありがとうございました
59>>
回線切って首を吊れ
65 :
nobodyさん:03/06/18 11:17 ID:Y4tmU7Uq
>>64氏が釣られている気がしないでもない今日この頃ですが、
皆様におかれましては、いかがお過ごしでしょうか?
と、まぁ〜、んな事はどーでもいいので、質問させて下さい。
配列の中の要素の数を取得する事って出来ますか?
$hoge[0] = hoge0
$hoge[1] = hoge1
$hoge[2] = hoge2
って、配列があるとしたら、全部で3つじゃないですか?
その3ってのを取得したいんです。
あぼーん
68 :
65:03/06/18 11:40 ID:???
【自己解決】
count() ってゆー便利な関数があるんですね。
>>66氏の気分を害してしまい、ずびばぜんでじだ(T_T)
国際化されていないphpで日本語扱う方法ってありますか?
JCode.php見つけたんですけどいまいち上手く動作しないのです。
扱う、と言っても扱い方はいっぱいある
72 :
70:03/06/18 18:38 ID:???
送られてきたデータの文字コードをEUCに統一してmySQLに保存するんです。
要は、普通の掲示板などで行われている処理なのですが。
>>72 じゃあ、普通にjcode.phpつかえば。
jcode.phpだけど、
>JCode.php見つけたんですけどいまいち上手く動作しないのです。
こういう書き方するとバカかと思われるよ。
75 :
65:03/06/19 03:14 ID:2RPLMQCv
>>66氏、
>>73氏 レスどうもです。
別の質問なのですが、
title1,value1
title2,value2
title3,value3
というcsvファイルを、file()で読み込んで $lines に格納した後、
列ごとの要素を配列に入れたいのですが、
list($title,$value)=explode(",",$lines[$i]);
と、やったら上手くいきません。
マニュアル読むとlist()は、「配列と同様の形式で、複数の変数への代入を行います」
と、あるので上記だと $title や $value は変数で配列ではないという事ですよね?
列ごとの要素を配列として扱うには、どうすればよいでしょうか?
76 :
70:03/06/19 03:27 ID:???
>>74 jcode.phpで文字コードを自動認識させると認識を誤ることがあるのです。
回避する方法はありますか?
自動だかだ。
なんでeuc指定しないの?
78 :
70:03/06/19 04:01 ID:???
変換後はeucにするんです。
ただ、ブラウザが送出する文字列は指定できないこともありますので、
変換前文字列を自動認識にしているんです。
すると、ときどき化けることがあるわけで。
なるね。 ときどき化けるファイルのエンコードはJIS ?
これを上手い事、条件つけて変換するとか。
80 :
70:03/06/19 04:52 ID:???
化けているのはおそらくshift-JISかと。
どういう条件をつけたらよいのでしょう。
81 :
nobodyさん:03/06/19 04:57 ID:Xa9Oiy3t
>>75 とりあえず
$lines = file('hoge.csv');
$title = array();
$value = array();
for ($i=0;$i<count($lines);$i++) {
list($title[$i],$value[$i])=explode(",",$lines[$i]);
}
かなあ?
$lines = array_map('SplitCSV', file('hoge.csv'));
function SplitCSV($line) {
$a = explode(',', $line);
return array('title'=>$a[0], 'value'=>$a[1], 'value2'=>$a[2]);
}
みたいに多次元配列に入れたほうがデータを使い回しやすいし、
ファイルを全部読み込む必要がないならfgetcsvを使うのが良いだろうし。
方法はいろいろありますyo。
>>78 jcode.phpsは最新版(1.34)ですよね?
いちおう
http://www.spencernetwork.org/ を張っときます。
PHPがセーフモードでないなら、exec()でnkfを使うとか
mbstringのDSOを調達してdl('mbstring.so');するとか? (w
82 :
70:03/06/19 05:17 ID:???
sage忘れてた・・・。
>>82 すごく強引です。半分ネタのつもりで書きました。ごめん。
ところで、文字列は保存する直前(処理したあと)変換してませんか?
それならスクリプトの冒頭で
$str = serialize($_POST);
$str = JcodeConvert($str, 0, 1);
$_POST = unserialize($str);
って感じであらかじめ変換してやるといいかも。
個別に変換するんじゃなくて、一つの長い文字列として扱うことで
判定ミス軽減を狙ってます。うまくいくかわかんないけど。
とりあえず、そのリンク先が根本的に間違っているのは疑いの余地が無いですね。
おっと、たしか大抵の国際化されてないレン鯖のPHPって4.0.6だったような。
上の$_POSTは$HTTP_POST_VARSもしくは$HTTP_GET_VARSと読み替えてくだされ。
>>78 チェック用にHIDDENで"美乳"とか入れらんないの?
その掲示板の入力フォーム。
>>85 > チェック用にHIDDENで"美乳"
あ,おれと同じことしてる…
87 :
70:03/06/19 13:22 ID:???
>>85 「美乳」。。。
なんか、もうちょっと長いので無難なのありませんでしたっけ?
88 :
70:03/06/19 13:24 ID:???
ググッたらすぐに出てきました。
「雀の往来」ですね。
>>83さんのアドバイスとあわせてやってみます。
うひょー、、こんなのあったのか<美乳・雀の往来
しらんかたよ汗
90 :
nobodyさん:03/06/19 16:54 ID:BuZyfKvG
$hash = array('key1'=>'val2','key2'=>'val'2);
$key = 'key';
$line = 'abcd $key{key1} efgh $key{key2} ijkl';
以上のデータを使って$lineを
abc val2 efgh val2 ijkl
と成るように置換したいのですが、以下だとうまく動きません。
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
どうしたらうまく動かせるのでしょうか。教えてください。
ちなみにperlだと
$line =~ s/\$$key\{(.+?)\}/$hash{$1}/g;
あぼーん
92 :
nobodyさん:03/06/19 16:59 ID:3FZVSEpw
>>90 つか、それ以前に''(シングルクォート)じゃあ、変数が
展開されねーべさ。
"
''
95 :
92 :03/06/19 17:20 ID:???
うーっぷす、すまねえ。
「'」(しんぐるくぉ〜と)
と書き直してみるテスト。
$hash["\\1"] -> $hasn[$1] でどう?
$hash[$1] のかわりに md5($1)とか、オリジナルのハッシュ関数($1)とかでもいいかも。
97 :
90:03/06/19 17:24 ID:BuZyfKvG
>>92 ちょっとまぎわらしいコードを書いてしまってすいません。
$lineでしたら、展開されないように''にしています。
$line = 'abcd $CODE{1} efgh $CODE{2} ijkl';
$key = 'CODE';
$hash = array(1=>'111',2=>'222');
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
で$lineを
abcd 111 efgh 222 ijkl
にしたいのですがpreg_replaceの所で、つまずいています。
99 :
nobodyさん:03/06/19 18:05 ID:j1VyygA0
PHPとTomcatを連携しようと考えています。
可能でしょうか?
あぼーん
この
初めての質問です。
まずform.htmlで
<form name="form1" method="post" action="confirm.php">
<p> 名前<br>
<input name="name" type="text" size="100">
</p>
のようなフォームを作り、confirm.phpで
<?php echo $_POST["name"] ?><br>
として表示しようとしているのですが、何故かなにも表示されません。
PHPが動いていることはphpinfo()で確認済みです。
どうもform.htmlからconfirm.phpに変数を渡せていないような気がします。
これはなにか設定の問題なのでしょうか?
ご教示ください。
103 :
nobodyさん:03/06/19 22:34 ID:qf8t/Q9i
ereg関数でパターン文字列に「=」を入れたらこのようなエラーが出ました
Parse error: parse error, unexpected '=' in /xxxxx/index.php on line 11
「=」はつかえないんでしょうか?
$_POST[name] $_POST['name'] $_POST["name"] $POST[qq|name|qq] なあほな。
\= とかは? うひ。
おいPOSTじゃんか。
URLを入力してそのページのソースを全部取得する関数ってありますか?
>109
fopenではダメなのですかい?
>>110>>111 fopenやfileだとファイルしか開けなくないですか?URL開けないんですが。
115 :
nobodyさん:03/06/20 14:27 ID:LThxuIrX
shuffle()でランダムに並べ替えた配列を
次のページにその並び順のまま渡すには、
どんな方法が考えられますか?
ファイルに書き出すしかないでしょうか…
>>115 >>116-117の補足
shuffle($arr);
$str = rawurlencode(serialize($arr));
GETのとき
echo "<a href=\script.php?shuffled="{$str}\">xxx</a>";
POSTのとき
echo "<input type=\"hidden\" name=\"suffled\" value=\"{$str\}" />";
SESSIONのとき
書くのめんどくさい。rawurlencodeとかserializeとか不要。
119 :
nobodyさん:03/06/21 11:11 ID:k+R30mgd
PHPって基本的に多言語をサポートしてるんですよね?
調べてみると、multibyteってのを入れると、日本語化できる
みたいに書いてあるのですが、
逆を言えば、multibyteを入れないと日本語化できないんでしょうか?
またPerlってどうなんでしょうか?
>>119 Muiltibyteを入れなくても日本語は通ります。
Perlも日本語は通ります
121 :
nobodyさん:03/06/21 12:23 ID:HF7plXmg
自分が阿呆な事を言っていると承知済みで、失礼覚悟で質問いたします。
先日、フリーのPHPチャットプログラムをダウンロードしてきました。
製作者様がおっしゃるにはそのチャットプログラムは、
改造は規約さえ守れば好きにしていいとの事です。
しかし、その公式ページ以外でそのPHPに関する質問は絶対にしないように
とのことで、しかしながら質問のお返事が戴けません。
そしてわたしは、今回初めてPHPを弄った筋金入りの素人です。
そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
どこがなんなのかもうさっぱりです。さんざん自力でいじり、探しましたが、
なにせhtmlも満足にいじれないわたくしにとって腐海のようです。
解決策とかそれ以前に、わたしはどうすれば良いでしょうか。
製作者様のお答えを根気よく待つべきでしょうか。ここで質問しても
大丈夫なものなのでしょうか。自力でPHPを1からミッチリやり込むべきでしょうか。
あぼーん
123 :
nobodyさん:03/06/21 12:42 ID:iHlRBHxT
>>121 >そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
意味がわからないな。。言語って英語とか?それともPerlはじくとか?(これも意味不明
できればその配布サイト教えてよ。簡単なら同じ機能ついたの作ってやるから。
124 :
119:03/06/21 12:50 ID:k+R30mgd
>>120 即レスありがとうございます。
じゃあmultibyteは何の役割をするんでしょうか?
125 :
nobodyさん:03/06/21 13:18 ID:HF7plXmg
>123
いえ、まさかそこまでして頂く訳には参りません。
その、これを申すとそのプログラムが特定できてしまいそうなのですが、
いわゆる『人工無能』のついたチャットなんです。
『人工無能』とはAと言えばBと答える、というような法則を覚えさせて
疑似会話が出来るものだと聞きました。
その『人工無能』が、特定の言葉、主に著作権関係の言葉と思われるのですが、
それを全て覚えません。
その機能を外すには、どこのソースを消せばいいのか、という話なのです。
お解りになりましたら、どうぞご助言願います。
127 :
123:03/06/21 13:35 ID:KU8WU14M
>>125 >その機能を外すには、どこのソースを消せばいいのか、という話なのです。
>お解りになりましたら、どうぞご助言願います
PHPならPHPゆいちゃっとのゆいぼっとかなっとは思うけど…、
とりあえず配布サイトのURL出してくれないとわからないです
>>125 スクリプトによって違うので
何とも言えません。
アドバイスは
PHP入門(エーアイ出版)
をかってPHPを勉強しましょう
ということです。
129 :
123:03/06/21 13:40 ID:KU8WU14M
>>125さんは、「そこに山があるからだ」さんかな?(w
あぼーん
131 :
123:03/06/21 13:51 ID:KU8WU14M
確かにビートルズ覚えないね。
原因突き止めてるからちょっと待ってね。
PHPゆいちゃっとの管理人はサポート下手だな。
あやふやな質問にいくらレスしても疲れるだけだっつーの。
133 :
125:03/06/21 14:00 ID:HF7plXmg
>128さん
はい…1から入門するのが一番だとは思っております。
ご推薦の書物を探して読んでみます。ありがとうございます。
>123さん
あああッバレてるッ(泣笑
すみません。結局サイトまで明かす事になってしまいました。
ここであのプログラムの事を質問しても、問題はないのでしょうか?
あのちなみに、『ビートルズ』の実験はどちらでなさったのでしょうか…
わたしが躍起になって調べた結果、経済界要人とスポーツ選手は覚えます。
歌手、有名人、米国のアニメキャラクター、映画のタイトルなんかは総崩れです。
ほんとうに、お手を煩らわせてご免なさい。
ありがとうございます。
134 :
125:03/06/21 14:03 ID:HF7plXmg
>132さん
製作者様はわたくしの無理な質問に散々付き合って下さりました方です。
その製作者様が、わたくしの所為でそう言われては申し訳が立ちません。
どうか、その旨ご理解願えませんか。
135 :
123:03/06/21 14:04 ID:KU8WU14M
スクリプトをざっと読んでみたけど、著作権のあるものは登録できないようにする
なんて処理は何処にも無かったよ。多分原因は他に有ると思う。
136 :
123:03/06/21 14:08 ID:KU8WU14M
>ここであのプログラムの事を質問しても、問題はないのでしょうか?
正式には、利用規約違反にはなっちゃうだろうなぁ…。
でもまぁレイさんも忙しいんだろうし、こっちでバグ見つけて報告するのはダメってわけじゃないから、
とりあえず何処が悪いのか探してみるよ。
ちなみにビートルズの実験は自分のサーバーでやってる
137 :
125:03/06/21 14:15 ID:HF7plXmg
>123さん
そうですか!
あの、ズブの素人が素人脳で考えてしたことは、著作権に触れる言葉を
覚えさせた時にも、datファイル内には追加されているのです。
その上で$no_msgが発動していますから、全てのphp内を$no_msgで検索したんです。
$no_msgに関係するソースはどれを外しても動かなくなりますので、
じゃあそういう仕様なのだろうかと……すみませんほんとうに何にも知らなくて……
でも、著作権に関係する言葉だけを覚えないなんていう
器用なバグがあるのでしょうか。
やっぱり規約違反ですね……どうしよう………
138 :
123:03/06/21 14:16 ID:KU8WU14M
正確な原因は著作権とかの問題じゃないみたい。
勝手に引用して悪いけど、
ボットが『ジョン・レノン』は覚えますが、『ビートルズ』『ポール・マッカートニー』を覚えません………(?。
禁止用語か何かでしょうか。
覚えない単語に共通しているもの、それは「ー」。
ためしにやってみるとわかるよ。
それから言うと、実際には「覚えている」
つまり、データファイルには書き込まれているが、それが呼び出されないのが原因らしい。
これ以上はまだわからない
139 :
123:03/06/21 14:18 ID:KU8WU14M
>やっぱり規約違反ですね……どうしよう………
レイさんがこのスレッドを見てらっしゃるかどうかは知らないけど、
原因見つけてバグ報告する事になっても、とりあえずこの事は黙っておくよ。
140 :
132:03/06/21 14:22 ID:???
ゴメンネ。昔プログラミングとは関係のない所でユーザーサポート
やってて酷い目にあった経験があったものでw
原因は正規表現とか置換とか?
(スク読んでないけど)
マルチバイトのやつじゃなければ、mb_で試してみるとか。
141 :
125:03/06/21 14:31 ID:???
>123さん
…………解りました………!
びっくりしました。そうだったんですね!なるほど!ほんとだ!
だからミッキーマウスもアーノルド・シュワルツネッガーも
オードリー・ヘプバーンもマリリン・モンローもダメだったんですね!
………アレ?だけどタモリもはじかれます。
すみません本当に。もしレイさんがここをご覧になった暁には、
レイさんの取られます処置に従おうと思います。
こんなに人目に触れる場所なので、遠からず彼もご覧になるかと思いますが……
いろいろ手を尽くして下さって、本当にありがとう。
>132さん
いえ、そもわたくしが全ての元凶ですので………
レイさんに黙ってここに書き込みするのに、後ろ暗いのです。
ほんとうにごめんなさい。
うわあ…だんだん自分がネットの契約違反者になっていく……
ネットの契約書を読むたびにそんな違反は普通に使っててしないだろうと
思っていましたが、初めて解りました。うう。
あぼーん
144 :
123:03/06/21 14:59 ID:KU8WU14M
まぁ原因はわかった・・
でも私が修正しようとすると、ややこしいやり方になっちゃう(しか知らない)から、
どう修正するかは、レイさんにおまかせするよ。
とりあえずサポ板に書き込みに逝って来まふ
145 :
125:03/06/21 15:04 ID:???
>123さん
何から何までありがとうございました。
ご恩とご好意、忘れません。
これに懲りて、ちっとは自力でプログラムを弄れるようにお勉強いたします。
…とりあえずわたしも理系学生のはしっこですし(泣
123さん、132さん、本当にありがとうございました。
>142さん
心にズキンと響くイイお言葉ですねがんがれ。
ありがとうございます。がんがります。
やっと雑談終わったか・・・
147 :
123:03/06/21 15:40 ID:???
書いてる途中に家事頼まれて遅くなった。
ほいじゃね。
148 :
nobodyさん:03/06/21 16:09 ID:3yZp62xo
ID,dat1,dat2,dat3
というデータがPOSTされてくるので、既存のログファイルに、
POSTされたIDがあればエラー、なければデータ追加するには
どうすればいいでしょうか。
IDは固定長、dat1~3は可変長のデータです。
あぼーん
ログファイルを自力で検索。
どこで悩んでるの?
152 :
nobodyさん:03/06/21 17:08 ID:VyXOk/2c
while ($temp = <STDIN>) {
chomp($temp);
print "$tempが入力されました\n";
}
これだとABCDと入力したら ABCDが入力されました、と出て、
while ($temp = <STDIN>) {
$temp2 = chomp($temp);
print "$temp2が入力されました\n";
}
これだとなぜか、1が入力されました、としか出ないのはなぜですか?(´・ω・`)
あぼーん
>>152 うあ、誤爆スマン 。・゚・(ノД`)・゚・。
phpに
Cでいう
do〜while
と同じような働きをする
ものってありますか?
>>155 ズバリそのものが有る悪寒。C自体は知らないけど、同名の関数が。
あぼーん
あぼーん
PHPマヌアル嫁↓
え?俺?
あぼーん
PHPマヌアル嫁↑
PHPマヌアル嫁←
164 :
影:03/06/22 07:56 ID:???
配列の中身を5列のテーブルで表示するにはどうやったらいいでつか?
$hoge = file ( "test.log" );
echo "<table border=1>";
for ( $a = 0 ; $a < count($hoge) ; $a++ ){
echo "<tr>";
for ( $b = 0 ; $b < 5 ; $b++ ){
echo "<td>";
echo "$hoge[$a]";
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
と、やってみますたが、見事に失敗しますた(ウトゥ
>>164 どういう内容のtest.logに対して、どう表示したいの?
for( a ){
for( b ){
echo hoge( a );
}
}
になってるから、bの回数分(5回)だけ同じ$hoge[$a]を1行に出力するよ。
166 :
nobodyさん:03/06/22 13:16 ID:v4BkkZfH
123
456
789
10
みたいに表示したいので、半日悩んだ末↓でやったらとりあえず、上手くいったんだけど、
なんかしっくりこない。(echo"$k";が2回あるあたり)
もっとスマートなやり方ありますか?
$k=1;
for ($i=1;$i<=4;$i++) {
if ($k==10) {
echo"$k";
break;
}
for ($j=1;$j<=3;$j++) {
echo "$k";
$k++;
}?><br><?php echo ("\n");
}
>>168 あんた・・・
for($i=1;$i<=10;$i++){
echo $i;
if($i%3==0)echo"<br>\n";
}
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table>\n";
foreach ($hoge as $key->$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>\n";
}
echo "<td>".$val."</td>\n";
if ($key % NUMCOLS == 0) {
echo "</tr>\n";
}
}
echo "</table>\n";
>>168 やさしいね。でもそこはかとなく間違ってる。
×foreach ($hoge as $key->$val) {
○foreach ($hoge as $key=>$val) {
×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
あとecho "</table>\n";の前に
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < $n; $i++) {
echo "<td></td>\n";
}
echo "</tr>\n";
}
かな。
>>169 おお,ケヤレスミスすまそ
空セルもちゃんと作るのは丁寧ですね。
見習います
171 :
166:03/06/22 14:04 ID:???
>>167 ありがと
こんな簡単に出来るのか
>>168-169 これはテーブルで表示できるのかな
おれのレベルじゃまだ理解できない・・・
ちょと試してみます
172 :
nobodyさん:03/06/22 15:44 ID:TMm6ngKF
チャットに書き込んだ後にリロードすると[再試行]が出てくるんだけど
普通にリロードできるようにするにはどうやるの?
>>172 オレのところのチャットだと問題なかったよ。
そっちの端末の環境の所為じゃないの?
POSTだろうから、GETにしてみるよし。
>>172 いや、、なんというか。。ぽんしち?(藁
↑
172じゃなくて 173だった。
177 :
影:03/06/22 21:01 ID:???
>>168-169 サンクスコ
<table border=1>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2
</td>
<td>ほげ3
</td>
<td>ほげ4
</td>
<td>ほげ5
</td>
<td>ほげ6
</td>
</tr>
<tr>
<td>ほげ7
</td>
<td>ほげ8
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
てな具合に、最初の行が上手く動作してくれないんだけど、原因が見当つかない
>>169 ×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
$key == 0 の時にもTRUEになるためには一番上が必要でした
179 :
影:03/06/23 04:05 ID:???
>>169 foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
}elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
とか、やってもダメですた・・・(ウトゥ
<table border=1>
<tr>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2〜
最初の<tr>が出現したのみ。
1行目だけなんで・・・(つД`)
180 :
:03/06/23 04:06 ID:vjy3Tk6s
ブラウザークラッシュ!!
あぼーん
>>179 foreach ($hoge as $key=>$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
あぼーん
185 :
影:03/06/23 08:30 ID:???
あ゛〜(`□´)
背中に手が届きそうで届かない!
漏れにプログラムは向いてないんか!?
>>183 それだと、$key が 8 になった時も
if ($key % (NUMCOLS - 1) == 0) にマッチして<tr>が出てくるべさ。
するとテーブルが崩れてしまうべさ。
昨日
>>168見た時は、サパーリだったけど、今は何をどうしたらいいかが
解ってきたような気がする・・・
後は、何とか自力で・・・出来たらいいなぁ〜(´¬`)
ところで、今回は定数に5を代入してるけど、これ変数じゃだめぽ?
あっ、NUMCOLS-1 とかしてるから変数じゃマズイか・・・
yata-でけた〜!!!!!!
186 :
影:03/06/23 08:32 ID:???
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == 4) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";
>>185 そうだね
じゃあ
if ($key == 0 || $key % NUMCOLS == 1) {
188 :
影:03/06/23 12:41 ID:???
それだ!論理和 || !
$key % NUMCOLS == 1
だと、$key が、1,6,11・・・の時にマッチしてしまい、出したい所に<tr>が出ない。
なのでやっぱりここは
$key % NUMCOLS == 0
if ($key % NUMCOLS == 4)
の部分は、5列って事しか考えていなかった為、ちょい修正して
if ($key % NUMCOLS == NUMCOLS-1)
>>169が書いてくれた空セル追加は
for ($i = 0; $i < $n; $i++)
だと、例えば余剰が4の時は、4つ空セルを作ってしまう。
空セルは列の数から余剰を引いた分だけ欲しいので、
for ($i = 0; $i < NUMCOLS-$n; $i++)
こんな厨な漏れに付き合って下さった PHPDQN 様、ありがとうございました!
189 :
影:03/06/23 12:43 ID:???
最終的には、こうなりますた。
$filename = "test.log";
$hoge = file ($filename);
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0 || $key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == (NUMCOLS-1)) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";
$c = count($hoge);
$c += $c % 5
for ($i = 0, $j = 0, $td = '', $tr = ''; $i < $c; $i++, $j++) {
$v = isset($hoge[$i]) ? $hoge[$i] : " ";
$td .= sprintf("<td>%s</td>", $v);
if ($j == 4) {
$tr .= sprintf("<tr>%s</tr>", $td);
$j = -1;$td = '';
}
}
printf("<table>$s</table>", $tr);
191 :
nobodyさん:03/06/23 17:00 ID:ghLrcRD3
php 4.2.3 を使っています。
ヒアドキュメントに関して教えて欲しいのですが、
ヒアドキュメント内に、式、というか関数を書き、その結果を
使いたいのですが、うまくいきません。
$buf = <<<EOD;
a = {$db->query($_POST['a'])},
b = ### 以下同じように...
EOD;
のような感じに書き、print $buf; で
a = 値, b = 値 となるようにしたいのですが、
Parse error: parse error, expecting `'}'' in ...
となってしまいます。ヒアドキュメントではなくて、
$buf .= "a = ".$db_con->quote($_POST['a']).",";
と続けていくしかないでしょうか?
192 :
影:03/06/23 19:16 ID:???
$buf = <<<EOD;
↑この行ってセミコロンいるんですか?
193 :
191:03/06/23 19:22 ID:ghLrcRD3
>> 192
すみません。手コピーした時にミスりました。
セミコロンいらないです。
書き写しをミスっただけなので、セミコロンは本質的な
問題じゃありません。すみませんです。
194 :
影:03/06/23 19:33 ID:???
a = {$db->query($_POST['a'])},
a → $a
, → ;
今の漏れにはこれくらいしかミスがハケーンできず。
あとは、偉い人よろ。
>>191 $buf = <<<EOD
EOD;
~ このセミコロンはだめだと思うが?
EOD
;
こうだろ。
$buf = <<<EOD;
EOD
でも良いとおもうが
セミコロンの位置に関しては
>>192が正解。
つーかそれ以前にヒアドキュメント内には関数を書けんわけだが。
「以下同じように」なことをしたいんならwhile、for、foreachのどれかでしょ。
197 :
影:03/06/23 20:58 ID:???
198 :
191:03/06/23 21:05 ID:???
>>196 ヒアドキュメント内には関数を書けんわけだが。
ども。書けない事がわかったのでヒアドキュメントを使うのを
やめられます(^^;
>>194, 197
いえいえ。アクションを起してもらえた事がうれしいので、
感謝しています。ありがとう。
>>198 echo やprintの中でもかけないよ
当たり前だけど
200
201 :
nobodyさん:03/06/24 03:00 ID:/ljDW6SS
保守
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
203 :
nobodyさん:03/06/24 12:56 ID:bE/a8saZ
$before = array('aaa','AAA','bbb','BBB');
$after = array('aaa'=>'AAA','bbb'=>'BBB');
上の配列を下配列に変換するにはどうしたら良いでしょうか。
クラスの中でコールバックする時にクラス内の関数を指定するには
どうしたらよいですか?
class::function,$this->functionともにダメでした。
>>203 > $before = array('aaa','AAA','bbb','BBB');
> $after = array('aaa'=>'AAA','bbb'=>'BBB');
> 上の配列を下配列に変換するにはどうしたら良いでしょうか。
$i = 1;
foreach ($before as $key=>$val) {
if ($i % 2 == 1) {
$hoge = $val;
} else {
$after[$hoge] = $val;
}
$i ++;
}
> クラスの中でコールバックする時にクラス内の関数を指定するには
> どうしたらよいですか?
> class::function,$this->functionともにダメでした。
class::function()
$this->function()
>>203 function arrayToHash ($array) {
if (!is_array($array)) return false;
$hash = array();
$m = count($array);
for ($n=0;$n<$m;$n++) {
if ($n % 2) {
$hash[$array[($n-1)]] = $array[$n];
} else {
$hash[$array[$n]] = "";
}
}
return $hash;
}
こんなかんじかな?なんとなくだけどもっと良い方法が在るかも
クラス内でのコールバック関数を使うんだったら、create_function()を使うか
array($this,'method_name')でソメッドを指定してやること
ttp://jp.php.net/manual/ja/function.preg-replace-callback.php を見れば参考になるよ(Notesのところもね)
206 :
nobodyさん:03/06/25 12:13 ID:TNz4QTlp
関数内でグローバル変数にリファレンスを代入したときの挙動がよく分からないのですが、
$a=array(1,2,3);
$b;
hoge();
piyo();
function hoge(){
global $a,$b;
$b = &$a;
var_dump($b);
}
function piyo(){
global $a,$b;
var_dump($b);
}
でpiyoのdumpがNULLなのはなぜですか?
207 :
nobodyさん:03/06/25 15:15 ID:RiMKFAt2
sessionについて学んでおります。
サンプルソースより、多々のサイトを閲覧し意味を求めているのですが、
解釈があっているかどうか・・・
session_name('2ch_session');
セッション名ですよね?
session_cache_limiter('nocache');
ページをキャッシュをさせるかどうかの意味だと思うのですが、
public、nocache、privateの違いがいまいちわかりません。
session_cache_expire(30);
limiterでキャッシュする場合、30分とかという
時間の長さですよね
session_start();
ここからセッションが始まる
何冊か本を購入したのですが、sessionのやり方は書いてあっても、
サンプルスクリプトなどにsession_cache_limiter();
などど唐突に書いてあり、意味の解説がなされてありませんので、
自分ながらに解釈してみました。どこが間違っているでしょうか?
なんでマニュアル読もうとしないのだろうか?
実はマニュアルは存在しない、私の想像の産物に過ぎないのであろうか・・・
この理不尽な質問にもそう考えるとすべての辻褄が合う。
210 :
nobodyさん:03/06/25 16:39 ID:+bFcwMX4
>>208 マニュアルのまんまの参考書って多いよね。
マニュアルのほうが分かりやすいし、最新、タダなのにねぇ。感謝>doc.group
>なんでマニュアル読もうとしないのだろうか?
考えられる理由は、マニュアルのトップページ見ても
1) XCIIIセッション処理関数(session)
に辿り着く前に面倒になる
2) search for [ ] in the [function list]
の英語が分からない
3) 2)の submit ボタン が 分かりづらい
4) manual の 存在に気づいてない
& このスレの最初すら読んでない
& 基礎からやるのはダルイ
ぐらいかな。
eregについて調べているのですが、
本を見ただけではわからないので質問させて下さい。
現在あるソースを見ながら何をしているのかを調べているのですが、
eregを使っている部分で分からなくなってしまうので
解説してもらえないでしょうか?
具体的には以下のようなコードが書かれています。
------------------------------------------------
ereg( "([0-9]{1,2}) (.+)", $ini_file, $regs ) )
ereg( "\*", $regs[2])
ereg_replace( "\*", "", $regs[2] )
ereg_replace( "\*", "(.*)", $regs[2] )
ereg("\"[EGOPS]{2,3}T ".$ini[$ii][1]."(.*) HTTP", $file, $regs)
ereg( $param[$ss], $log_url )
eregの部分だけなので繋がりがなく分かりずらいと思いますが
よろしくお願いします。
あぼーん
関数内でのグローバル変数に対する値の変更はその関数内でしか有効にならないのですか?
215 :
nobodyさん:03/06/25 17:39 ID:+bFcwMX4
>[EGOPS]{2,3}T
ふいてしまったじゃないか!
216 :
212:03/06/25 18:04 ID:???
>214
ユーザ定義関数の内から直接グローバルスコープの変数にはアクセスできないが、
global宣言をしていれば、グローバルスコープでも変更が反映される。
global宣言は分かると思うけど、関数内(ローカルスコープ)の変数に
グローバルスコープの変数へのリファレンスを渡すもの。
( マニュアルいわく、global $a; は $a =& $GLOBALS['a']; と同義 )
同じように、ローカルスコープで作られた変数はグローバルスコープからは変更できない。
この場合はstatic宣言をすると、グローバルスコープへ関数内の変数を持ち出すことが出来る。
ただ、>206の人がはまってるように、ローカルスコープ(関数内)で作られたリファレンスは
static宣言してもグローバルスコープへは持ち出せない。関数処理が終われば消滅。
そのような感じ。
このスレ212は漏れなんだが
まあ間々あることか、、
あぼーん
あぼーん
ヒアドキュメントの中で定数の値を出力する方法を
教えて頂けませんか?
222 :
nobodyさん:03/06/26 02:14 ID:ZsWdiO4a
mb_convert_kanaを使うと????となってしまうんだけど、なんで??
>>221 あんたプログラムで定数を使ったことないのか?
225 :
207:03/06/27 02:26 ID:GX1Z4uke
皆様のおっしゃるとおりです。
マニュアルを熟知しました。
その上で質問です。
セッション変数にデータを追加する際、
session_start();
session_register("user_id");
$user_id = "giko";
をヘッダに使用すると、別のページでも、user_idに格納された
データを使うことができますが、
本に書いてあったのは、
session_start();
$user_id = "giko";
$_SESSION["user_id"] = "user_id";
とあり、
$_SESSIONは4.1.0から追加された配列です。とあります。
~~~~~
$_SESSIONで、PHPマニュアルで探したのですが、ちょっと見つけることができませんでした。
ということは、少量の変数を用いる際は、上の例で、
配列を使いたいときは、下の例でいいということなんでしょうね・・・
なんか、まだ自信がないのですが、
推奨とかありますか?
226 :
とも:03/06/27 02:34 ID:8zlvqcC5
ブラウザークラッシュ”
228 :
207:03/06/27 02:58 ID:???
いわゆる「パン屑リスト」のうまい処理のしかた求む。
あぼーん
あぼーん
あぼーん
233 :
nobodyさん:03/06/27 11:18 ID:oE4Jdn/I
ファイル一覧のソート方法を教えてください。
単純に、ファイル名(日付になっています)に並べたいです。
以下の方法で一覧を表示したときに何順にならんでいるのでしょうか。
当方の確認した環境では、全く順不同でした…
while ( $filename = ReadDir( $handlerDir ) ) {
if ( $filename != '.' && $filename != '..' ) {
print $filename;
}
}
よろしくです。
あぼーん
235 :
nobodyさん:03/06/27 11:48 ID:9q2Y1uRy
>>233 #いったん配列に入れて
if ( $filename != '.' && $filename != '..' ) {
$files[] = $filename;
}
#ソートする
sort($files);
#ポインタを先頭に
reset($sort);
#表示
foreach($files as $filename) {
print $filename."<br>\n";
}
236 :
nobodyさん:03/06/27 13:37 ID:oE4Jdn/I
>>235 ありがとうございます。
大変参考になりました。
あぼーん
あぼーん
あぼーん
ブラクラ注意
241 :
nobodyさん:03/06/28 08:30 ID:WrETl/ge
mkdirでフォルダを作ってそのフォルダを開きたいんですけど、
Warning: SAFE MODE Restriction in effect. The script whose uid is 〜
というエラーが出てしまいます。
FTPで最初からフォルダを作っておくとちゃんと出来ます。
どうすればよいんでしょうか。
define は処理の途中で使ってもOKですか?
初心者はやってもいないのに「〜はできますか?」って聞いてくる。
まずはやってみれ。もちろんローカルで。
>>244 知ったか君はは試したこともなくてどうなるか自分も解らないのに「試してみろ」って言ってくる。
お前もまずはやってみれ。後学のために。もちろんローカルで。
自分で試したほうがはやいことをいつレスが付くかわからん掲示板で
訊くって言う発想がよくワカランなぁ。
余計にマンドクサくね?
>>245 >自分も解らないのに
ってのは分かんないじゃん
>>243が何にも試してないんだろうなって臭いはプンプンするが。
そもそもマヌアルにはdefine()の使いどころの注意書きは見当たらないけど、
心配しだす動機は何なんだろ
テスト環境用意してないのかな?
いちいちマヌアルに書いてない事まで心配しだしたらコーディング進まねーYO!
俺は安全な環境で誤動作上等って感じでコード書きまくってからテストしてる。
やっちゃダメな事はローカルで実体験しまくった方が身によく付くYO
#まだPHP弄りだしたばかりで、PHPで定数使ったことねぇんだけど
#適当なソースにdefine()とその定数をechoする行追加してみたけど
#何の問題もなさそうだたーよ
247 :
nobodyさん:03/06/28 13:03 ID:Fh1b8anl
>>246 >>224よ、お前が歯を食いしばって釣りを無視しているにもかかわらず、何か豪勢なのが釣れてるんだが・・・
248 :
246:03/06/28 13:06 ID:???
俺なりのマジレスしてみたんだがなぁ
何か無粋なやっちゃな
釣りとか釣られたとかくだらねー
249 :
243:03/06/28 14:17 ID:???
>>246 ありがとうございます。
define は処理を始める前に羅列するような先入観があり、
文法的に変なような気がしていましたので。
250 :
221:03/06/28 16:28 ID:???
>>223 いやー
>>220が頓珍漢な事を言ってるから
こちらも頓珍漢な答えで茶化したわけだが
何故無理してまでヒアドキュメント使おうとするのかわからん
まぁたしかにタチ悪かったねスマン
252 :
246:03/06/28 17:47 ID:???
>>251 >>250と結びつける意味がワカラン
ますますくだらねー
ただでさえジメジメしてうっとおしい時期なんだからさ
そういうジメジメしたカキコはやめようや
>>249 定数とかは分かりやすい場所に書いたほうが良いよ
ファイルの前の方とか、定数だけ書いたファイルをインクルードするとか
散在してると後で見つけにくくなるから
後、繰り返しになるけど、コードの落とし穴とかは(テスト環境で)実体験しといた方が楽だよ
ちょっとした疑問程度なら自ら動かしてみてくらはい
見聞きしただけでバグ無しコード書けるくらいに頭の回転がはやい人なら別だろうけど
>>252 まぁ、ネームスペースとかに興味がない人はそう思うんでしょうな。
PHPって定数にネームスペースの概念ってあったっけ?
列挙型とか。
255 :
nobodyさん:03/06/29 14:32 ID:rZczdmH2
質問!
フォームから入力したテキストに[\](バックスラッシュ)が
入ってしまうんです.
調べて[magic_quotes_gpc]の値を[ini_set]でOFFにすればいいと
いうのがわかったのですがこれでも回避されませんでした.
しかたなしに[stripslashes]で回避しているのですが
もっと根本的に直せないでしょうか?
ちなみに[magic_quotes_runtime][magic_quotes_sybase]の
値も全てOFFです.
257 :
255:03/06/29 15:52 ID:rZczdmH2
デフォルトでは[Shift-JIS]の出力だったので
ini_set('mbstring.http_output', "EUC-JP");
を実行して[EUC-JP]に変換しています.
この辺が怪しいですか?
260 :
255:03/06/29 17:21 ID:rZczdmH2
[ini_set]でやってるので再起動なしに反映されてます.
[stripslashes]で回避はできますができれば根本から
直したいです.
おいらのまぬあるが古いのかな?
ini_setでmagic_quote_gpcは設定できないように書いてあるようにみえる。
264 :
255:03/06/30 00:28 ID:8Khs5mrJ
ありがとうございます.m(_ _)m
書き忘れてましたがPHP4.1.2です.
再起動しないとだめなんですね…
でも
ini_set('magic_quotes_gpc', 0);
phpinfo();
をやるとちぇんとLocal ValueではOFFに
なってるんですがこれはあくまで設定値ということなんですね…
ありがとうございました.
265 :
255:03/06/30 00:32 ID:8Khs5mrJ
ついでに利かせてもらうと
レンタルサーバの場合などみなさん
どうしているんでしょうか?
いちいち[stripslashes]の処理をさせてるんでしょうか?
まぁ、ケースバイケースだけど
俺はこんな感じのことをしてます。
---------
if (get_magic_quotes_gpc() == 1) {
switch ($_SERVER["REQUEST_METHOD"]) {
case "POST":
while (list($key, $val) = each($_POST)) {
if (! is_array($val)) {
$_POST[$key] = stripslashes($val);
}
}
break;
case "GET":
while (list($key, $val) = each($_GET)) {
if (! is_array($val)) {
$_GET[$key] = stripslashes($val);
}
}
break;
}
}
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
これ最強。
念のため、再帰的に変換するのもあり。
$_GET = array_map('r_stripslashes', $_GET);
function r_stripslashes($value) {
if (is_string($value)) {
$value = stripslashes($value);
} elseif (is_array($value)) {
$value = array_map('r_stripslashes', $value);
}
return $value;
}
269 :
266:03/06/30 02:48 ID:???
なるほど・・・勉強になりますた
270 :
nobodyさん:03/06/30 04:09 ID:8KMUcild
文字列の中にあるスペース削除ってどうやるの?
あぼーん
273 :
nobodyさん:03/06/30 05:11 ID:OSudLwdS
認証システムを作っているんだけど、
アカウント名に、半角英数小文字のみ
abcdefghijklmnopqrstuvwxyz0123456789_-
だけにしたいのです。
フォームから上記以外の文字を入力された場合、
駄目!って言いたいんだけど、
正規表現は難しそうなので、
if ( mb_convert_kana($account,"akh") != $account ) { echo "駄目!!"; }
で行こうと思ったんだけど、
全角の漢字とか、スペースを入力されてしまいそう・・・
記号もたくさん入力されそう・・・
なんかいい方法ありますか?
>>273 ちょっと分からなくても正規表現やっておくといいと思うよ。
$a がフォームから受け取った文字
ereg("^[a-z0-9_-]+$", $a)
これで期待通りの結果が得られると思うけど、意味は自分で調べるとよろし。
それよりお前ら、PHP5.0.0 Beta1なんてのが表舞台に出てきましたよ。
275 :
nobodyさん:03/06/30 10:12 ID:aQ17FmN/
登録された内容をメールで送信しようとしています。
EUCで書かれたファイルで作成するので
$line = mb_convert_encoding($line,"ISO-2022-JP","EUC-JP");
$subject = mb_convert_encoding($subject,"ISO-2022-JP","EUC-JP");
mail($mail,$subject,$line,"From:
[email protected]\r\nReply-To:
[email protected]");
としています。
送られてきたメールを見るとタイトルは文字化けしているのですが、
メッセージの方は問題無く表示されています。
なにが問題なのでしょう。
276 :
255:03/06/30 10:31 ID:JZyVHkmB
>> 266-268
ありがとうございます!
m(_ _)m
べんきょうになりますな.
>>275 subjectをエンコードする
またはmb_send_mail()を使う
278 :
275:03/06/30 11:00 ID:???
ありがとうございます。
mail()の個所をmb_send_mail()と変更しただけで、
mb_send_mail()を使用しましたが、
届いたメールは件名はあるがメッセージ自体が無い状態で届いてしまいました。
これもまたなぜなんでしょう。
>>278 メッセージのないメールを送ったとしか考えられない
280 :
275:03/06/30 11:35 ID:???
mailではうまく行くんですよ。
操作自体も同じですし。
281 :
273:03/06/30 11:42 ID:???
>>274 正規表現めんどくさそうだけど、今日一日やってみます。
ありがとやんす〜
5.0.0Beta1期待!
>>275 $subject = mb_convert_encoding($subject,"SJIS","EUC");
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
してから、mail関数で送信してみ
283 :
275:03/06/30 13:12 ID:???
>>282 うまく行きました。
今からどういう処理なのか勉強したいと思います。
ありがとうございました。
数百行あるテキストファイルから指定した行だけ抜き出すにはどうしたらいいでしょうか?
fileで読み込むと全行読み込むから効率が悪いと思うのです。
あぼーん
ブラクラ注意
>>270 preg_replace("/\s/","",$hoge);
あぼーん
ブラクラ注意
ブラブラチンコ
>>284 n行目のファイル先頭からのオフセットを一覧にしたインデックスを作ったらどうか。
すみません
Shift-JISのファイルをEUCに変換できますか?
↓みたいなやつ作ったんですけど、データファイルがShift-JISだったんで読み込めない(汗
<?php
$data = file ("$file");
print $data;
?>
>>292 mb_convert_encoding(文字列,出力文字コード,入力文字コード)
で文字列ごとに変換しないとだめなのかも
PHPはじめて10日くらいなので詳しくは知りませんが
フォームから文字を入力して結果を表示する単純なものなんですけど、
"送信"を押しても何も表示されません。
どこが悪いのか・・・
<FORM action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="POST">
なまえ:<INPUT type="text" name="yourname"><br>
<input type="submit" name="SUBMIT" value="送信"> <input type="reset" name="reset" value="リセット">
</FORM>
<?php
if ($SUBMIT != "" ) {
echo ($yourname);
}
?>
>>295 >if ($SUBMIT != "" ) {
新しい本を読みましょう。と。
297 :
295:03/07/01 22:52 ID:???
>>296 ありがとうございます
>>295はPHP入門という本を参考にしてます
一番やさしそうだったんで買ったんですけど、たしかに内容古いかも
$_REQUESTを使うのかな?
もうちょっと試してみます
>>297 $HTTP_POST_VARS["SUBMIT"]
$_POST
>>297 内容古いのはぜんぜん問題ないよ。とにかく書けよ。
301 :
295:03/07/02 00:07 ID:???
if ($_REQUEST["SUBMIT"] != "" ) {
echo ($_REQUEST["yourname"]);
}
でようやく出来ました
ありがとうございましたー
>>301 まちがっちゃーいないんだけど
$_REQUESTはGETとPOST、COOKIE、FILESを区別しないから
セキュリティーホールになりやすい。
つーかなんで
>>299の優しさをふいにするかなあ。
$_POST['SUBMIT'],$_POST['yourname']にしる!
>>300 >内容古いのはぜんぜん問題ないよ。とにかく書けよ。
ばっちり問題が出てるんだが。アホか?
あぼーん
>>305 ごめんごめん。でも...それ...古いし。
4.1以降でも非推奨だしPHP5では使えんでしょ?(憶測
スルーしたのは素直に悪かったと思ふ。
な、なんだってーー!!!!
PHP5では使えなくなるのか・・・
309 :
nobodyさん:03/07/02 15:03 ID:iDV7N0wg
eregでマッチした数を得るにはどうしたらよいんでしょうか?
310 :
309:03/07/02 15:14 ID:???
すんません。出来ました。
あぼーん
ブラクラ注意
313 :
K:03/07/02 15:55 ID:+4nJpvGg
CGIを使ったHPとそうでないHPはどこが違うんですか?
あぼーん
あぼーん
ブラクラ注意
317 :
301:03/07/02 21:24 ID:???
>>309 if(ereg(一致条件,評価する変数,$hoge)){ # 眠いので勘弁して
die(count($hoge));
}
一致条件にマッチした箇所が配列として$hogeに入るので、
後は$hogeをcount()関数で数える、という事を思いついた。。
>>309 preg_match_allならそのままできるんだが
320 :
nobodyさん:03/07/04 00:29 ID:WD3uwLUp
linux(赤帽7.3)+PHP4.1を使用しています。
PHPから、linuxの認証を使い回すことは可能でしょうか?
また、その際、パスワードの変更なども可能でしょうか?
>>320 激しくセキュリティホールな予感。
passwdにSUIDとか立てたら・・・・って立ってるのか。可能っぽいよ。
322 :
nobodyさん:03/07/04 09:14 ID:DNjraE66
イメージ関数で画像の減色って出来ますか?
リサイズは出来たんですけど、減色の方法がわかりません・・。
User-Agentを取得してMysqlのデータベースに蓄積しています。
$headers=getallheaders();
$ua = $headers['User-Agent'];
としています。
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"が欲しいのですが
"Mozilla/4.0"
までしかデータベースに入りません。どうすれば良いのでしょうか。
ローカルで試しています。PHP 4.3.2 Apache/1.3.24
ご教授願います。
324 :
nobodyさん:03/07/04 16:03 ID:ykyCw+EL
FlashとPHPで変数をやりとりしたいのですが
PHPからFlashに送るためには
どういう風にスクリプトを書けばいいんでしょう?
Flash側はsendAndLoadなどで送られてきた
データを受け取ることはわかっているのですが
PHPからどう出力すれぱいいのかわかりません。
(例えばecho ($hoge)などで出力するわけじゃないですよね…)
あともうひとつFlashからPHPに変数を送る際に
返り値もなにも受け取らず、ターゲットウインドウもなし
ただ単純に変数を送るだけってことはできるんでしょうか?
sendで送信後に送り先の「〜.php」が開いてしまいます。
↑板違いなFlash含んでて申し訳ないです。
PHP+MySQLで掲示板とか作って配布しようと思ってるんですが、テーブルのLOCKって必要ですか?
>>323 フィールドのタイプとか文字数とかどんなクエリで取り出してるとか教えてくれないの?
Perlから移植したいのですが
$in{'FROM'} =~ s/◆/◇/g;
if ($in{'FROM'} =~ /#(.+)/){
my $key = $1;
my $salt = substr($key."H.", 1, 2);
$salt =~ s/[^\.-z]/\./g;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = ' ◆</b>' . substr(crypt($key, $salt), -8) . '<b>';
はどうすればよいでしょうか?
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
でつまってしまいました。厨な質問で申し訳ないですがよろしくお願いします
>>325 読むだけならどうでも良いけど書くなら必須。
>>327 $salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
ありがとうございます。いい掲示板つくれそうっす
331 :
nobodyさん:03/07/04 22:15 ID:2pHtYtXT
ここはphpBBに関する質問は宜しいのでしょうか。
駄目ならすいませんが誘導ください。
phpBBをインストールし、Global Announcement Modというものを新しくインストールしたのですが、なにも項目も追加されてませんし、「重要」トピックなどで投稿しても全てのフォーラムに反映しません。
コレはどうすれば宜しいのでしょうか?
宜しくお願いします
332 :
名無し:03/07/04 22:26 ID:P/UD1L9m
ファイルが存在しなければ作成したいだけなのですが、
エラーが出てしまいます。下記の記述で間違っている個所があるのでしょうか?
$file="file.dat";
if(!file_exists($file)){
$fp = @fopen($file,"w") || die("error");
flock($fp,LOCK_EX);
$print="aaa";
fputs($fp,$print);
flock($fp,LOCK_UN);
fclose($fp);
}
ホントに初歩的な質問ですみません。。。
ご回答お願いします。
333 :
325:03/07/04 22:31 ID:???
>>328 わかりました。WRITEロックかけます
有難うございました
>332
>$fp = @fopen($file,"w") || die("error");
var_dump($fp); してみてください。
これだと、たぶん $fp がリソースではなくbool型になってる。
正しくは $fp = @fopen($file,"w") or die("error");
こうすれば = が処理される前に $fp が評価されるはず。
演算子の優先順位の項目を参照のこと。
質問するときはどこでどんなエラーが出てるのかちゃんと書けって
いつも言ってるだろこのバカチンが !!
訂正。
評価されるのは $fp に入る前の fopen(); の結果ね。
>>325 MySQLの場合、単行updateなら不要。
マニュアルのlockの項を参照。
fopenの前に@をつけるとどういう意味になるの?
@foo();
This will supress the injection of error messages into the data stream output to the web client.
エラーが出たならそれをコピペ汁↓
340 :
336:03/07/05 00:42 ID:???
あ、勿論DB操作するスクリプトが並列に動いてるなら、
対象行がdelete掛けられた場合の処理(逃げ)は必要だよ
supressってなんだろう・・・
>正しくは $fp = @fopen($file,"w") or die("error");
>こうすれば = が処理される前に $fp が評価されるはず。
ダメじゃん・・・。
>>332 $fp = @fopen($file,"w");
if ($fp) {
#処理
}else {
die ("error");
}
>>343 ありがとう。ようやくexciteで翻訳できた。
347 :
323:03/07/06 13:15 ID:???
>>326 フィールドのタイプはtext、文字数は設定なし、取り出してるクエリは
SELECT *
FROM `テーブル名`
です。
よろしくお願いいたします。
あぼーん
あぼーん
>>347 どうやってテーブルに入れてるの?
「入ってない」んだったら取り出すよりも入れるほうが問題かも
352 :
323:03/07/06 20:28 ID:kEFDIfkp
>>351 レスありがとうございます。
print "<input type=\"hidden\" name=\"ip\" value=$ip>\n";
print "<input type=\"hidden\" name=\"ua\" value=$ua>\n";
のような形でフォームから普通に配列に入れてテーブルに追加しているつもりだったのですが
DWMXを使ってしまったのでよく解らなくなりました。下記のあたりはどうすればよいのでしょうか。
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
あぼーん
>>352 横レス 失礼
もしかして パワープラント 使ってました?
いや theXXX か゜懐かしかったもので。
355 :
名無し:03/07/07 16:56 ID:+XnYDKVb
>>334 失礼いたしました(´∀`ι
ようやく解決しました。「or」に直し、if文をなくすとOKでした。
ありがとうございました。
PS.
>>337 @fopen=>の@は、エラー抑止させるという機能です。
あぼーん
flock関数が環境依存なので、ディレクトリ操作でロックしようかと思うのですが、
調べたところあんまり評判がよくないような気がします。
他にクールなファイルロックの手段ってありますか?
Apache/PHP さわり初めて3日。
Windows2000Professional sp3
Apache2.0.46
PHP 4.3.2
Firebird 1.5RC3
でPHPソース EUC-JP
データベース EUCJ_0208
magic_quotes_gpc off
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.script_encoding = SJIS
でquery結果を Print するとデータベースから取り出した
漢字の 井(0x88,0xE4) が 遺・(0x88,0xE2,0xE1) に
なるんだが、どこがまずいのかさっぱりわからん…
へるぷみー
全部;閉じて試してみ。
361 :
359:03/07/08 09:14 ID:???
う〜ん、設定全部閉じてもかわらんです。
どうもデータベースの取り出し結果が必ず SJIS になってるような…。
ソース DB
EUCJ EUCJ 文字化け
EUCJ SJIS 文字化け
SJIS SJIS ○
SJIS EUCJ ○
出力設定の変更では何も変化なし。
362 :
nobodyさん:03/07/08 12:11 ID:jypS6q60
copy関数でファイルのアップロードをしているのですが、
msi形式のファイルをアップロードするとコピーされません。
他の形式のファイルでは問題なくアップロードできるのですが、
何か問題があるのでしょうか?
拡張子や 実際のファイルの中身で copyの挙動は変わらないと思うから、
他の原因を探ってみては?
・ファイルサイズ
・自分でmsiを拒否ってた。
・ブラウザで存在確認しただけだった。
・そもそもmsiの中の人など居なかった等々
364 :
nobodyさん:03/07/08 13:18 ID:jypS6q60
>>363 いや、拡張子でなくバイナリ的にmsiが何か拒否られてるみたいなんです。
ためしにpdfファイルを拡張子msiに変えて試したら正常にコピーされました。
逆にmsiファイルをpdfに変えてもダメ。他のmsiファイルで試してもダメ。
LAN内の端末なので実際にファイルがコピーされてないことも確認してます。
365 :
nobodyさん:03/07/08 13:30 ID:syho/6wx
窓を開けばのランキングのリンクってどうやって張るの?
366 :
323:03/07/08 14:24 ID:???
なんとなく解決しました。
フォームから入力するのをやめたらできました。
今、携帯対応版の掲示板をと考えています。
そこで、PHP4.3.2にGD2.0.15のGIFサポート版を
リンクしてコンパイルしようとするのですが、PHPのmakeで
エラーがでてしまいます。どなたか、実践された方居られませんか?
GDの ./configure
./configure \
--with-png=/usr/local --with-freetype=/usr/local --with-jpeg=/usr/local --with-xpm=/usr/X11R6
PHPの ./configure
./configure \
--enable-zend-multibyte --enable-mbstring --enable-zend-multibyte --enable-calendar --with-imap=/usr/local/lib \
--with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-exif \
--with-gd=/usr/local --with-zlib-dir=/usr/local/include \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6 --with-zlib-dir=/usr/local
そのままでは make中
ext/gd/gd.c に undefined reference なエラーが発生するので
展開したGDの gd.* gd_gd.* gd_io.*を ext/gd/ にコピーしてmakeすると
main/internal_functions_cli.c に undefined reference to `gd_module_entry'
なエラーがでてしまいます。どうやら ext/gd/php_gd.h の
extern zend_module_entry gd_module_entry; あたりかなとは思うのですが、
ここで力尽きてしまいました。どなたかご存知の方居られましたら
ご教授ください。なおOSはFreeBSD4.3です。
長文失礼しました。
GIFサポートはこれで、どうやらLZW系のライセンスはクリアしているらしいのですが
ttp://www.rime.com.au/gd/
GIFライセンスって切れたんじゃなかったの?
>>368 切れたには切れた。米UNISYSだけね。
日UNISYSでは、来年の6月19日まで。
370 :
nobodyさん:03/07/11 01:11 ID:jNV68Tt5
d
あぼーん
372 :
nobodyさん:03/07/11 01:37 ID:jNV68Tt5
shift-jisでかいちゃダメなんですか?
eucで書くと何も表示されません。
エンコード変えて表示させてもF5すると、またエンコード切り替わって、
何も表示されなくなってしまいます。
超初心者です。教えてください。
あぼーん
>>372 PHPマヌアルには「SJISでは書かない方がいい」みたいな事が書いてある。
それから、文字化けについては吐き出したHTMLのソースを見れ。
375 :
372:03/07/11 08:16 ID:???
>>374 僕が持ってる本にはSJISで書いてあるんですよ。
SJISだとちゃんと表示されます。
HTTPヘッダーやらPHP内で使用してるcodingやらHTMLのMETAでの指定やらサーバにUpする際のエンコード指定やら
考えるべきは沢山あるな。
で、本にはSJISで書いてあるってどういうこと?
つーか書名キボンヌ。
377 :
372:03/07/12 03:12 ID:???
すいません。よく見たら、EUCで書いてありました。
付いているCD-ROMがSJISとEUCに分かれていて、
僕がSJISを参照しているだけでした。
一応、本の名前は「そのまま使えるPHPサンプル100選」 技術評論社
です。
申し訳ないついでにもう一つ質問なんですけど、PHPは半角スペース
は意味がないんですか?サーバー系のはあるだなんだ〜ってこと
聞いたことがあるんですけど。あー馬鹿っぽい質問だな〜
"mona" . "giko" -> "monagiko" のように文字連結する時や、
$mona = "";
$hanyan = "";
の「=」の位置を揃えたいとかなら 半角スペースの個数は関係ないよ。
p r i nt みたいに、PHP本体の解釈を妨げるような半角スペースの挿入は有害。
PHPが出力したHTMLの半角の話ならWeb制作板にカエレ!!
379 :
372:03/07/12 05:57 ID:???
ありがとう。
ここにいさせてください。
381 :
368:03/07/12 07:38 ID:???
>>369 thanx
そっか来年か・・・またイロイロ復活するんだろうなぁ。
382 :
nobodyさん:03/07/12 09:10 ID:tmgiXdLP
>>380 $_SERVER["QUERY_STRING"]
と
$_SERVER["argv[0]"]
にhogeが入る。
argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな
>argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな
argv:コマンドライン引数
QUERY_STRING:環境変数
そもそも使い道が全然違うと思われ。
384 :
nobodyさん:03/07/12 12:49 ID:qK/j+nNB
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
ブラウザがCookieをOnかOffにしているかを
知りたいんですがどういった命令がありますでしょうか?
1ページ目でcookieをあげる。2ページ目であげたcookieかどうかチェックする。
どの言語でも定型のやりかただと思うよ。
388 :
380:03/07/12 20:21 ID:???
Windows版では、fopen()のパラメータで
バイナリー指定(rbとかwbとか、そんな感じ)
があるので、それ付けてバイナリーとして
扱って見れ
あと詳しく書くのはよろしいが、折れみたいに
PDAで読み書きしてる椰子もおるんで、
適当に文切ってな
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
391 :
nobodyさん:03/07/13 18:53 ID:8ZbS77HL
本当に初歩的な質問で申し訳ないのですが
以下のような index.html と test.php があって
index.htmlのリンクをクリックしても何も表示されないのですが
何か宣言が足りないのでしょうか?
[index.html]
<html>
<body>
<a href="./test.php?mode=home">home</a>
</body>
</html>
[test.php]
<?php
print("$mode");
?>
393 :
391:03/07/13 19:15 ID:???
>>392 ありがとうございました。
まさかバージョン違いだったとは・・・
あぼーん
install.txtどおりにやったのですが、インストールでいきなりこけてます。
解決のヒントをよろしくお願いします。
OS:
WindowsXPPro(sp1a)
Webサーバ:
Apache1.3.27(Windows版)
インストール先C:\Program Files\Apache Group\Apache
PHP(zip):
PHP 4.3.2(Windows版)
インストール先C:\Program Files\php
症状:
phpファイルを実行しようとすると、ダウンロードダイアログが表示されて、プログラムを実行できない。
関係ありそうなこと:
(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。
(2)php.ini-distをphp.iniにリネームし、C:\WINDOWSにいれた。
php.iniのなかで、doc_rootをC:\Program Files\Apache Group\Apache\htdocsに設定。
(3)httpd.confには、
LoadModule php4_module "c:/Program Files/php/sapi/php4apache.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加しています。
>>395 php4ts.dllはpathの通ってるところに放り込むこと。
つか、install.txtちゃんと読んでるようなんで、
そこにはNT系の場合のやり方が書いてあったでそ
デフォでWindowsインストールしてるのなら、
c:\windows\system32ディレクトリ
>>395 >(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。
"php4ts.dll"は、"C:/WINDOWS/system32"フォルダ内に収めて下さい。
後、Apache1なら"AddModule"宣言を忘れていませんか?
398 :
372:03/07/14 04:19 ID:???
>>397 "AddModule"宣言ってなんですか?
400 :
395:03/07/14 10:43 ID:???
お返事ありがとうございます。・・・いまだにハローワールドできません。(苦笑)
>>396 install.txtによると、
So where does php4ts.dll has to be to be properly loaded ?
php4ts.dll is searched in the following order:
1) in the directory where apache.exe is start from
2) in the directory where php4apache.dll is loaded from
3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
%SYSTEMROOT% directory.
Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
4) in your whole %PATH%
で上の設定は2)にしたつもりです。ちなみにc:\WINDOWS\system32にphp4ts.dllをいれても同じ症状でした。
というより、2)の設定で、php4ts.dllの名前をphp4ts.dll.oldなどに変えると、php4apache.dllが読み込めない
とのエラーがでたので、php4ts.dllの読み込みはできていたのではないでしょうか?
>>397 httpd.confにAddModule宣言
AddModule mod_php4.c
を入れると、
[warn] module mod_php4.c is already added,skipping
とでたのでAddModule宣言はコメントアウトしています。
今までずっと疑問だったんですけど
何故PHPのマニュアルって色んなサイトで掲載されているの?
Googleで検索すると同じ(内容)マニュアルばっかり引っかかって悲しい。
>>401 そうやってヒットさせて自サイトのアクセスを増やすため。
しかし掲載しているマニュアルが古いと頃したくなる
>>400 ぅぃ。試しにアナタとほぼ同環境であろうWindowsXP Pro SP1使って
Apache/1.3.27とPHP/4.3.2をインスコしてみたんだが、、
何の問題無くphpinfo()内容が表示出来たぞ?
php.iniに関しては、php.ini-distをリネームしただけで内容の編集すら
していない。一体、どうなってやがる?
ちなみに、俺が設置したパスは以下の通り。
Apache/1.3.27(msi Package) → C:/
# Cドライブ直下
ActivePerl/5.8.0(msi Package) → C:/usr
# これは必要無いけど
PHP/4.3.2(ZIP Package) → C:/usr/local
# Linuxっぽく(Linuxなら、"/usr/local/lib"だけど)
php.ini → C:/WINDOWS
php4ts.dll → C:/WINDOWS/system32
原則的に、
>>397で書いた事以外はしていましぇん。
PHPでテキストカウンタを作ってHTML内に
<?include(counter.php);?>
で挿入しましたが数字がでません。index.htmlをindex.phpに
書き換えたところ、数字がちゃんと表示されました。
これはなぜなんですか?
検索エンジンに登録することを考えるとindex.htmlをindex.phpに
書きかえると面倒なのであまりそうしたくありません。
VineLinux2.6でphp4.3.2使ってるんですが、
使いたいオプションが初回インストールで入れていなかったので
後から追加しよう、と思いやっているのですがphpinfo()のほうが全く変化なしっ! 実際にインスコもされていない模様。
./configure clean して、その後下記の./configureしてもアカン。
こういうもんなんでしょうか?
オプションの後入れは無理ですか?(´・ω・`)
参考(下の行が追加したオプション
./configure --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex
--with-gd --with-jpeg-dir=/usr/lib/ --with-zlib-dir=/usr/lib
>>404 あなたの使っているWebサーバで *.html はphpが動かない仕様になってるからですよ〜
confや.htaccessいじれば*.htmlでphp動かせますよ。
>>405 make installした?
Apacheのrestartは?
407 :
405:03/07/14 17:15 ID:???
>>406 レスありがとうっす。
ええ、もちろん make intall や restart 、これでもダメだったのでOS再起動までしてました。
で、たった今解決してしまいますた。
$ make clean
makeにcleanなんて存在するのを初めて知りました。。(恥
make cleanしたあとはなんてことなく、上手くいきました・・・
408 :
395:03/07/14 20:12 ID:???
>>403 うお。わざわざインスコしてくれたんですか?
どうもすみません。
とりあえず、あとで原因追求するためにhttpd.confとphp.iniのバックアップをとった後、
インストールディレクトリを変えて、
>>397の要領でPHPとApacheの再インストールしてみます。
ついでにApache2でも試してみます。
Apache+PHP+PostgreSQLで幸せになれると思ったんですが、あふぉには険しい道のりらしい。
ウィンドウズにこだわらんと素直にPC-UNIXしたほうがいいんかな。
お騒がせしました。
>>408 つーか何故、WindowsにApache入れてPHP入れる事位に失敗してるのかよく理解
出来ないのだけれども。フォルダに必要ファイルを放り込むだけじゃないの。
httpd.confだって、数箇所書き加えるだけなんだし。
httpd.conf(前略)
#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
(中略)
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c
(中略)
AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php php phtml
AddType application/x-httpd-php-source phps
(後略)
>>confや.htaccessいじれば*.htmlでphp動かせますよ。
どうすれば良いのか教えていただけませんか。
参考になるページとかでも良いんでお願いします。
>>408 またApacheの口が変わった関係があるのかと思ったけど、
Apache/1.3.27 ○PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
Apache/2.0.47 ×PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
#PHP4.2.3が×なのは正常。
条件
・WindowsXP Pro SP1
・php4ts.dllはそれぞれのバージョン同梱のものを、それぞれのsapiディレクトリに
・php.iniは読み込ませない。
・httpd.confはapacheインストール直後のものに以下の2行を加えたのみ
AddType application/x-httpd-php .php .phtml
LoadModule php4_module "c:/usr/php4/sapi/php4apache.dll"
上記を、CGIやshtmlのAddHandlerの下あたりに追記。
#実際にはphpのバージョンごとにphp423とかphp432に変えたり、
#Apache2はphp4apache2.dllを指定してます。
AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
となってるのなら、指定しないでOK。
apacheのインストールディレクトリ化のhtdocsに<? phpinfo(); ?>のスクリプトを
放り込んで、動作するか、正しい値が取れるかで確認。
ところで、httpd.confでは"C:/Program Files/Apache Group"のように
括ればスペース付きのディレクトリもOKだが、php.iniもそうだっけ?
(ディレクティブにもよるかも) あと\と/が必ずしも同義にならない
ディレクティブもあったような気がする。
>>405 どこぞのサイトで「一度インスコしたPHPを再設定する為に再インスコする場
合、元有るファイル群を根刮ぎ消しとかないと設定が反映されてない」みたい
な内容のメモを見た事が有る気がするけど。。実際はドウナンダロウ。
って、解決済だったのか。。(・∀・∀・)
>>410 具体的には以下の一文を".htaccess"に書き加えたりします。
以下では、".php",".phtml","html"の拡張子でPHPを動作させます。
AddType application/x-httpd-php php phtml html
但し、アナタが利用しているウェブサーバで".htaccess"による設定変更を
許可していれば、の話でっせ。
>>411 >AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
>公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
>指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
>となってるのなら、指定しないでOK。
これは知らなかった。公開時期の違いって具体的には、いつといつの違い?
俺が試したのは、昨日そのうちにダウソしたもの(Apache/1.3.27)なんだけど。
>>412 がんばって勉強してみます。
読み方はエイチティーアクセスと読むんでしょうか。
続けてすみません。
.htaccessはセキュリティ上置かない、と言うサーバがありましたが
セキュリティ弱いんですね。
>>414-415 >読み方はエイチティーアクセスと読むんでしょうか。
その通り。
>.htaccessはセキュリティ上置かない、と言うサーバがありましたが
>セキュリティ弱いんですね。
そりゃユーザ任意で好き勝手な設定されたらサーバ管理しづらいからね。
但し、ウェブサーバ管理者の設定によって".htaccess"で変更できる内容を
細かく制限できるので、一概に「セキュリティが云々」というのも、只の
怠け文句の様にしか聞こえんわな。
ああ、そうそう。".htaccess"は、"Apache(アパッチ)"というウェブサーバにて利用できる、
ディレクトリ毎の設定ファイルの事です。
ウェブサーバとしてApacheを採用していない所では使えませんよ。
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
418 :
nobodyさん:03/07/15 11:10 ID:1Nim6t2Z
掲示板を作成しています。htmlspecialcharsでhtmlを無効にしているのですが、
一部のタグを使用できるように独自タグを実装し、
[code][/code]を<pre></pre>タグに置き換えています。改行は<br>に置き換えしています。
問題は<pre>タグ内の改行文字も<br>に置き換えているので、見た目上は問題ないのですが、
コピペすると、改行のない1行としてペーストされてしまうのです。
<pre>タグ内の改行が\nならきちんと改行されてコピーできるのを確認しました。
[code]〜[/code]で囲まれた文字内の改行文字だけを"~"などの
特殊な(使わなそうな)文字に置き換える方法はないでしょうか?
表示時に"~"を\nに置き換えたいと思っています。
情報不足でしたら、ご指摘ください。
windows2k apache 1.3.27 php4.2.3の環境で作業しています。
よろしくお願いします。
419 :
nobodyさん:03/07/15 11:12 ID:DBSRX3iv
ローカルでPHPをテストしたいんですが
Apacheをインストールしないとだめですか?
age
421 :
nobodyさん:03/07/15 12:33 ID:VrVVC0RB
function error($msg){
echo $msg;
exit;
}
を入れると
Fatal error: Cannot redeclare error() になる…
因みに別の設定ファイルにおいて require してます
422 :
nobodyさん:03/07/15 12:36 ID:dUuUFsTq
メールフォームを作ってそこからメールが送られてくるとリナックスサーバに
メール内容を残したいのですがどうすればいいんでしょうか・・・助けてください。
メールフォームからリナックスサーバへメールを送信するんじゃねーの?
で、クライアントがサーバのメールを読んで削除してしまうのを
残したいってことか?
425 :
nobodyさん:03/07/15 14:13 ID:VrVVC0RB
>>421 requireでなくしたら治った…なんだったんだ
426 :
nobodyさん:03/07/15 14:23 ID:dUuUFsTq
>424
だいたいそんな感じなのですが
htmlでメールフォームを作り、送信を押すとリナックスサーバにメールを
送るということなのですが、やり方がわからなくて・・・
メールアドレスに送るのは簡単にできましたが・・・。
よろしくお願いします。
自動生成したテキストファイルをある操作でパーミッションを変えて
追記できないようにしました。ですが次回そのファイルにアクセスしよ
うとした時にパーミッションを変えた情報はどこにも残していないので
書き込みモードで開くとpermission deniedのエラーになります。
if(!($fp = fopen(***,**))){ error_trap()}
してもエラー処理は続行されますがエラー文は返ってきます。
これを回避するにはどうすればよいでしょうか?
パーッション情報を得て回避させるか完璧なエラー回避の構文に
するかだとは思うんですが具体的な知識がないので困ってます。
ググっても良い解決策は見当たりませんでした。
よろしくお願いします
428 :
427:03/07/15 14:43 ID:???
ちなみにデバッグの度にphp.iniを書きかえるのは避けたいです
>>427 書き込む前にパーミッションを変更したらええやん。
>>427 is_writable("file")で書き込み可能か調べればいい
431 :
427:03/07/15 17:21 ID:ptJK4UDQ
>>430 おお!そんな手もあるんですね。ありがとうございます。
応急処置でstat(filename)でやってみましたがそちらに切り替えて
みます
インストールできません
Windows 2000
php 5.0.1b1-win32.zip
apache 2.0.47
手順どおりphpのファイルを展開。
apache起動時にcannnot load c:/php/sapi/php4apache2.dllが
ロードできませんとのエラーメッセージ。
ファイルはあるけど、ロードできないです。
433 :
427:03/07/15 17:54 ID:ptJK4UDQ
>>432 PHP5を入れたいのにphp4apache2.dllを組み込もうとしてるの?
もしPHP4の間違いならすでに動かしている方のhttp.confの一部を
見せてもらうとか
>>422 >>426 何がやりたいのか?
そもそもメールフォームからのメールの送信は出来ているのか?
そのメールをサーバに置いて何かしたいという事なのか?
>>434 Download sectionで一番上にあったから5をとったけど
4のがいいのか。
変えてみます。
437 :
395:03/07/15 18:19 ID:???
原因がわかりました。
httpd.confの
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
をいれる位置が問題だったみたいです。
最初は176行目あたりに
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
としていたのですが、
>>411を参考にして、CGIやshtmlのAddHandlerの下あたり848行目に追記したところ
うまくいきました。なんか納得いきませんが。
ちなみに、Apache2ではこのような問題は発生せずすんなりでした。謎。
>>434 バージョンsageたら上手く逝った。
産休
PHP5は大規模商用サイトに向いているかもしれんが構造化に関する
部分以外はまだ何が変わったか調べる手間がもったいないと思う。
PHP4.3をいじくり回してみてある程度飲み込めてからでいいんじゃない
すか?
440 :
nobodyさん:03/07/15 19:21 ID:ptJK4UDQ
PHPコンパイラがホスイ
$line =~ s/^(..)(...)//;
正規表現してください,お願いします。
また見にきたらスレ違いでした。
すみませんです・・・
443 :
nobodyさん:03/07/16 00:40 ID:4pRAgQGC
少し板違いかもしれませんが、ここぐらいしか思い当たらなかったので・・
あるデータベース(何故か不明)のテーブルを書き出したtxtファイルがあり、
それをPosrgres+PHPのシステムに移してほしいと頼まれました。
(手元にはそのtxtファイルしかなく、元のデータベースは既に無いらしい・・)
が、あるフィールドがtextareaだったらしく、途中で改行が入っているのです。
id name abc(textarea) tel
1 あああ あああああ 11111
2 いいい いいいいい 22222
3 ううう うう −−−(ここで改行)
\ううう 33333 −−−(改行の続き)
4 えええ えええええ 44444
といった感じです。
Excelにインポートして少し配置を変えてからエクスポート、それから
COPYコマンドで入れ直すつもりだったのですが、途中の改行が邪魔をして
(上の例だと、「¥ううう」が、あたかもidのように居座っています)
困っています。しかもレコードは5000件ほどあり、手で直すわけにも・・・
どうにか上手くExcelでいじれる形まで持っていけないでしょうか?
お願いします。
444 :
415:03/07/16 00:48 ID:???
>>416 どうもありがとう。
少しづつですがわかってきている状態です。
ちなみに僕が使っているとことはファイル設定が出来るそうです。
PHPどころかプログラム初心者なのでめちゃ苦労している状態です。
そもそも、PHPを始めたのはDBを作りたかったからです。
それ以外にもPHPが優れているところはどこなのでしょうか?
皆さんがなぜPHPをやり始めたのか聞かせてもらえませんか。
に比べてそれ以外に
445 :
415:03/07/16 00:50 ID:???
ごめんなさい。
>>に比べてそれ以外に
↑これいりませんねw
>>443 データもってきたアホにやらせれば?
ってのは冗談で
本来の行末のフィールドに絶対改行が入らないなら、
一行ずつ取っていってフィールド数がたらんかったら
次の行を追加するようなスクリプト作れば?
>>443 改行を取り除くっていうかデータを整形するスクリプト
書けばいいんちがう?PerlでもPHPででも。
448 :
447:03/07/16 00:54 ID:???
かぶった。スマソ。
449 :
nobodyさん:03/07/16 01:32 ID:APFwOkck
>>443 というよりタブ空文でも改行でもデータを拾うようにして4フィールど
毎に1つ目のフィールドが数字である事をチェックして真なら改行。
これでよいはず。前述でも同じ結果が得れたらなんでもいいだろうけど
>>449 ほげほげ
1
1
ってデータが入ってたらどうすんだべさ?
>>444 俺の場合、PerlよりハイカラなイメージがPHPに有ったからというだけの理由。
ちなみに今でもド素人の部類に入ると思います。Perlの勉強すらすっとばして
いきなりPHPから始めちゃった訳ですから。
そもそも、自前でアクセス解析スクリプト程度のものを作れればいいかなー、
程度の目標だったんで上達する事も無く。
今借りてるレンタルサーバがSQLに対応してくれていないせいも有って、データ
ベース系を勉強する機会も興味も沸かないし。
452 :
nobodyさん:03/07/16 01:48 ID:APFwOkck
>>450 データ4個周期を基本にチェックしてるわけだし。よほどいいかげんな
DB処理でないかぎりIDとデータが混同される事はないでしょ。
>>452 id name abc tel
1 あああ あああ(改行)
1(改行)
1 090-xxxx-xxxx(改行)
2 あああ あああ 090-xxxx-xxxx(改行)
ってのを
split /\t|\n/
ってやるとややこしくなんね?
違うやり方をいってるならスマソ。
454 :
415:03/07/16 02:55 ID:???
>>451 そうなんですかw
僕の方は幸い、なんでも出来そうな環境が整っています。
DBまでの道のりは長そうなので、まず何Pかカウンターを作ってみました。
で、次なんですけど、何をやろうか迷っています。皆さんの参考を教えてください。
まだ、面白いと思える段階ですw
455 :
nobodyさん:03/07/16 09:14 ID:APFwOkck
>>453 まず1行分と予測する生データを4つバッファリングして5つ目のデータ
を参照。5つ目がIDデータだと判断できたら1行分を修正済みを格納す
る配列へ代入。もし5つ目がIDデータでないなら4つ目とくっつける。
で、6つ目をチェック。以下同様。
根本的に異常なデータが混じっていない限りきっちり修正出きると思う。
処理はややこしいかもしれないが確実。無条件な状況判断ではどこか
でおかしな処理をしやすいから串だんごみたいにして1本ずつ丁寧に
修正してやるとよいかも。
2ch互換スクの故障データの修正で体験した
456 :
nobodyさん:03/07/16 16:45 ID:IyV1t1TM
Cの__LINE__みたいなマクロって存在しますか?(現在のスクリプト内の行No)
自作のエラー用の関数で、何処で起きたか表示させたいのです
457 :
418:03/07/16 17:05 ID:???
418です。
力業っぽいですが、解決しましたのでお知らせします。
#<pre class="code">〜</pre>に置き換え後、
$msg = str_replace("\n", "<br />", $msg);
$array = split("pre", $msg);
for($i = 0; $i<count($array); $i++){
if(strstr($array[$i], "class=\"code\"")) $array[$i] = str_replace("<br />","~~", $array[$i]);
}
$msg = join("pre", $array);
表示処理で
$msg = str_replace("~~","\n", $msg);
ありがとうございました。
変数を明示的に宣言しないと使えないようにする(エラーがでるようにする)ことは出来ないのでしょうか?
(C言語で言うところの int i; のように)
タイプミスで一文字違っただけで数時間も悩むのはもうイヤ!
>>459 get_defined_varsでいいんじゃないの?
WindowsCE向けのphpはありませんか?
もし存在するならどこにあるか教えてください。
463 :
nobodyさん:03/07/18 23:43 ID:Uzp0kmuO
PHPの事全く分かりません。
Mac OS ] 10.2.6ですが、
PHPのバージョンてどこをみれば分かるのですか。
あぼーん
>>462 うーん、Perl@CGIなら僕も聞いたことあるのですが、、、残念です。
467 :
7:03/07/19 07:32 ID:???
>>463 CGI/CLIなら、php -v
関数:phpversion()
定義済み定数:PHP_VERSION
ジャンプさせるために
header("Location:
http://hogehoge.com");
をつかってみたのですが、これだとリファラが残ってしまいます。
ソケット関数使わずにリファラを消すにはどうしたらいいですか?
>>469 困って問題があるのか?
不特定多数を別のサイトに送り込んでカウンタを無駄に上げたりするような用途位のような気がするんだが。困るのは。
それだったらソケット使ってます。
てか、もう一つページを挟めばいいかな。
適当にがんがって見ます。
472 :
PHP初心者:03/07/23 21:32 ID:8eneuWCZ
上でもGETやPOSTについてでてますが、
↓は上のフォームに記述して送信した文字列を下のフォームに表示する、
というものですが、
<body>
<form method="GET" action="form.php">
<p><input type="text" name="text1" size="40"> <input type="submit"
value="送信します" name="b"></p>
<p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>
</form>
</body>
実行すると、
<b>Notice</b>: Undefined index: text1 in <b>C:\Apache Group\Apache\htdocs\samples\form.php</b> on line <b>11</b><br />
というエラーが出ます。どこがおかしいのか、わからなくて困ってます。PHPは4.3.2を使ってます。
よろしくお願いします。
>>472 取りあえずどこが11行目か解るソース出せやボケ。
あぼーん
>>473 <p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>
ここが11行目です。
だめだこりゃ
>>472 そのフォームはtext1を送信するのか受信するのかハッキリしろや
マニュアルっていつの間にUTF-8になったの ?
namazuで検索したいのでEUC版が欲しいのですが・・・
PHPを勉強したいんですけど、どの本がいいですかね?
<?=$a?>の方が短くてすき
>>472 とりあずNotice出したくないんなら変数を宣言しろ。
if(!isset($_GET[text1])) {$_GET[text1]="";}
if(!isset($_GET[text2])) {$_GET[text2]="";}
483 :
482:03/07/24 11:06 ID:???
確認したらだめだった
if(!isset($_GET['text1'])) {$_GET['text1']="";}
if(!isset($_GET['text2'])) {$_GET['text2']="";}
こうだね。
if(!isset($_GET['text1'])) $_GET['text1'] = "";
if(!isset($_GET['text2'])) $_GET['text2'] = "";
むしろこうじゃ無いのかと。
@$_GET['text1'];
@$_GET['text2'];
でもいいけどね。
485 :
472:03/07/24 23:31 ID:???
>>482-484 @$_GET['text1'];
で解決しました。どうもありがとうございました。
include についての疑問です。
includeは常時、ファイルをincludeして監視状態なのでしょうか?
ということは、大規模になると、遅くなる原因になるのかなと思いまして。
たとえば、config.phpが、
//config.php
$hoge = "2ch";
$moge = "3ch";
・
・
・
-------------------------
この時、
include "config.php";
echo $hoge;
それとも、
if($hituyou){include"config.php";}
echo $hoge;
こんな感じ。
大規模の時に下の方が負担は軽減される。
と妄想してるんですが、本当はどうなんでしょうか?
>>486 includeはその時点で全て読み込まれるんじゃ・・・
そのincludeファイルが必要になった時点で読み込めばいいと思うけど。
そんなに遅くなる原因にはならないと思うけど。
488 :
nobodyさん:03/07/25 09:51 ID:wJ5ItSln
質問させてください。
phpでgzip圧縮通信がしたくて、php.iniファイルの設定で、
output_handler = ob_gzhandler
としたのですが、これで正しく圧縮通信ができるのでしょうか?
もしできているのなら、それをどうやって確認すればいいでしょうか?
環境はRedHat9.0 Apache2 PHP 4.3です。
489 :
nobodyさん:03/07/25 10:53 ID:TM9efvfm
質問です、宜しくおねがいします。
phpのバージョンを4.2.3から4.3.2にアップグレードさせようと考えています。マニュアル、FAQ等でその方法を調べてみたのですが、探し方が悪いのでしょうかイマイチ明快な答えが見つかりません。
一応以下に示す方法を実行しよようと考えているのですが何か安易な気がしてなりません。お気付きの点がありましたらご指摘ください。
私的には、3. でmake clean して前のヴァージョンの makeファイルを削除するのがミソかなと思っているのですが…。
これでは前のヴァージョンをアンインストールすることにならないような気もします。そもそも前のヴァージョンを削除する必要があるのかどうかすら分かりません。
勉強不足で申し訳ありませんが、皆様宜しくお願いします。(昨夜一度質問してみたのですが、どこの板に書いたか見失ってしまいました…)
環境:RedHatLinux7.1+apache1.3.27+php4.2.3
1.まずhttpdを停止する。
$ su
# /etc/init.rd/httpd stop
2.php4.2.3のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.2.3
3. make clean でmakeファイルを削除する。
# make clean
4.php4.3.2のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.3.2
5. ./configure を実行する。
# './configure' '--enable-mbstring' '--enable-mbregex' '--enable-zend-multibyte' '--with-pgsql' '--with-apxs=/usr/sbin/apxs' '--without-gd' '--with-zlib' '--with-openssl' '--enable-versioning'
6.make 、make install を実行する。
# make
# make install
7.httpd を起動する。
# /etc/ini.rd/httpd start
あぼーん
>>489 俺、make cleanやってねーよ。でも動いてるけど。
どうなんだろうね? 試してみたら?
あぼーん
make clean 必要無いよ
make clean が何をやっているのか考えてみましょう
index.phpから、count/count.phpを呼び出してカウンタとして使おうとしているのですがうまくいきません。
index.phpからinclude_onceで読むのはうまくいくのですが、
count.phpからこれと同じ場所にあるデータファイルのcount.datを開こうとして
$fp =@fopen( "count.dat", "r") ;
とすると、
Warning: fopen("count.dat", "r") - No such file or directory in *********/count/count.php on line 42
となってしまいます。includeされたファイルの中で別のファイルを開く場合、パスの表記はどのようにすれば良いんでしょうか?
読み込み元のファイルのディレクトリを基準にするのか、読み込まれたファイルのディレクトリを基準にするのかが分かりません。
と言うより後者ならこれでうまくいくと思うのですが、これだと一つのカウンタで複数ページをカウントさせるのに
面倒な気がするので、もっと良い方法が無いかと探しているのですが…
495 :
482:03/07/25 21:19 ID:???
>>494 count.datを絶対パスで読み込め
496 :
:03/07/25 23:54 ID:???
↑非常にいい子とイった!
497 :
nobodyさん:03/07/25 23:55 ID:OQ729f+c
ズブの初心者なんですが
ネット上によくある、フリーCGIの配布サイトでは時々
「セキュリティホールが見つかったのでバージョンアップしてください」
というようなことが書かれてたりしてますが、
PHPでもセキュリティホールはあるんですか?
あるとしたら、どんなのがまずいんでしょうか
とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、
と書いてありました
フォーム入力を受け付ける、掲示板みたいなものを作る場合、タグを
除去すれば大丈夫ですか?
499 :
494:03/07/26 00:00 ID:???
>>495 分かりました。その方法でやってみます。
ただ思い付きでいろいろ足して分かんなくなってきたので、
一から書直そうと思いますが。ありがとうございました。
>>498 すいません
おっしゃる意味がわかりません
なんとなく気が向いたのでマジレスしてみるテスト。
>>502 PHP自体のセキュリティーホールとヘタレなコーディングによる
セキュリティーホールを混同してない?
「あんめろ」は「あんたには向いてない、やめろ」の意。
(民明書房刊「よくわかるセキュリティホール」より)
>>503 回答ありがとうです
自分が知りたかったのは、へたれなコーディングによる…の方でした
どんなコーディングがマズイのかな、と思って
「あんめろ」身に沁みました
>>497 >とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、
なんでマズイの? 俺、吐き出してる。吐き出してる。
あぼーん
あぼーん
508 :
nobodyさん:03/07/26 03:13 ID:83bOjRPY
PHPにファイルのアクセス時間と更新時間を変更するPerlのutimeに
相当するものはない?
てっきりfileutimeみたいな関数があるだろうと思ってマニュアルを
見てみたがどこを探してもない。
どうやって変えるのだ??
509 :
nobodyさん:03/07/26 03:37 ID:VZ1x6qD8
>>508 んなこたーない。
"ファイルシステム関数"という章をよく見る。
510 :
nobodyさん:03/07/26 21:05 ID:92eVqrLv
>>510 test.phpの内容を
<?php
phpinfo(32);
?>
にして結果見てみればわかる。
あぼーん
513 :
nobodyさん:03/07/27 04:37 ID:C5x2VQP+
>>509 更新変更はtouch()でやるのは分かったんだが、
最終アクセス変更をするのがやっぱり見当たらない。
>>513 Windowsなら単にreadしたりファイルサイズ取得関数とか使えば良し。
ファイルのプロパティ見てみ?いつも現在時刻だ。
515 :
nobodyさん:03/07/27 22:48 ID:0kmBdvtl
>>514 ファイルの中身を修正する前に、ファイルの時間情報を取得しておいて
処理が終わった後にファイルの時間情報は修正前のままにしておきたい
って場合にどうすればいいのかと。
つまり最終アクセス時間と最終更新時間を過去の時間に設定したい訳ですな。
Perlだとutimeで両方、任意の時間を入れてファイルの時間情報を修正できるけど、
PHPだとtouchで最終更新しか変更できないみたい(見つけられなかった)。
ちなみにPerlからPHPへの移植をやってる過程で出てきて???になった。
やってる移植では更新時間を見て処理に使ってるから、最終アクセスは
なくてもいいけど、なんらかの理由で最終アクセス時間の変更が必要に
なった場合はどうするんだろ?
touch()の3つ目の引数として最終アクセス時間
(UNIXタイムスタンプ)を指定できます。
しかしなんで公式のマニュアルには載ってないんだろ?
探した?あるよ。
あ、ほんとだ。いつもはmanual/ja見てるけどmanual/enにはばっちり載ってますね。
翻訳の遅れがあるみたいなのでこれからは英語版を見るようにします。
519 :
515:03/07/28 00:11 ID:???
私も確認。Thanks. 本家php netからマニュアルにアクセスすると
自動で日本語版に切り替わるんだな。
touch (PHP 3, PHP 4 )
touch -- Sets access and modification time of file
bool touch ( string filename [, int time [, int atime]])
http://www.zend.com/manual/function.touch.php 日本語訳マニュアルをローカルに置いてそれを参照してたから
見つけられなかったよ。
英語版も随時参照すべしと自分に言い聞かせた次第。
ぅええ?あるよ。日本語も。
521 :
515:03/07/28 00:19 ID:???
>>520 今ボチボチ本家見ててあるのに気が付いた。
普段、本家なんぞ見ちゃいないって事がバレバレな私。
523 :
510:03/07/28 00:38 ID:???
phpで掲示板を作っているのですが、書き込みで「ソアラ」などとすると
ソ\アラというようにdataファイルに記録されています。
perlでつくった掲示板では普通にソアラと書き込めたんですが。
ローカルでshift-jisで書いております、eucでも試してみたんですがeucで保存すると
表示されないようです。php4.3.2を入れております。
ご助言願えませんか、ソースは下記のような感じでやってみました。
$carname = $_POST['carname'];
$newdata = implode(",", array($bango,$carname,$rap));
$kakikomi = fopen($datfile, "w");
rewind($kakikomi);
fputs($kakikomi, "$newdata\n");
>>524 国際化非対応だと文字が化けたりするもよん。
PHPはEUCで書く方が安心かと。
S-JISで受けたデータはjcode.phpでEUCにしてから内部で扱う。
んで、書出すときにまたEUC→S-JISに変換、と。
と言う事をどこぞで見たのだが。
526 :
524:03/07/28 17:36 ID:???
>>525 ありがとうございます。EUCがいいんですね、調べてみます。
素人にとって文字コードは第一関門なんですかね。
質問です。
HTMLに値を埋め込む時に
<?= hoge ?>
という書き方の出来るサーバーと出来ないサーバーがあります。
www.php.net のマニュアルを見ると asp_tags という設定ディ
レクティブで設定可能なようなのですが、双方のサーバーで
phpinfo() で設定を確認すると両方offになっているのです。
出来るサーバーの方は Apache 1.x 系にPHP4.2.0 で、
出来ない方は Apache 2.x 系にPHP4.2.2です。
php.ini は特に置いてません。
上記の記法の出来る出来ないは asp_tags 以外に何か設定が
あるのでしょうか?
エエエェェ!!
529 :
525:03/07/28 18:30 ID:???
>>526 俺も初心者なんで、あまり詳しい事は書けませんけど、色々とチュートリアルを公開しているサイトを見る限りでは
初めからEUCで扱う(無論出力されるHTMLなんかも)か、せめて内部ではEUCとして扱う方がトラブルが少ない様です。
元々UNIX系はEUCだったと思うし、jcode.phpは見た感じそれほど使い方は難しくなさそうなんで、間に噛ませても良いんではないかと。
このスレの前半の方にもそんな話があったので、探してみると役に立つやも。
530 :
:03/07/28 18:39 ID:???
mb関数は使えんのか?
>>527 short_open_tag
>>524 $carname = strip_slashes($_POST['carname']);
532 :
nobodyさん:03/07/28 19:27 ID:hpj2UE6D
PEARとかPHPLIBとかよく聞きますが、PHPのクラスファイルを
ライブラリにする方法を知っていたら、誰か教えてくだすぁい。
あぼーん
2ch型というかほとんど2chと同じphpの掲示板ってないでしょうか。
自分でつくってるんですが行き詰まりを感じてしまって
535 :
:03/07/29 00:03 ID:???
>530
THX
short_open_tag でビンゴでした。
マニュアルでも asp_tags のすぐ上に書いてあったし(ウトゥ
538 :
:03/07/29 23:52 ID:???
>>537 設置者に聞けよ。
GDかなんかじゃないんか?
文字列中の空白、カッコ、ハイフンを削除したいのですが、もっと上手い方法ありませんでしょうか?
$str="ほ げ(ほ げ)-ほ げ";
$char1=" ";
$char2="(";
$char3=")";
$char4="-";
$char5="";
$str1=str_replace($char1,$char5,$str);
$str2=str_replace($char2,$char5,$str1);
$str3=str_replace($char3,$char5,$str2);
$str4=str_replace($char4,$char5,$str3);
echo "$str4";
540 :
:03/07/30 01:33 ID:???
541 :
nobodyさん:03/07/30 02:30 ID:2CHAOdfR
>>539 マニュアルより
>PHP 4.0.5 以降では、str_replace() への全てのパラメータは
>配列とすることが可能です。
あぼーん
543 :
nobodyさん:03/07/30 03:43 ID:+xTBPNpJ
PHP で perl の様な配列のスライスへの代入って出来なかったっけ?
昔、phpのメーリングリストで見たような気がしたんだけど、
googleで調べたら出来ないって書かれたサイトが出てた。
>perl の様な配列のスライスへの代入
ここを説明しないと。(w
@hoge{ 'a', 'b' }
こういうことあじぇ?
546 :
nobodyさん:03/07/30 13:50 ID:WV3lkWy5
PHP4.3をWinにインストールしてANHTTPD使ってCGIモードで
動かしてます。とりあえず
<?php phpinfo() ?>
は正常に表示されるので動作自体はしてると思うんですが
<? echo "てすと"; ?>
とかやると思いっきり文字化けしてしまいます。
winnt/php.ini へも日本語が使えるように設定はしたんですが
(default_charset = "Shift_JIS"とか)
なんか他に設定すべきところとかありますでしょうか?
547 :
nobodyさん:03/07/30 16:24 ID:L2kAsoKq
@hoge{ 'a', 'b' }
ここを説明しないと。(w
549 :
nobodyさん:03/07/30 19:01 ID:QNOIDVkY
PHP初心者です。
レッツPHPのちゅーとりあるで紹介されている
一行掲示板をいろいろとこねくりまわしているのですが、
オート・リンクの機能を付けることに躓いています。
ご指導の程、よろしくお願いします。
あぼーん
あぼーん
>>549 正規表現で文字列を調べて、URI(URL)があれば
それを抜き出して、アンカータグと組み合わせて
置換する。
マニュアルで置換をする正規表現関数を調べて、
それが実際どのように使われているか、レッツPHPさんの
他の配布スクリプトを見て研究してみては?
553 :
539:03/07/30 21:11 ID:???
>>552 ご指摘を受けて、
マニュアルを読みましたら、つぎのような部分がありました。
例 3URLをリンクで置換する
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
これでうまくいきました。
ありがとうございます。
555 :
sage:03/07/30 23:32 ID:EqJM85qg
>>543 できない。
あればあったで便利だし、perlからの移行が楽だが
phpは配列操作の関数が比較的豊富なので
なければないで何とかなる。
556 :
nobodyさん:03/07/31 02:11 ID:DkZYq6f/
送られてきた変数を全部表示したいんですけど、
どうやったらよいでしょうか。
>>556 phpinfo() や foreach($_REQUEST as $value)
ここはひとつ豪快に var_dump(get_defined_vars());
phpで2進数の表記はどうすればいいのでしょうか?
echo '01010101';
>>559 $num = bindec("10101010");
562 :
nobodyさん:03/07/31 14:45 ID:UI9TuZ6S
初心者です。
特定の文字列から特定の文字列までを置換したいんだけど、どうすればいいでしょうか?
hogehoge<REPLACE>2ちゃんねら</REPLACE>hogehoge
↓
hogehogeDQNhogehoge
こんな感じで。
あぼーん
564 :
nobodyさん:03/07/31 15:09 ID:UI9TuZ6S
562です。
追加質問していいですか?
置換した回数をカウントしたいのですが、str_replaceやereg_replaceでは
全置換されてしまうじゃないですか。
ひとつずつ置換をする関数ってないのでしょうか?
よろしくおねがいします。
>562
preg_match
preg_match_all
あたりを見てみては?
566 :
565:03/07/31 17:42 ID:???
補足
正規表現が良くわからず調べてもう〜んと唸るようであれば、泥臭くやるしかないかな。
strpos 等で開始タグの位置を見つけて前後の文字列で置換する文字列をサンドイッチ
して元の変数に格納という一連の処理を開始タグが見つかる限り繰り返せば結果は得
られると思うけど。
ただメモリーへのアクセスが頻繁になるからWebなんかで不特定多数のアクセスがある
ような処理につかうのはおすすめできない・・・。
567 :
梨:03/07/31 17:52 ID:Vgd/NQeb
fsockopenでHTTP/1.1接続を試みた場合に、レスポンスボディに、
数KB(?)に一度、 \nXXX\n のようなゴミ文字列が挿入されてしまいます。
(\nは改行で、XXXの部分は [0-9a-f]{2,3} のような文字列)
環境はWindows 2000で、
PHP 4.3.2 (cli) (built: May 28 2003 15:10:38)です。
再現は(他人様の物で恐縮ですが)以下のソースでも可能です。
tp://www.spencernetwork.org/memo/tips-3.php
ただし、HTTP/1.0接続をおこなった場合にはゴミは発生せず正常動作します。
phpのバグを疑った所、fsockopenがメモリを破壊する問題は、
4.3.0で発覚して4.3.2では解消されているとの事でした。
わかる方いましたら教えてください。
わからなかったらとりあえず再現を試してくれる方募集っす。
>567
とりあえずリクエストするサンプルサイトのURLをキボンヌ
よくよく考えてみたら PHP4.3.x 系の入ってるマシンが無いわ(爆)
FreeBSD4.4
Apache たぶん 1.2
PHP 4.2.0
で2chの1000までいったスレをそのスクリプトで表示してみたがゴミは無いようだった
考察はちょっとまってな。
あーよく見たら上のソースは HTTP/1.0 で接続してるのな。
これを HTTP/1.1 に変えてやってみればいいのか・・・
あぼーん
あぼーん
>567
とりあえず
>570 の変更をした上で >569 のように2chのスレを取得してみたらたしかにゴミが検出されたよ。
まぁ正確にはゴミじゃあないんだろうけどね。
ちょっと調べてみるよ。
574 :
梨:03/07/31 18:39 ID:???
>>573 スンマソ。お手数かけます。
yahooが大丈夫だけど、php使ってるサイトはだめだった。関係ないか?
ちょっと、アクセス先については根拠のある事が言えない。
>>569の環境で出るという事であれば、バグでは無いっぽいのかな。
あとで他の言語でも試してみます。
まぁ、fsockopen+HTTP/1.1を使うヤシでchunkを知らないわけは無いと思うから
chunkの線は無いと思うが、がんがってphp4.3.2のバグを探してくれ。
576 :
573:03/07/31 18:44 ID:???
>575
漏れ的には chunk っぽい気がしてるんだけどね(爆
HTTP/1.1 なんて生で触ったこと無いからプロトコルから調べてるよ
577 :
573:03/07/31 18:52 ID:???
とりあえずこちらで出てる症状としては4096バイトごとに
\r\n1000\r\n
という文字列が挿入されてるってことかな。
fgets の読み取りバイト数かと思って 512 と 1000 で試したけど変化なし。
マニュアルの fsockopen では fread を使ってたので試しにこれに変えてみても変化なし。
ちなみにレスポンスヘッダは
HTTP/1.1 200 OK
Date: Thu, 31 Jul 2003 09:41:49 GMT
Server: Apache/1.3.26 (Unix) AuthMySQL/2.20 PHP/4.1.2 mod_gzip/1.3.19.1a mod_ssl/2.8.9 OpenSSL/0.9.6g
Last-Modified: Wed, 30 Jul 2003 12:53:28 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Pad: avoid browser bug
こんな感じで返って来てる。
578 :
梨:03/07/31 19:01 ID:???
漏れが悪かった。
ともあれ、ありがd
>>573,
>>575 RFC2068にも書いてある(RFC2616を読んでね)けど、
CRLF受信バイト数の16進CRLF
が来てるって事よね。
ちょいとクライアント側の正しい実装がどんなのになるのか調べ中。
579 :
nobodyさん:03/07/31 22:01 ID:CgHqCW+i
フォームフィールドに"ソ"を入力して送信すると
"ソ\"になってしまいます。Mysqlにも"ソ\"そのまま入ります。
php.iniのmagic_quote行をoffにしてやると直ったんですが
そのままMysqlに登録すると化けてしまっています。
stripslashes()をつけてやるとこれも直るんですが
フィールドごとにいちいちつけるのは面倒くさいので
他に何かいい方法はないでしょうか?
あぼーん
あぼーん
582 :
梨:03/07/31 22:23 ID:???
使い捨てツールだったので、さぼってHTTP/1.0で実装しますた。スンマソ
>>579 mysqlのcharset設定をsjisにするとか。
583 :
梨:03/07/31 22:23 ID:???
ごめ。
「つーかeucにしろよ」と言いなおす。
584 :
Re: 配列のスライスに代入:03/08/01 02:01 ID:S9mJFNQO
返事ありがとぉ。
出来るかどうか知りたかっただけでした。
一応、マニュアルとMailing-listのアーカイブ検索したけど、それらしい記述がなかったので。
ここが最後の頼みだったんだけど、やっぱ出来ないのかぁ。残念。
あぼーん
あぼーん
>579
現象的には確か「ソ」の2バイト目が「¥」のコードと
同じなんでエスケープ処理されるってことだな。
だから stripslashes すれば消えるのはあたりまえで、
もし鯖の設定を変えられないのであればいちいちかか
なきゃならんのはしょうがない。
まぁめんどくさかったら $_REQUEST をループ回して
格納し直したらどうよ。いろんなソースに書かないと
いけないとしてもコピペで済む(あるいはクラスを書くかだな)。
∧_∧
( ^^ )< ぬるぽ(^^)
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
保守
【PHP】初心者コーナー 3 Released【スローモード】
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
>>592 え?この板って1時間でスレ落ちするほど保守せなあかんの?
594 :
nobodyさん:03/08/03 02:20 ID:XIyh3dEf
Parse error: parse error, unexpected T_CONCAT_EQUAL in …
といわれたんですがどういう意味でしょう?
バージョンは4.3.3RC2です。
595 :
:03/08/03 06:33 ID:???
>>594 文法エラーです。
…で予期しないT_CONCAT_EQUALが
596 :
nobodyさん:03/08/03 21:48 ID:fj+ph+5s
上でも2回ほど出てる話題なんだけど、自分で調べたことと
ちょっと食い違いがあるんで質問させてください。
phpで掲示板作った場合、書き込んだ文字列に¥が勝手に
入ってしまう現象って、レンタル鯖での解決方法はstripslashes()関数を
つけることのほかに.htaccessで
php_flag register_globals on
php_flag magic_quotes_gpc off
と書いてアップすれば防げるって
ttp://www.komonet.ne.jp/report.htm とか
ttp://www.e-provider.jp/server/php.html に書いてあるんだけど、public_htmlフォルダ内に.htaccess置いても
防げません。.htaccessはメモ帳で「.htaccess.txt」として作成して、
アスキーモードで鯖にアプ後「.htaccess」にリネームしました。
テスト用のbbstest.phpは同じディレクトリにあります。
書くのはあの2行だけでいいんでしょうか?とりあえず2行だけに
しときましたが。
ちなみに鯖はaaa!cafeで、鯖HPのFAQには.htaccessは使えますって
書いてありました。
初心者な質問ですみませんが識者の方、どなたかお答え願えませんでしょーか。
>>596 aaaの.htaccessは当てにしない方がいい。
598 :
nobodyさん:03/08/03 21:57 ID:fj+ph+5s
…なんかディレクトリ指定とかしなくちゃいけないっぽいですか?
中途半端な質問ですんまそん。
調べてもどこもかしこも「php_flag〜の行を“含む”.htaccessファイルを」
と言ってるんで他にも書くことありそうだとは思って調べてるんですが…
.htaccessの正確な書き方が書かれたサイトが全然みつからん…
ミケネコのなんとかは分かりづらすぎ…
599 :
nobodyさん:03/08/03 21:59 ID:fj+ph+5s
>>597 アア、俺書き込み多すぎ。痛い。
そうですか、なんかあそこFAQの答え方がなげやりですもんね。
自作bbs置く香具師はめんどくてもコード書けってことか。ちくしょう。
>>596 書き方自体はそれでok
あとはユーザディレクトリの.htaccessが有効によまれるのか、
設定の上書きを許可しているのかとか
その辺
>>579 遅いレス。mysqlの「ソ」は私も悩んだ。
文末が「スマソ」とか「日本代表」だとエラーが出るんですよね。
phpinfoでmysqlの"Client API version"を4.*にすると症状は治まります。
どうも3.*のバグ(?)のようです。
mysql4.0+php4.3.2だとconfigureで--with-mysql=/usr/local/mysqlとかするといいみたいです。
602 :
nobodyさん:03/08/04 01:07 ID:QF7utWcH
>>600 サンクスコ
結局stripslashes関数で回避しました…
603 :
579:03/08/04 10:05 ID:s0qIBXCy
>>601 ありがとうございます。
バグだったんですか^^;
どおりでおかしいと思いました。
では一度4に変えてみます^^
604 :
nobodyさん:03/08/04 18:00 ID:8zL9M6pT
スクリプトでgdライブラリがインストールされてるかどうかを
判断するにはどうした良いですか?
605 :
:03/08/04 18:24 ID:???
>>604 適当なイメージ関数が定義されているか調べれ
PHP5でregister_globals=On に変えても パラメータを渡せない
んだけど、もしかして無くなったのかな、どうよ。
608 :
nobodyさん:03/08/05 08:57 ID:V6DdtSg7
PHP初心者です。メール送信フォームの確認画面を設けているのですが、
$html="
<pre>
<br>
<form method=post action=$file>
<table width=480 border=0 align=center>
TEXT1: $r[0]
</table>
</form>
</pre>
";
と記述するとTEXT1の文が長すぎると途中できれてしまうのです。自動で改行する良い方法
はありませんでしょうか?よろしくおねがいします。
>>608 <table>使わなけりゃいいんじゃないの
610 :
nobodyさん:03/08/05 11:45 ID:BUuQIqrM
文字コード変換にこのようなことをしようとしているのですが、
function convert_code (&$val,&$key,$code,$oldcode){
$val = mb_convert_encoding($val,$code,$oldcode);
}
array_walk ($array, 'convert_code','EUC-JP','SJIS');
array_walk ( array arr, string func [, mixed userdata])
という仕様ですが、この場合、userdataは配列や複数の値を
渡せないのでしょうか?
611 :
608:03/08/05 11:53 ID:V6DdtSg7
>>609 <table>使わないと全体的に左に寄ってしまいますよね。
バランスが悪いので何か対処法はありませんでしょうか?
>>608 HTMLの書き方が無茶苦茶。
PHPの勉強もいいですが、まずHTMLから始められてはどうでしょうか?
確かに。
よく見りゃつっこみどころ満載の「HTML」だ。
あぼーん
あぼーん
>>610 function convert_code (&$val,&$key,$opts){
$val = mb_convert_encoding($val,$opts[0], $opts[1]);
}
array_walk ($array, 'convert_code', array('EUC-JP', 'SJIS'));
可変引数は渡せないから第3引数にmixed型を渡すように
なっている。
だから配列もしくはオブジェクトなら渡せる。
>608
CSSを使用すれば余白の制御など細かく出来る。
CSSが大変そうなら <blockquote> タグあたりでどうかね?
618 :
nobodyさん:03/08/05 17:37 ID:woPpy0rJ
php+MySQLでデータベースの入力フォームを作っております。
前略
mysql_query(insert into T1(f1,f2,...) values('$1','$2'...));
mysql_query(insert into T2(fA,fB,...) values('$A','$B'...));
mysql_query(insert into T3(fa,fb,...) values('$a','$b'...));
といったように、一つのphpファイルに連続して複数のテーブルに入力
しようとしても、最初のクエリのみしか受け入れてもらえません。
フォームからの変数は問題なく受け取っており、エラーになるわけでも
ありません。
どなたか、原因と対処を御教示下さい。 m(_ _)m
619 :
618:03/08/05 17:42 ID:woPpy0rJ
ちなみにphpのバージョンは4.0.6です。(プロバイダがアップデートしてくれない (-_-;))
>>618 mysql_query("insert into ・・・");
にしないとエラーになるんですが。
621 :
618:03/08/05 20:07 ID:HahDoJ1D
>>620さま
$result1 = mysql_query("insert into T1(f1,f2,...) values('$1','$2'...)");
$result2 = mysql_query("insert into T2(fA,fB,...) values('$A','$B'...)");
$result3 = mysql_query("insert into T3(fa,fb,...) values('$a','$b'...)");
こんな感じで記述してあります。618は筆足らずでした。。
あぼーん
あぼーん
あぼーん
>>618 mysql_query()を呼んだ後は、返り値がTRUE(非ゼロ)またはFALSEのどちらかを確認して、
もし返り値がFALSEならmysql_errno()とmysql_error()を確認しよう。
さもなくば「エラーが出てない」とは言えない。
626 :
618:03/08/05 22:25 ID:HahDoJ1D
>>625 感謝!!
早速確認してみます。 ・・・でも、localhostで動作確認したときは
問題なく全入力出来たのに、、、
どういう可能性が考えられるのでしょう?
>616
ありがとうございました。マニュアル眺めてるだけでは、なかなかわからんもんです。
628 :
nobodyさん:03/08/06 09:32 ID:TaNZWYB4
$_POSTなどでフォームのデータ受け取ると、"や'とか\が勝手にエスケープされてるのはなぜ?
仕様?
>>628 magic_quotes_gpc
で検索
あぼーん
あぼーん
632 :
nobodyさん:03/08/06 12:52 ID:9CpMMik0
ブラウザ上からquota見たいんですがのう。
popenでquota呼んだら
>Disk quotas for user xxxx (uid xxxx): none
しか来ないんだけど。
telnetだとusageとかgraceとか出るのにー
何か手ないすか?
あぼーん
> xxxx (uid xxxx):
伏字にしているのはエスパー募集だからですか?
>632
とりあえずシェルから quota 呼ぶのと PHP(HTTPデーモン経由)から quota 呼ぶのとで
ユーザーが違ってると言ってみる
>>632 xxxxを見ればわかりそうなものだ
wwwとかnobodyとか
637 :
nobodyさん:03/08/06 18:46 ID:wRB10Bh6
文字列をある程度の長さで省略したいんですけど、
日本語と英数が混じってると最後が・になったりして
おかしくなる場合があります。どうすれば上手くできるんでしょうか。
使ってるサーバーがmb関数使えないサーバーなんですけどできますかね。
638 :
nobodyさん:03/08/06 20:10 ID:+64gfyUC
te
641 :
nobodyさん:03/08/07 15:46 ID:oxPy+Rmw
PHP+MySQL環境でディレクトリー式メニューを実現しようとしていて、
「ID:ジャンル名:所属ID」
という再帰テーブルを作りました。
この場合、直下にあるデータ一覧は所属IDをIDで検索すればすぐ出ますが、
トップからのパスはジャンル>所属しているジャンルID>さらに上のID…>
トップと検索して配列にセット、それを反転してトップ>ジャンル>その下の
ジャンルと整形しています。
この場合何度もSELECT文を出さなければなりませんが、もう少し効率的に
やる方法はないですか?
>>641 ツリーにIDを1つ追加するときに、そのIDのフルパスを別のテーブルに登録しておけばよい。
fsockopen関数から開いた、リモートファイルのポインタからファイルサイズを
取得する方法は有りますか?
それとも、リモートファイルの内容を一時ファイルとして保存したものをfilesize
関数で読み出すべきでしょうか?
>>643 相手がHTTPで、且つそのヘッダでContent-Lengthが出力されてれば、
そこから取得することは可能。他のプロトコルは、やはり一度ナメるしかないんじゃないかな。
>>644 リモートからContent-Lengthが返って来ない場合は取得不可なのですね。
有難うございます。
後、うっかり「HTTPでオープン」って書くの忘れてました。すみません。
んと。fsockopen関数からHTTPとして開いたポインタから、予め上限を決めて
fread関数からデータを読みこみ、それをstrlen関数を使ってサイズを測る、、
という方法を試したら、何故か8192バイト以上が読みこめなかったので、
fgets関数をEOFを検出するまで回し、その過程で取得したデータを一本に
繋げてstrlen関数で読むという方法で何とかなりました。
647 :
:03/08/08 03:27 ID:0z0bK8pF
freadって4.3.2から仕様変わった?
リモートファイルをincludeで呼び出しています・・・
サーバーが停止している場合はローカル上のファイルを
includeするようにしたいのですが、
どうすればいいのでしょうか?
649 :
:03/08/08 03:38 ID:???
>>648 fopenか何かでリモートに繋ぎ、ダメだったらローカルを読む、と。
>>645 HEADメソッドでContent-Lengthだけ貰えば本体は貰わなくて済むよ。
ただしfopen()は使えないけど。
651 :
nobodyさん:03/08/08 09:56 ID:LraV0Dku
>642
ありがとうございました。
別の質問です。
MYSQLでAutoIncrementのフィールドがあるとき、INSERTしたあと
現在のその数を取得するには再びSELECTするしかないのでしょうか?
登録IDを作りたいと思っていて、PHP側でキーを生成してPrimary設定の
フィールドにINSERTするよりは綺麗な連番になるかと思ったんですが、
保存後にIDが何番になったか再取得しないと表示できないのです、、、
>>651 selectで再取得した方が確実。
さもないとチャットのように同時に10人とか発言されたら目も当てられない。
>>637 substr()/mb_substr()でなくてmb_strcut()というのがある。
便利です。
654 :
nobodyさん:03/08/08 13:18 ID:LraV0Dku
>652
ではどうやって再取得したらよいでしょうか。
今回の場合はそこまでクリティカルではないので問題ではないですが。
mysql_affected_rowsを利用するか、mysql_insert_idでしょうか。
前者の場合は再取得前に次の値がセットされればダメですし、
後者はいまいち使い方が分からない。。。
655 :
nobodyさん:03/08/08 13:28 ID:LraV0Dku
ちなみに、
$info = mysql_fetch_array(mysql_query("show table status from DB_USER like 'TABLE_NAME'",$MyLink));
$inserted_id=$info[Auto_increment] - 1;
という方法もありますが、これでもチャットレベルではダメかも。
657 :
656:03/08/08 14:17 ID:???
>652 じゃなくて >654 だねゴメン
いやー magic_quotes_gpc on にはまいりましたよ。
コードがSJISになってるファイルアップロードページで処理したら
ファイル名に上に出てきたみたいに「ソ」とか「構」とか入ってる時
$_FILES に格納されるファイル名がその文字以降になっちまったよ。
とりあえずアップロードページのコードをEUCに強制的に変換して
逃げたけどSJIS逝ってよしだな。
>656
別のマニュアルでは分かりにくかったですけど、これで何となく分かりました。
>AUTO_INCREMENTEDカラム用に生成されたIDを返します。
これを見ると、モロに求めていた機能のようですね。よかった。
>>650 目的は、リモートファイルの内容&サイズを取得する事なので、
本体も一緒に貰わないとイカンのです。
661 :
nobodyさん:03/08/09 10:16 ID:i34+tz6Y
あるフォームの送信ボタンを押して別のページに飛ばしたときに
その飛んできた送信ボタンの名前を取得することって可能なんでしょうか?
またどのようにするのでしょうか?
>>661 <form method=post>
<input type=submit name=hogehoge value=booboo>
<input type=submit name=aaaaaaaa value=booboo>
<input type=submit name=bbbbbbbb value=booboo>
</form>
<?phpinfo(32);?>
664 :
nobodyさん:03/08/09 10:54 ID:i34+tz6Y
>>662 その通りなんですが
回答の意味が分からなかったのでこっちで教えていただこうと
思ったんです。すみませんでした。
>>663 ありがとうございます。
しかし質問が悪かったみたいで知りたいことはちょっと違いまして
例えば商品が複数ならんであるページで
それぞれ商品のカゴに入れるというボタンを押したとき
そのボタンの名前を取得してそのボタン名+price みたいな名前の
パラメータの値と個数をかけた値を足していく というような感じに
したいのです。
長くなって申し訳有りません。
フォームに日付がたくさんあるのでfunctionで関数化したいんですけど、
$_POST['xx']の表記がいまいちわかりません。
やりたいのはこんな感じです↓
function check($yyyy,$mm,$dd){
$yyyy=trim(mb_convert_kana($_POST['$yyyy']),"sn");
$mm =trim(mb_convert_kana($_POST['$mm']),"sn");
$dd =trim(mb_convert_kana($_POST['$dd']),"sn");
if (!checkdate($mm,$dd,$yyyy)){
(以下略)
>>644 あなたの脳内では、ボタン名というのはnameの事?それともvalueの事?
「ボタン名+price」というのはどこに表示したいの?それともhiddenにしてfromに忍ばせたいの?
どうしてボタンの名前の取得が必要なの?
fromを商品毎に用意してそれぞれにsubmitとhiddenで値を定めれば良いんじゃないの?
どうしても全体を1つのfromにまとめたいの?
PHPでCSVが表示できると聞いたんですがどうやればいいんですか?
test.csv
a,b,123
c,d,456
を
<table><tbody><tr>
<td>a</td><td>b</td><td>123</tr>
<td>c</td><td>d</td><td>456</tr>
</tr></tbody></table>
のように表示することは可能でしょうか?
よろしくお願いします。
>>668 可能です。
ごくごく基本的なテキスト処理の問題で
どんな参考書にも必ず載っています。
668です。
買った本に載ってなかったんで(正直ショックだった
何か参考になるサイト等がありましたらお願いします。
>>670 $a=file("test.csv");
echo "<table><tbody>\n";
foreach($a as $b){
$b=rtrim($b);
echo "<tr>";
$c=explode(",",$b);
foreach($c as $d){
echo "<td>$d</td>";
}
echo "</tr>\n";
}
echo "</tbody></table>";
関数に fgetcsv() てのもある
673 :
nobodyさん:03/08/09 20:31 ID:i34+tz6Y
$HTTP_SESSION_VARS["a"][1]
なんてある配列の数を1つ減らしたりしたいのですが
どのようにしたらよいのでしょうか?
674 :
nobodyさん:03/08/09 20:42 ID:stysPTCZ
ブルマ姿の可愛らしいロリ少女が体育倉庫でなにやら怪しい動き!
物凄くでかいオッパイをぷるんぷるんに揺らしながらハゲオヤジにバックから突かれます。
最後のオナシーンではなんととうもろこし挿入!
ブツブツで気持ちいいんでしょうね。
無料ムービー観てね。
http://www.pinkfriend.com/
>>673 $HTTP_SESSION_VARS["a"][1]--;
676 :
nobodyさん:03/08/09 21:10 ID:4ZC+Pkma
677 :
直リン:03/08/09 21:13 ID:V17SBkWV
678 :
nobodyさん:03/08/10 00:16 ID:9fsvpXwn
もし変数$xに値が入ってなかった場合っていう条件を作るときに
if(isset($x)) と if(!$x) はどっちがいいんでしょうか?何か違いがあるんですか?
680 :
の:03/08/10 00:19 ID:iKMsAznc
>>678 error_reporting(E_ALL);
とかして動かしてみな。
681 :
670:03/08/10 02:42 ID:???
682 :
nobodyさん:03/08/10 07:14 ID:fzrQOeyO
MySQLに格納されているデータを元に作るページを
何度も行き来させる場合、
セッション変数にデータを入れて持たせるのと、
ページごとにMySQLから読ませるのと、
どっちが負荷が軽いですか?
セッション変数に200KBぐらいのデータを持たせるのって
あんまりイクナイですか?
ページごとにあるwebサイトからそのぐらいのデータをダウンロード
するのをさけたいのです
PHPでパスワード付きzipファイルの解凍って出来ないのでしょうか?
パスワード有無の判別だけでも出来れば解凍時にパスワード入力を
施すようにして、あとはunzipを呼び出すなんて事も出来そうなんですが。
さーぱーりわかりません。
システム時間を人間が見てわかる時間に変更する方法を教えてください。
1060417366 -> yyyy/mm/dd hh:mm:ss
みたいな。
688 :
nobodyさん:03/08/11 02:56 ID:MrZa7J+S
しょぼい質問でスマソ。
正規表現に関することで悩みが…。
<?php
if (preg_match ("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
っていうソースのファイルを開いたんですわ。
そしたら
Warning: Compilation failed: range out of order in character class at offset 4 in d:\public\root\c.php on line 2
A match was not found.
って表示が出てくるんですよ。
これなら 大丈夫なんですけどね…。
<?php
if (preg_match ("/[a-z]{5}/", "abcde")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
日本語だとうまくいかないようなんですが、なんでなんでしょうか?
689 :
:03/08/11 04:19 ID:???
>>688 pregは非対応だから。mb_eregでやれ。
690 :
684:03/08/11 06:29 ID:???
691 :
nobodyさん:03/08/11 06:45 ID:ugZ5Rko0
692 :
nobodyさん:03/08/11 07:45 ID:vd5Ibrol
以下のスクリプトが動きません。なんでですか?
#!/usr/bin/perl
# CGIヘッダの出力
print "Content-type: text/html\n\n";
while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}
# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;
# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;
# Player1
$kougeki1 = srand;
# Player2
$kougeki2 = srand2;
693 :
nobodyさん:03/08/11 07:46 ID:vd5Ibrol
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}
694 :
nobodyさん:03/08/11 07:46 ID:vd5Ibrol
srand2;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}
($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;
($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;
695 :
nobodyさん:03/08/11 07:47 ID:vd5Ibrol
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで野原でクソをし始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで光浦なみの女にレイプし始めた。</p></p></body>\n";
print "</html>";
696 :
nobodyさん:03/08/11 07:50 ID:vd5Ibrol
プレイヤー1とプレイヤー2の対戦ゲーム
パンチとキックが出る
パンチは5分の3で命中
5分の2はミス
命中すると5分の1のは攻撃力が半減
さらに相手がキックをすると、パンチ力が半減
キックはふつうに当たる
HP0になった方が死亡
697 :
_:03/08/11 08:08 ID:???
698 :
_:03/08/11 08:16 ID:???
700 :
nobodyさん:03/08/11 11:58 ID:vd5Ibrol
PHPとPerlは別なんですか!早とちりしてしもうた。
701 :
673:03/08/11 12:26 ID:UQrY/a3d
>>675 ありがとうございます。
しかし、$HTTP_SESSION_VARS["a"]--としても
count($HTTP_SESSION_VARS["a"])の数は減っていないみたいなんですが
何かおかしいのでしょうか?
705 :
688:03/08/11 15:31 ID:bEOLhIPG
指摘の通り、mb_eregにかえたんですが・・・
<?php
if (mb_ereg("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>
結果が A match was not found.
なんですけど、まだ何かおかしいところあるんでしょうか?
>>705 前後のスラッシュは不要。
if (mb_ereg("[ぁ-ん]{5}", "あいうえお")) {
707 :
nobodyさん:03/08/11 17:48 ID:+bwnIYmo
ど素人ですいません。
一応サーバーはKTplanを使っています。
Linuxサーバーのようです。PHP Version 4.2.2
サンプルの本を使いながらメールフォームを試してるのですが、
「PHPでWebアプリケーションを作ろう」という1年ほど前に買った本では
文字コードEUC、改行LFで保存しています。
これは、formmail.html,formmail.php,formmail_lib.php
という、入力ページ、プログラム本体、ライブラリの3つのファイルと
jcode.php,jcode_mini.php
という、日本語処理のファイルをあげています。
これは問題なく動作しましたし、届いたメールも文字化けはしていませんでした。
ただ、メールの内容を確認するというページが無いので違うのを試しました。
「PHPによるWebアプリケーションサンプル」という本で
サンプルを試したところ、サンプルCDには、
Winユーザー向けの script_sjis用と
Linuxユーザー向けの script_eucという
2つがありました。
で、KTplanのサーバーはLinuxだし、上に書いたメールフォームは
EUCで保存して問題なかったので、Linux用のを使いました。
すると、届いたメールの内容が文字化けしていました。
試してみようと思い、Win用のsjis保存のを使ってみたら
問題なく文字化けしていませんでした。
この違いはどう考えればいいのでしょうか?
先に試した本のやつは、日本語変換用のファイルを使うので
そうなのかなと思いますが、次の本のやつは
メールを受け取る環境に合わせてsjisとEUC保存を使い分けるのでしょうか?
708 :
nobodyさん:03/08/11 17:53 ID:0RwRz5Km
709 :
_:03/08/11 18:09 ID:???
710 :
_:03/08/11 18:21 ID:???
711 :
nobodyさん:03/08/11 18:23 ID:ZEkRELaD
だれか683に答えてあげて・・
>>683=712
素直に答えてくださいと…
>セッション変数に200KBぐらいのデータを持たせるのって
>あんまりイクナイですか?
イクナイですよ。
>>683 セッション変数に持たせること自体は問題無いよ。
後半部分は、hiddenで渡したり受け取ったりしたくない、って意味なのかな?
「あるWebサイト」って何のこっちゃと思って、流してた。
>>714 2ちゃんねるのdatファイルを読み込みたいのです。
ページが変わるたびに
何回もdatファイルをダウンロードしにいくのもアレなので
セッション変数にdatファイルのデータを全部詰め込んで
おけばいいのかなぁと・・
718 :
705:03/08/11 19:50 ID:Av1x7+ub
スラッシュとってもまだだめだ……
なんでだ・・・・なんでだめなんだ・・・・・・・・
ソースはおかしくないですよね?
ちなみに
ttp://www.xrea.com/ のサーバーに置こうとしてるんですけど。
719 :
nobodyさん:03/08/11 19:51 ID:0RwRz5Km
[5]
721 :
nobodyさん:03/08/11 21:58 ID:2ChtRC4J
悪霊に取り付かれているという千穂ちゃん。
除霊をしてあげるという男に乳もまれるはオマンコ触られるは挿入されるは・・・
本当に悪霊は退散したのでしょうか?こんな気持ちのいい除霊だったらいつでもOK!
制服好きならここ!
無料ムービーをどうぞ
http://www.pinkschool.com/
722 :
nobodyさん:03/08/11 22:15 ID:S089as81
723 :
_:03/08/11 22:16 ID:???
>>718 仮にスクリプトをSJISで書いていたとしたら、mb_ereg()の前に
mb_regex_encoding("SJIS");
と書くと動くかもよ。
725 :
705:03/08/11 23:24 ID:Av1x7+ub
>>724 動きますた。感動しますた。サンクス!!
726 :
nobodyさん:03/08/12 09:37 ID:PFVgJDlR
有料会員管理や課金システムが組み込まれたPHPスクリプトで
参考になるフリーのスクリプトないですか?
自分でスクリプトを書いてるんだけどうまくいかなくて
気が狂いそう。
そういうの、初心者がつくっちゃいけないと思うぞ。
あきらめて業者に頼め。
728 :
707:03/08/12 12:03 ID:Cs4RKLp1
作者のミスだったようです。
製作HPに載ってました。
あ
ちょと納得いかないんですが
受け取ったクエリのなかの "' を htmlspecialchars で
置き換えるとバックスラッシュ付きになっちまうんですがナゼでしょ?
" -> \"(¥&quot;)
バックスラッシュ要らないんですがどうすればイイのでしょう?
>>730 if (get_magic_quotes_gpc()) {
$hoge = stripslashes($hoge);
}
$hoge = htmlspecialchars($hoge);
732 :
nobodyさん:03/08/12 21:15 ID:P8GdC1tU
733 :
nobodyさん:03/08/12 23:39 ID:kb077f1K
734 :
nobodyさん:03/08/13 00:57 ID:pM9W3pWP
質問です。
page.htmというファイルがあってその内容をinclude()やrequire()等をつかって読み込んで表示させたいのですが、
page.htmというファイルの中に記述されてある$PHP_SELFがそのまま出力されて困ってます。
つまり、page.htmの中に記述されてる変数が変数として認識されずに出力されてるってことなんですが、
page.htm内の変数を認識させて出力するにはどうすればいいでしょうか?
・・・・・説明下手でスマソ。
>>734 その$PHP_SELFは、<?php echo $PHP_SELF; ?>のような形にしてる?
そんな必要あるの?って思ったらincludeの説明を見てくだちぃ
737 :
nobodyさん:03/08/13 02:31 ID:pM9W3pWP
738 :
nobodyさん:03/08/13 02:59 ID:9iljZfn8
book-i.net
だれか717に答えてあげてください
>>739 お前キモイよ。
「答えてあげてください」じゃなく「答えてください」だろが。
まぁまぁ
そんなムキにならずに
楽に生きましょうよ。
眉間にしわがよってますよ。
あっほんとだ。
>>683=712=717=739=741
なんでそんなに必死に第三者を装おうとするんだ?
キモ過ぎ。
オモシロイから。
ですよ。
君馬鹿?
ユーモアの精神もってよ。
みけんにしわよせていないでさ♪
はー
つれたつれた
んじゃ、また。
つれたと書き逃げ。ステロタイプな厨の常套手段だな(ワラ
元質の内容を考えると、「好きにしていいよ」だね。
(セッションの仕組み上)クライアントごとにデータを保存するわけだから、
無駄が多いような気がするけど。
>>749 無駄が多すぎるし「止めとけ」だと思うけど。
>>750 改善策がないし、好きにしていいよ
だろう。
752 :
nobodyさん:03/08/13 22:01 ID:3p1HFmGf
phpで作ったタブブラウザとか無いですかね
恐ろしく初心者な質問してもいいのでしょうか。
readfileで殆どのページを表示させるのと、
PHPファイルに情報を入れておいて、 ?> でPHPを出て表示させるのとどちらがサーバー負担が小さいでしょうか。
前者はもう一つファイルを開くという作業があって、
後者はPHPとしてのチェック作業がありますよね。
もちろんサイズが小さければ後者だと思うのですが、
ある程度大きくなる前者の方が良い気がします。
どの辺りのサイズで切り替えを考えるべきでしょうか。
簡単な例
前者 <?php readfile("htm.txt"); ?>
後者: <?php TEST ?>このあとに全ページが続く
まちがえ。
後者: <?php ?>このあとに全ページが続く
>>753 巨大なファイルで試したらどうか。
使う環境によっても違うだろうし。
756 :
:03/08/14 04:38 ID:???
>>752 PHP-GTKとかいうのがあったな。デスクトップアプリ作るやつ。
ブラウザをPHPで作るアフォはあまりいないと思うが。
757 :
nobodyさん:03/08/14 13:29 ID:GZQg1swI
bBlog
http://www.bblog.com/ を使用しているのですが、これをの投書を表示するindex.phpに、
最新1項目だけ表示させるにはどうすればいいのでしょうか?
<-------- index.php -------->
<?php
include "bblog/config.php";
if(is_numeric(@$_GET['postid'])) {
$bBlog->assign('postid',$_GET['postid']);
$bBlog->show_post = $_GET['postid'];
$bBlog->display('post.html');
exit;
}
if(is_numeric(@$_GET['sectionid'])) {
$bBlog->assign('sectionid',$_GET['sectionid']);
$bBlog->assign('sectionname',$bBlog->sect_by_name[$_GET['sectionid']]);
$bBlog->show_section = $_GET['sectionid'];
}
$bBlog->display('index.html');
?>
<-------- ここまで -------->
759 :
757:03/08/14 14:03 ID:???
760 :
nobodyさん:03/08/14 14:19 ID:JF8X1a1v
教えてください。
upload_max_filesize = 2M
となっているレンタルサーバ(WebARENA)なんですが
どうにかして2M以上のファイルをアップロードできるように
する手段はないでしょうか?
>>760 分割upして結合したらどうか。
クライアント側に分割upさせるようなプログラムを送りつける必要があるけど。
>757
ちょっと落としてソースを眺めてるのだが bblog のソースはなんか
TURBO PASCAL 系のようなインデントがされてるな。
つーか TAB インデントと SPACE インデントが混ざってるところが
痛い。
まぁそれはおいといて、bBlog.class.php ってファイルの中の get_posts
あたりを見てみたらどう?このメソッドで出来そうだけど。
763 :
nobodyさん:03/08/14 16:34 ID:3awXqGFx
765 :
:03/08/14 16:45 ID:???
質問です。
下記のバージョンを使っているのですが、ユーザディレクトリで
fopenを使うと、ファイルが無い言われます。(requireなどはオッケー)
フルパスで指定すると平気なのですが、相対パスだとアウトです。
ちょっと調べたのですが、「バグ?」という曖昧な情報だけで、
バグかどうかに関する物が見つかりませんでした。
これって結局バグなのでしょうか?
PHP 4.3.0 (cli) (built: Jan 17 2003 16:22:27)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies
>765
file_exists() は true 返すの?
767 :
nobodyさん:03/08/14 17:15 ID:SyUXGdwy
街行くセーラー服の少女を見て『ムラムラ』っとしたことはありませんか?
パンティーが見えそうな位に短いスカート、ムチムチした足にルーズソックス。
私自身も大のセーラーフェチなんです。
そんな欲望を満たしてくれる動画だけを徹底的に集めました。
無料ムービーを観てください。
http://www.pinkschool.com/
768 :
765 :03/08/14 17:24 ID:???
>>766 true返しました。
さっぱりでつ…。
どんな文でfopenか書いて
770 :
765 :03/08/14 18:23 ID:???
どんなもなにも、って感じですが…(苦笑
<?php
$test = fopen("./test.conf",'r');
?>
で、こけます。
当然、test.confは同じところにおいてありまつ。
さっぱり(;´Д`)
パーミッションは?
open_basedirはどうなってる?
773 :
763:03/08/14 19:02 ID:???
774 :
765:03/08/14 19:16 ID:???
>>771 パ一ミッションは問題無しです。
>>772 む、そんなのあるんですか。
今電車の中なので、帰ったら調べてみます。
776 :
nobodyさん:03/08/14 20:48 ID:gUgtxMRF
(A,001,B,002・・・)
という配列を
$RENSOU[A] = 001
$RENSOU[b] = 002
とする場合、perlではそのまま代入すれば出来ましたが、
PHPの場合はどうやって変更すればよいでしょうか?
>>773 しまった。
ここに張っておけばよかったか。
--- PHP users MLから転載 ---
日時 :8月14日(木) 終日
影響範囲:www.php.gr.jp のみ (注)
理由 :回線拡張工事の為
その他 :14日中には完了する予定ですが、予期しない問題の為
15日もアクセスできない可能性もあります。
また、何らかの理由により15日以降回線に一時的に
障害が発生することもあります。
以上、ご不便をおかけ致しますが、皆様のご協力をお願い致します。
注:メーリングリストは使用できます。
>>776 $hoge=array("A","001","B","002","C","003");
reset($hoge);
while(list(,$key)=each($hoge)){
list(,$value)=each($hoge);
$RENSOU["$key"]=$value;
}
779 :
nobodyさん:03/08/14 21:50 ID:gUgtxMRF
>778
ありがとうございます。listの使い方が分かりました。
しかしperlに比べて少々めんどい、、、
>>779 perlのやりかたをphpで実現しようとすれば当然めんどい。
phpはphpのやりかたで便利なようにできている。
どの言語でも同じ事だが。
>>778-779 each()は連想配列用だからトリッキーになっちゃう。
素直に書くとこうじゃない?
$hoge=array("A","001","B","002","C","003");
reset($hoge);
while (($key = current($hoge)) !== FALSE) {
$RENSOU[$key] = next($hoge);
next($hoge);
}
元の配列を破壊するならこっち。
$hoge=array("A","001","B","002","C","003");
while (($key = array_shift($hoge)) !== NULL) {
$RENSOU[$key] = array_shift($hoge);
}
>>781 こんなのでも大丈夫みたい。
$hoge=array("A","001","B","002","C","003");
foreach ( $hoge as $key ) {
$RENSOU[$key] = next( $hoge );
}
783 :
782:03/08/15 11:14 ID:???
782 は勘違い。
結果に不要な値が含まれるので失敗。
nextを使っている人がいるけども、空の要素や値が0の時は
falseが帰ってくるから場合によっては危険。
785 :
nobodyさん:03/08/15 11:28 ID:mChPmz42
phpで掲示板を作ってみたんですが
「表示」「機能」などの文字を書き込むと文字化けしてしまいます。
化けないようにするには書き込むときに何か特別な処理が必要なんでしょうか?
SJISの場合、表・能などの2バイト目が0x5cになり、
これは \ と同じなので次の文字の1バイト目がエスケープされてしまう。
1. SJISで書くのをやめる
2. PHPの設定でmagic_quotes_gpcをonにする
3. 危なそうな変数はaddslashesを通過させる
1.がお薦め。
787 :
新宿歌舞伎町裏DVD本舗:03/08/15 11:50 ID:2mbTnFQt
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
☆★ 無修正DVD★☆なら 新宿歌舞伎町直送 ☆★
人気爆発新作ベスト9入荷
堤さやか引退特集 憂木瞳 プロジェクトX No8 ベイビーフェイスをやっちまえ
白石ひより・愛葉るび SNAPSHOT 地下映像陵辱援交 すぎはら美里痴女教師
店頭販売の売れ筋のみ厳選してみました 安心の後払い
http://book-i.net/moromoro/ 白石ひとみ 小森詩 山田まり 長瀬愛
@@ 及川奈央 レジェンド @@ 堤さやか 東京バーチャル 依然大好評
サンプル画像充実 見る価値あり 最高画質
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
788 :
nobodyさん:03/08/15 12:07 ID:mChPmz42
>>786 1と3はやってみたんですが何故かダメでした。
動かしてるのは自分のサーバじゃないんですが、2は調べてみたらoffになってました。
こうゆう場合はどうすればいいんでしょうか?
>>788 ちゃんとアップしたファイルがSJIS以外の文字コードになっているか調べる
790 :
nobodyさん:03/08/15 12:22 ID:mChPmz42
>>789 SJISになってましたが、なんか色々やってるうちに
文字化けせずに書けるようになりました。
$msg = stripslashes($msg);
この行をのけたらいけました。
どうもありがとうございます。
アイコン選択のしかたがわかりません。apeboardを使っているのですが…
皆さんどうやって指定しているのですか?
>>791 ネタか?
どっちにしても、氏んでくれ。
793 :
nobodyさん:03/08/15 13:39 ID:ZJsoX+AA
PHP-users に、電波キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。..。.:*・゜゚・* ね。
MLに書こうかと思ったけど、粘着されるとやだからこっちに書いてみるテスト。
795 :
793:03/08/15 15:41 ID:???
スマソ。逝ってきます。
796 :
757:03/08/15 16:14 ID:???
自己解決しました。
/* \bblog\templates\default\index.html */
{getrecentposts num=1 assign=posts}
上記の行の数字部分を変えることで、表示ポスト数を変えることができました。
画像ファイルをそのままPOSTし、それを取得して処理しようとしているのですが、
正常に取得することができません($strはから文字でした)
どのようにすれば取得できるのでしょうか?間違っている点の指摘などありましたら
よろしくお願い致します
$fp = fopen( "php://stdin", "rb" ) or die( "error" );
$str = fread( $fp, 3 );//ファイルタイプチェックのため
以下続く
続きマダー?(チンチン AA(ry
>>797 stdinはだめ。.htaccessで
php_flag always_populate_raw_post_data On
と設定して、postを受け取ると$HTTP_RAW_POST_DATAに生の中身が入ってるよ。
サンプル↓
<?php echo $HTTP_RAW_POST_DATA;?>
<form method=post><input type=text name=booboo><input type=submit value=post></from>
>>798 以下処理が続くという意味で書いたのですが、ものすごく紛らわしくて
申し訳ありませんでしたm(__)m
>>799 stdinだとダメだったんですか。ずっとこれで頑張っていました__| ̄|○
早速、教えていただいたものでやってみようと思います。
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
802 :
nobodyさん:03/08/15 22:52 ID:bGL7o/n7
保守。
803 :
nobodyさん:03/08/16 00:09 ID:yCKhoHep
あげとく。
804 :
nobodyさん:03/08/16 00:41 ID:bJ8kSIAe
805 :
nobodyさん:03/08/16 01:35 ID:kg29KKNX
Anhttpd 1.4.2iとphp4.3.2(installer)を使ってローカルで掲示板の実験をしようとしているのですが、
どの掲示板を使っても、必ずエラーメッセージが表示されるのですが、どうしましょう。
例えば
$mode = $_POST["mode"]; に対して
Notice: Undefined index: mode in 〜 というメッセージを出すのですが、
無視してもよろしいんでしょうか。
こうした方がより良いという方法があったら、教えて頂きたい次第です。
modeをGETで渡してる予感がする。
>>806 上のスクリプトはこんな感じでした。
echo "<form action=\"$setting[script]\" method=\"POST\">\n";
aaacafeの方に上げて試すと、特にエラーメッセージは出ませんでした。
エラー出っ放しでも投稿は反映されるので、
htmllint並みの潔癖さんなのかしらん。と、心のどこかで疑っている次第です。
できればエラーメッセージを止める以外の方法で、解決できませんでしょうか。
808 :
807:03/08/16 03:06 ID:???
>807
php.ini の error_reporting はどうなってますか?
消えたように見えただけでエラー出力が抑止されてるだけ?
(aaacafeの設定がそうなっているとか)
$mode = (isset($_POST['mode']) ? $_POST['mode'] : ''); とか
810 :
807:03/08/16 03:54 ID:???
>>809 error_reporting = E_ALL & ~E_NOTICE
でした。以前がどうだったか分かりませんが、デフォルトのはずです。
英語もあんまり読めないしー。
>$mode = (isset($_POST['mode']) ? $_POST['mode'] : '');
なるほど、とか言えるほどの知識はないので、
リファレンス見ながら理解してみようと思います。
ありがとうございます。
808のスレ見てたら、もう酷い時間ですよ!
811 :
nobodyさん:03/08/16 04:46 ID:0jlc9p4o
正規表現を教えて下さい。
>正規表現を教えて下さい。
せいきひょうげんと読みます。
文字列の操作に使います。以上。
質問します〜助力お願いします。
$a = 0;
$b = 0;
$heikin = $a/$b;
echo $heikin;
のように、"0"がセットされた$aと$bを使い割り算をし、ある数値を求めたいのですが
どうも0/0の計算の場合に
Warning: Division by zero in 〜
と上の四行ソースで言うと、三行目で警告が出てしまうッス。 これを回避する方法を教えてください。
お願いします。
$a = 0;
$b = 0;
#$heikin = $a/$b;
echo $heikin;
>813
b=0 の時だけ処理を分ける
算数の問題のような
>>814 ありがとうございますっ!
お、そんな方法が・・・と思ったら$aと$bが0の場合は$heikinに0がセットされないんですな・・とほほ。
>>815 そうそう、二時間近くいじくって先ほどそれに気が付きました汗
ありがとうございましたー!
>>816 当たり前だ、$heikinに0がセットされたらヤバいだろーが。
>>813 $heikin = $b > 0 ? $a/$b : NULL;
819 :
nobodyさん:03/08/17 00:22 ID:/KfDx3SX
safemodeがonの場合のサーバーで
フォルダの中にフォルダを作るにはどうしたらよいですか。
↓やるとhogeフォルダが作成できません。(uidが違うから?)
mkdir("aaa");
chmod ("aaa", 0707);
mkdir("aaa/hoge");
ほんまやxreaやとできんがな。
821 :
nobodyさん:03/08/17 18:07 ID:w938zl0m
現在アメリカサーバーを使ってますが、
現在使用しているPHPスクリプトが時差設定が出来なくて困ってます。
$abctime= (date ("H:i:s"));
この部分をgmtimeとか使って変える気がするんですが、
どうすればいいんでしょうか?
誰かおながいします
>>821 putenv('TZ=JST-9');
823 :
nobodyさん:03/08/18 00:09 ID:pnFIbaKU
>>822 $abctime=putenv('TZ=JST-9');
ってことでしょうか?
すんません知識がしょぼくて汗
824 :
821:03/08/18 00:19 ID:pnFIbaKU
すいません、ちょっと違ってました。
正しくは以下です。
$abcdate = (date ("Y-m-d"));
$abctime= (date ("H:i:s"));
これを何とか日本の時間に直したいんでつ。
よろしくお願いしまつ
>>823 せっかく教えてもらったのに、調べもせずに質問返しか。
827 :
nobodyさん:03/08/18 06:12 ID:BwATsvIe
fopenを使って読み込みモードでファイルをオープンするときってflockは必要ないんですか?
>>827 作成するシステム全体で読み込みしかしないんだったら不要。
もしどこかで書き込みと競合する可能性があって、それがまずいなら何らかのロックは必要。
あとflock()はadvisory lockなので、みんなで守らないと意味ないので注意。
829 :
nobodyさん:03/08/18 08:06 ID:BwATsvIe
>>828 じゃあどこかでファイルに書き込みする所が1箇所でもあれば
fopenで開く処理のときは全部lockかけないといけないって事ですか?
開いた時、
読み込むだけなら無くても良いと思うが・・・。
>>829 まー厳密にはそうなりますね。
>>830 そうね。
ほとんどのプログラムでは、そう問題になることもないしね。
832 :
nobodyさん:03/08/19 03:47 ID:OzwjKvy8
定数の場合defineで宣言すれば自分で作った関数内でglobalで指定しなくても使えるんですよね?
だったらやっぱり使う定数が多い場合は全部defineで宣言した方がいいんですか?
global宣言しないといけないものがあまりに多くなってしまったので。
定数として宣言した方が処理が早くなるとかあるんでしょうか。
PHP4.2.2を使っています。
あるファイル(txtやdat)ファイルに
文章あ-1 文章あ-2 文章あ-3
文章い-1 文章い-2 文章い-3
が書いてあって
別のphpファイルから 文章あのなかからランダムでひとつ、文章いの中からランダムでひとつ取り出すのはどうしたらできるでしょうか?
どなたか 教えてください。
>>832 複雑化してるなら定数で済むものは定数でいいのでは?たぶん処理も早いし
>>833 文章あ-ランダム数 文章い-ランダム数 でいいかと?
835 :
nobodyさん:03/08/19 20:37 ID:HWSDVW6B
836 :
nobodyさん:03/08/20 02:26 ID:DmnhIRDP
cryptで暗号化したパスワードって簡単に複合化できるんでしょうか?
掲示板などのログファイルを1行目だけ書き換えたいんですが。
file関数で一度全部配列に入れて1行目だけ書き換えて保存する以外に効率が良い方法はどんなやり方がありますか?
ImageCreateFromPNGみたいな感じにBMP画像を読み込むのは
どうしたらいいんですか?
840 :
nobodyさん:03/08/20 06:18 ID:5bGlwbl+
str_replace ( mixed search, mixed replace, mixed subject)
でmixed searchが半角1文字のときは探してくれないんでしょうか。
841 :
_:03/08/20 06:30 ID:???
842 :
nobodyさん:03/08/20 21:17 ID:UjFXAgnt
843 :
:03/08/20 23:57 ID:???
>838
fopen
>839
ImageCreateFromWBMP
>>838 >>843 行が固定長でなければぜんぶ読むしかないんとちがう?
file()で正解だと思う。ネイティブ処理だし。
いっそログファイルをdbmにするのはどう?
846 :
838:03/08/21 06:13 ID:???
fopenで開いてそのあとどうすればいいんでしょうか?fputsでやってみたんですが追加で書き込みされてしまいます。
最初ある1行目を消して違うものに書き換え、2行目以降は元のままって意味だったんですが、やっぱりfopenでできますか?
847 :
nobodyさん:03/08/21 15:36 ID:pPohBqhp
初めての書き込みで緊張していますが
PHPの質問で数値の表示方法についての質問なんですが、数値の計算で
例えば
10×1.05 をやると 10.5
になるのですがこれの小数点以下を切り捨てたいのですが、どうすれ
ば良 いのでしょう。number_format関数を使えば小数点以下の修正が
行なえるというのは知っているのですが、number_format関数を使うと
1000などの数値の時、1,000となり","(カンマ)が表示されてしまい、数
値として認識しなくなってしまいます。
この計算の後にもさらに計算をしたいので、数値として認識させなけれ
ばならないので、こまっています。
どうぞご指導をよろしくおねがいします。
切捨てならキャスト演算子で十分だろ。
(int)
849 :
nobodyさん:03/08/21 16:53 ID:pPohBqhp
わかりました!ありがとうございます。この掲示板て凄く
たすかりますね。今後もどんどん活用しようと思います!!
>>836 >>846 いや、だから普通にやるなら無理なんだってば。
ファイルを開くモードによって書き換えた残りの部分が
中途半端に残ったり、ファイルサイズが0になったりする訳
だから、いずれにせよ、書き換えた部分以外の残りを
書き足さなきゃだめな訳。
file()で読み込んだ配列をforでまわして残りを書き込むとか。
>>849 この掲示板は人手不足なんでな。
悪いが一回回答をもらったら、お礼に十回ぐらい
質問に答えてくれ。
852 :
nobodyさん:03/08/21 19:12 ID:pPohBqhp
>>851 分かりました。がんばります!
だけど、逆に質問ばかりになってしまうかもしれないです。。
MacOSX10.2.6の環境です。php-4.3.2pkgをインストールしました。無事
に使えるようになったのですが、スクリプトのエラーを表示しなくなって
しまいました。
ダウンロードをさせてもらったサイトは、www.entropy.ch/home/welcome.html
です。原因、対処法などを教えてください。お願いします。
855 :
:03/08/22 06:25 ID:???
>>854 php.iniのエラー関係はどうなってる?
おお!レスありがとございます。
>php.iniの〜
かなり痛いのですが、今日はじめてphp.iniという設定ファイルの存在に
気がつき、開いてみたのですがどこをどういじったらいいのか分かりません。
また、このパッケージをインストールしたときに、php.iniの置いてあるディレ
クトリにphp.ini-recommendedと書いてあるファイルが置いてあったのでファイル
名を変更して試したのですがだめでした。
php.iniの設定を変えることにより解消される問題なのでしょうか?
>>856 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
この辺の設定を確認
すげーうれすぃー
display_errors = OffをOnにしたら、エラーメッセジがでるようになりました。
>>855 >>857さん、ありがと!!
859 :
nobodyさん:03/08/22 11:41 ID:zuJfjB26
>>856 余計な世話だが、正直recommendedは「模範的」推奨状態なので
初めていじるならdistをベースにした方が、悩むことが少ないかと。
860 :
nobodyさん:03/08/22 12:16 ID:wRndntBd
質問です。copy関数でのファイルのコピーって
そのphpが実行されているサーバ上でしかできないんでしょうか?
ファイルのアップロードでそのそのphpが実行されているサーバとは
別のサーバにファイルをアップしたいと考えてます。
よろしくおねがいします。
861 :
nobodyさん:03/08/22 13:18 ID:J8TC1ZqO
あの、外部ファイルを読み込む時にフルパスで指定するのはダメなんでしょうか?
階層の違う場所から相対パスで指定するのが面倒臭いので、"const.php" というファイルの中で
define(BBSDATA, "http//〜/dat/bbsdata.csv");
のようにして使ってたんです。
ローカルの環境だと動くんですが、サーバーにあげてコレをやると読み込んでくれないんです。
よろしければ教えて頂けないでしょうか?
>>860 別のサーバだったらFTPで送るのがいいんじゃない。
ftp関数が使えて別鯖にftpアカウントがあればだけど
864 :
861:03/08/22 13:54 ID:J8TC1ZqO
>>863 そうなんですか!
早速サーバー管理者に聞いてみます。
ありがとうございます。
865 :
nobodyさん:03/08/22 16:46 ID:RLbRa7uW
ページの置いてあるサーバーと
ファイルの置いてあるサーバーが違う場合
ファイルの絶対アドレスを隠すことは不可能でしょうか?
PHPで何とかなりませんか?
866 :
nobodyさん:03/08/22 16:57 ID:R8aL7POw
武道板の過疎スレにスーパーハッカー出現!
2ちゃんねるに書き込まれたレスから個人情報をすっぱ抜けるらしい!
313 :名無しさん@お腹いっぱい。 :03/08/22 15:25 ID:BqrUBnBj
ただ今分析中・・・・
314 :名無しさん@お腹いっぱい。 :03/08/22 15:47 ID:BqrUBnBj
一人、びびって接続を切りやがった。
じゃあ、次を分析してみよう。
315 :名無しさん@お腹いっぱい。 :03/08/22 16:01 ID:pWHesBOj
ID:BqrUBnBj
久々にこんなホームラン級のバカを見たw
316 :名無しさん@お腹いっぱい。 :03/08/22 16:22 ID:BqrUBnBj
ありがとう。
このレスをいれてくれたお陰できみの事が分析できた。
君のことがすごくわかるようになった。
これからいろいろと楽しみにしておいてくれ。
http://sports.2ch.net/test/read.cgi/budou/1053700186/l50
867 :
nobodyさん:03/08/22 17:02 ID:Dc3Eg7+Y
衝撃の4P作品。しかも3人とも処女喪失の瞬間なのだ。
あっけらかんとした彼女達にはビックリ。かなりマニアックな作品だ。
出血こそ確認できませんでしたが痛い、
と言っていた女が次第に感じていくプロセスがかなり興奮しました。
この作品には続編があります。またのお楽しみということにしておきましょう。
素人の援交のみ!無料ムービーをどうぞ。
http://members.j-girlmovie.com/main.html
>>865 ページとファイルの違いは何?
URLを隠しちゃったらブラウザさんはどこを見にいけばいいのか困る。
869 :
nobodyさん:03/08/22 18:22 ID:qLHm82v9
POSTで入力データを次の画面に渡すと文字化けします。
MOZILLAでは文字化けなんてしないのに、InternetExplorerでは
激しく文字化けします。
これってHTMLの meta charset=EUC-JP で解決出来ますよね?
リモートのファイルにHTTPプロトコルで接続し、データを取得する方法がいろいろありますが、
タイムアウト(10秒かかってデータの取得ができなかったら失敗)を設定したりする事はできますか?
871 :
nobodyさん:03/08/22 19:02 ID:gPoXOoSj
>>869 formタグのaccept-charset属性つかってみたらどうかな?
>>870 ・CURLライブラリ関数
・fsockopen()もしくはsocket_set_timeout()
・register_tick_function()とdeclare()でがんばる
おもいつくのはこれ。もっと簡単なのありそう。
「ソ」や「能」の後に出てしまう\を消す関数ってなんでしたっけ?
874 :
nobodyさん:03/08/22 19:39 ID:hdLF41nk
age忘れた
875 :
+a:03/08/22 20:09 ID:Wp1VFo9T
>>873 stripslashes($hoge);
876 :
nobodyさん:03/08/22 20:10 ID:hdLF41nk
ありがd
データの書き込みについて質問です。
データをログファイルに書き加える時は fopen($logfile, "a"); ですけど、
これだと新しいデータは下に追加されてしまいます。
新しいデータをどんどん上に書き加えていくにはどうすればいいですか?
"a"の場合 やりたいこと
8/20 8/22
8/21 8/21
8/22 8/20
ずれるかもしれないけど、こんな感じ。マニュアル見てもfopenの所に載っていないんだけど可能でしょうか?
880 :
nobodyさん:03/08/23 00:29 ID:1NB410xf
本当にアホな質問ですが
$day_date = getdate();
print_r($day_date[year]);
として、現在の年数を取得したのですが、他にも月、日数なども一緒に取得したいです。
配列のはずなので、出来ると思ったのですが、うまく出来ません。
どうすればいいのでしょ?
2003年8月23日
と表示させてみたい。
881 :
880:03/08/23 00:44 ID:???
$today_date = date('Y:m:d:D');
$today_time = date(':H:i:s');
printf($today_date . $today_time);
こっちのが簡単だということに気が付きました(´・ω・`)ショボーン
フォームを使って、データを入力するスクリプトで、データを入力したあとに、
F5や更新ボタンで、更新すると、全く同じ内容がまた入力されてしまいます。
これを防ぐにはどうすればいいのでしょうか?
>>882 これは常套手段で、データ受付後に一度強制的にリダイレクトさせます。
header("Location: URL"); exit;
リダイレクト先は自分自身のスクリプトでもいいよ。
884 :
882:03/08/23 03:07 ID:???
Warning: Cannot add header information - headers already sent by
(output started at /home/hoge/public_html/php/phpinfo.php:8)
in /home/hoge/public_html/php/phpinfo.php on line 80
ってな感じで、エラーが出てしまうのですが(;´Д`)
いったいどこらへんに突っ込めば良いんでしょう?
>>881 date("Y年n月j日");
>>884 print()やecho()などで文字列を出力した後にheader()を突っこむと、その
エラーがでてしまいまっせ。
>いったいどこらへんに突っ込めば良いんでしょう?
文字列を出力する直前辺りに。
886 :
882:03/08/23 03:53 ID:???
>>885 色々と試した結果、出来ました。
ありがとさんです。
他のスレで聞いたら初心者スレで書けといわれたので移動してきました。
------------------------------------
サーバーにAN HTTPDを使っていて、
http://ww7.tiki.ne.jp/~inabah/php/002_004.htm このページを見てちょっとずつ作っていたのですが、
その中にある
-----------------------------
ソースコード
$a = 10;
print "変数 \$a の値は $a です。<br>";
出力結果
変数 $a の値は 10 です。
------------------------------
というのをやってみたんです。
888 :
887:03/08/23 06:33 ID:???
ところが、自分のやつは
Notice: Undefined variable: aです in W:\server\test.php on line 9
変数 $a の値は
このように表示されてしまいました。
なぜこのようになったのでしょうか?
以下はスクリプトなのですが
--------------------------
<script language="php">
$a = 10;
print "変数 \$a の値は$aです";
</script>
-----------------------------
<script language="php">を<?phpにしてもだめでした。
889 :
887:03/08/23 06:42 ID:???
あ、分かりました。お騒がせしました・・・
890 :
887:03/08/23 06:45 ID:???
他のスレで言われたのですが、なぜ
<script language="php">より<?phpにしたほうがいいのですか?
>>889 $付け忘れていただけとかじゃないね・・・?
>>890 <script>だとブラウザで実行する場合にも利用するからね
それに、サーバ側の設定が必要な場合もあるし
893 :
887:03/08/23 08:23 ID:???
>>891 いや、単に$aのところが解釈できてなかっただけでした。${a}にしたら出来ました。恥ずかしい。
>>892 ブラウザで実行す場合って、つまりブラウザ側の設定でJavaScript切るみたいに
PHPも動作しない場合があるってことですか?
サーバ側の設定なんですが、だいたいどこの鯖でも一応大丈夫ですよね?
一部では設定必要なところはあるけど、っていう感じで受け止めればいいですか?
894 :
887:03/08/23 08:24 ID:???
>>892 <?php 〜 ?>
ならどの鯖でも大丈夫ですか?これが一番多く使われてる形?
896 :
887:03/08/23 09:17 ID:???
そうなんですか。ありがとうございます。
自分的に<script language="php">のほうがしまりがあって好きなんでよかったです。
897 :
nobodyさん:03/08/23 09:26 ID:x29syyRV
!headers_sent() && header('Content-type: text/html');
899 :
nobodyさん:03/08/23 17:51 ID:eTpUGDG7
日本語のPHPサイトででフォトギャラリーを配布してるとこって
ないですか?基本的な機能だけあればいいんですが。
海外ならけっこうあるのに日本産のが見つからなくて。
612 【PHP】初心者コーナー 3 Released【スローモード】からきますた! 03/08/23 18:04
ハイジャックどこ?
こいつはどこだ?あんまりなめたことすると
http://music2.2ch.net/test/read.cgi/musicj/1061394519/ こうなるぞ!!
シネよ!! _ _ .' , .. ∧_∧
∧ _ - ― = ̄  ̄`:, .∴ ' ( 貴様ら )
, -'' ̄ __――=', ・,‘ r⌒> _/ /
/ -―  ̄ ̄  ̄"'" . ’ | y'⌒ ⌒i
/ ノ | / ノ |
/ , イ ) ばぎぃ!! , ー' /´ヾ_ノ
/ _, \ / , ノ
| / \ `、 / / /
j / ヽ | / / ,'
/ ノ { | / /| |
/ / | (_ !、_/ / 〉
`、_〉 ー‐‐` |_/
Perlのqq{}に該当するものがPHPにはありますか?
902 :
nobodyさん:03/08/23 22:37 ID:1NB410xf
投稿フォームから取得した $_POST['message'] に改行コードが含まれている場合に
<p>hogehogehoge(改行コードがあったら、Pで囲む)</p>
<p>hogehoge</p>
と したいのですが、どうすれば良いのでしょうか?置換?
>>902 その投稿フォームでの改行ってパラグラフの区切りって意味なん?
だったらpreg_replace()とかで置換だけど、
表示上改行したいだけならnl2br()ってのがあるよ。
str_replace("\n","</p><p>","<p>".$_POST['message']."</p>");
これじゃだめか?
改行コードがLF前提なのがよくない
前もって正規化しとけば済むはなしだけど
今クラスやってます
でも クラスを使う意味が あまりよくわかりません
関数のインクルードでいいじゃないのって思ってしまいます
どういうときにクラスを使われてますか?
908 :
899:03/08/24 07:12 ID:FaKlu9zk
>>904 ここまで立派なものじゃなくて、ブラウザで色々いじれる機能とかは
別に必要ないんです。むしろ画像が増えたら増えたでプログラムを
いじればいいかなと。ただ、画像をフォルダ分けせずに
ファイル名で判別したいです。例えば犬の写真が見たいときは
inu1.jpg、inu2.jpgという名前のものだけをサムネイル&拡大表示みたいな。
そんな都合のいいものはやはりないでしょうか?
>>907 仕様変更やメンテナンス性に優れている。
複数人で開発するときに便利。
憂鬱な〜
ってほん読んでみてください。
今カウンタを作ってるのですが、1番最初にログファイルを読み込むとき
ログの中身が空白だったとすると、画面にエラー表示が出ます。
そのあとは問題なく行くのでいいのですが、このエラー表示を消すために
もし読み込んだログが空白(空の状態)だったら、変数に0を入れる。
ということをしたいのですが
$count = file($filelocation); // ログファイルの中身を$countへ
if ($count[0] == "") { $count[0] = "0<>"; } // ログファイルの中身が空だったら$count[0]に0<>を代入
// データ内の文字列を分解してそれぞれの変数に代入
list ($cnt, $ip) = explode ("<>", $count[0]);
こんな感じにしたのですが、まだエラーが表示されます。
どうすればよいのでしょうか?
if ($count[0] == "")
この部分はこれでいいんでしょうか?
>>910 if (!empty($count[0]))
('A`)ノ
913 :
:03/08/24 22:55 ID:???
エラーが出たらコピペしろと小一時間
>>910 if(!$count = @file($filelocation)) $count[0] = "0<>";
# 「file($filelocation)」の出力結果「$count」がfalseの場合は 「$count[0]」に
# 「0<>」という値を代入。後は、元ソース通りに続きます。が、
list ($cnt, $ip) = explode ("<>", $count[0]);
# 但し、これらfile()関数からのファイルオープンで得たログを加工・再保存
# する場合、file()関数自体が読み取りエラーを起こした際に、それまでは
# 正常にデータを蓄積していたログファイルが簡単に初期化(0<>)されて
# しまう場合が有るかと思います。
>>914 FALSEとの比較は
if ($val === FALSE) ...
と書かないとバグの元ですよ。
>>915 まぁ、falseというか「真偽式の"偽"」のつもりだったんですけどね。
要は「$count」が空かどうかを検出をする為にわざわざ2行以上も使う必要が
有るのか、と個人的に思っただけの話です。はい。
BASIC認証で守られたページにアクセスするにはどうすればいいのでしょう?
できればfile()がいいのですが、他の方法でもかまいません。
>921
それはphpのエラーじゃないと思う。
うちの環境じゃあその3文字だけのファイルは普通に表示されるだけだったよ。
httpdの設定でphpがperlあたりで動くような設定になってしまってるんじゃない?
>>921 <?>はエラーであたりまえ。
エラー出るって事はPHP動いてる。
<?php echo "Hello World"; ?>
とかはどうなんだ。
>>920 そーいうやり方が有ったんですね。ヘェー。
ただ、個人的にはfile()関数を使う事は無いのでアレなのですが。
どうにも、file()関数は読み取りエラーが多い気がするので。。
925 :
nobodyさん:03/08/26 00:25 ID:2K7WH+hK
PHPで書いたページを表示すると、画面左隅に"・"という文字(?)が出て困っています。
おかしいと思ってブラウザのソースを表示すると、"Z"という文字が常に選択されているような、変な状態で勝手に挿入されているんです。
直前にした事といえば、ファイルをEUCコードで保存し直したしたという事以外特にありません。
どなたかご教授頂けませんか?
お願いします。
926 :
:03/08/26 02:46 ID:???
__________
/ ○ (◎) ○ \ /
| .___. | ど〜け〜よ〜ど〜け〜よ〜Z〜武〜
|┬───||┌─┐||───┬| \
|│ ||│ │|| │|
|│ ||│ │|| │|
|┴───||└─┘||───┴|
| || || |
|────||┌─┐||─┬┬─|
|────|||知|||─┤├─|
| |||立||| └┘ |
| .[■≡].||└─┘||.[≡■]. |
| ||======|| |
| ̄ ̄ ̄|[=.=]| ̄ ̄ ̄|
└── ヽ(´Д`;)ノ ああああああ〜ッ!!
/ (___)\
/ | | \
/ ◎ ̄ ̄◎ \
/ \
>>907 あっ、私(初心者)も同じ事思ってます。
「なるほど、そういうときにクラスの威力がはっきされるのか」
と私を納得させるようなレスを1000までにどなたかお願いします。
928 :
nobodyさん:03/08/26 06:30 ID:TgsQKZyO
Cookieに格納した値が文字化けして取得されてしまいます。
<?php
//ヘッダ部
$hoge_cookie = $HTTP_COOKIE_VARS["hoge"];
if($hoge_cookie[id] != ""){
setcookie("hoge", "id=$c_user[user]&pass=$c_user[pass]", time() + 30 * 24 * 60 * 60);
}
$cookie = $HTTP_POST_VARS["cookie"];
if($cookie != ""){
$id = $HTTP_POST_VARS["id"];
$pass = $HTTP_POST_VARS["pass"];
setcookie("hoge", "id=$id&pass=$pass", time() + 30 * 24 * 60 * 60);
}
?>
<?php
//Cookie読み込み
$id = $hoge_cookie[id];
$pass = $hoge_cookie[pass];
if($id != "" && $pass !=""){
echo $HTTP_COOKIE_VARS["hoge"];
print "ようこそ!" . $id . "さん";
}
?>
echoで念のために参照すると、Cookieは正しく保存されているのですが、
そのあと、$idを呼び出すと[i]と言う文字に化けてしまいます。
さらにリロードするとechoで参照した中身も化けています。
低レベルな質問で申し訳ありませんが、
ご教授お願いいたします。
929 :
難民:03/08/26 07:12 ID:AEImf75b
ソケットによるメール送信の事について質問させてください。
いろんなパターンで1000万回ほどテストしてますが
1通も送信できずに困ってます。お助けください。お願いします。
SMTP_AUTHが実装されたSMTPサーバに以下のように投げてます。
ですが送信できずにソケット開いたまま途中で止まってブラウザが
読み込み中でずっと反応しなくなります。
SMTPサーバのログでは
354 Enter mail, end with "." on a line by itself
で止まっています。
スクリプトは以下のように記述してます。
930 :
難民:03/08/26 07:13 ID:AEImf75b
$fp = fsockopen("777.777.777.777.", 25, $erroNo, $errStr, 60) or die("$errNo:$errStr<br>\n");
fwrite($fp,"EHLO $host\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"AUTH LOGIN\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"$id\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"$pass\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"MAIL FROM: <$from>\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"RCPT TO: <$to>\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"DATA\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"From: $from\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"to: $to\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"Subject: $subject\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"$body\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,'.'."\n", 100);
$sob = fgets($fp, 2000);
fwrite($fp,"QUIT\n", 100);
$sob = fgets($fp, 2000);
fclose($fp);
931 :
難民:03/08/26 07:13 ID:AEImf75b
問題点は2つで
1) メールが送信できない
2) 通信が途中で止まりソケットが開いたままにいなる。
この2つを解決するにはどうすればよいでしょうか?
932 :
nobodyさん:03/08/26 07:27 ID:sc9EQiru
ファイル作成するときに、fopenでhoge.htmlを作ろうとしています。
hoge.htmlはデータをどんどん追加していくファイルなのですが、
任意の位置に、データを追加するにはどうすればいいのでしょうか?
例えば現在のhoge.htmlには
<html>
<head>
(略)
<ul>
<li>mona</li>
</ul>
</body>
</html>
となっていて、それに新しく<li>giko</li>のデータを加えたい。
<ul>
<li>mona</li>
<li>giko</li>
</ul>
</body>
</html>
ってな感じで。一番後ろに追加するのは出来るんですが…。うーん。
>922
自己レス
そういえばうちの鯖短縮形が使えないんだった。
だからエラーにならないんだな。すまそ。
>>930 相手の返事を聞かないで自分で勝手にしゃべってるから無視されたんだよ。
成功したのか失敗か確認しろよ。
来ない返事を永久に待ってろ。
fwrite($fp,"From: $from\n", 100);
の後のfgetsはいらないだろ。(.だけの行を送信するまで)
それとSMTPの改行はCRLFの方がいいよ。
>>925 TeraPad(Windows)で、ですか?
>>928 $idに格納されている文字列に、2バイト文字が有る可能性は?
ただ単に「ブラウザ上で文字コードが取得出来てなくて化けてる」だけとか?
>>931 リクエストヘッダ送信の際には、最終行で改行コード2つを書かないと。
って事を思いついたけど。。
>>932 わざわざHTML形式のファイルに追記したいってのは、それなりの必要性が
有っての事だと思うけれども、何にせよ処理時の負荷がデカそう。
追記していく部分の末尾に <!-- DATA --> を入れておいて、置換していくようにするとか。
でも、別にデータファイル作って、項目を追加するごとに HTML を作り直していったほうが楽。
>932
例中の文字列を使って説明すると
<ul>までを記述したファイルAと
<ul>〜</ul>の中身を記述したファイルBと
</ul>以降を記述したファイルC
の3つを用意しておき新しいデータは
ファイルBに追記していき hoge.html を
作成する時にAとBとCを連結すれば完成
追加したいデータが複雑な書式の中に埋め込まな
ければならない場合は >936 が言うようにデータに
ためておいて一から作り直す方が楽かと思う
PHP4逆引き大全の221番
画像のサイズを変更するというのをやってみたんだけど
見た目何も変化がない。
どうなればいいの?
ヘッダとボディの間の空行はいるだろ
>>940 HTTPでは必要だがSMTPではいらない
942 :
難民:03/08/26 15:44 ID:AEImf75b
皆さんのおかげでちゃんと送信できました。
ありがとうございます。
これを簡単にまとめてライブラリにしたんですが有用性と悪用の危険性
を判断しかねるんですがいかがなものでしょうか。
MLなんかもすぐに作れそうですが。
っていってもここのおられる諸氏なら自前で持っておられますよね。
ヘッダと区別できない本文(XXXX: message とか)を
送るためには空行必要だけどな
車輪の再発明ですか?
946 :
910:03/08/26 19:37 ID:???
みなさんありがとうございました。
947 :
928:03/08/26 22:18 ID:TgsQKZyO
>935
$idにはマルチバイト文字が入らないようにしてあるのですが…
948 :
nobodyさん:03/08/26 23:11 ID:AEImf75b
SMTP_AUTHで用いられる暗号化パスワードをPHPで生成するにはどうすれば
よいのでしょうか
SMTP AUTHのパスワードはそのサーバの管理者が設定した暗号化方式で暗号化される。
PLAINの場合もありえる。
まず管理者に聞け。てかEHLOで調べろ
【レンタルサーバーの雄】
http://arigato3.net/
951 :
nobodyさん:03/08/26 23:54 ID:AEImf75b
名無しでバレてるし・・
Win機の鯖でテストしたんですがAUTH LOGINだったんでググりまくったら
base64で暗号化できました。
どうもです
PLAINとAUTH LOGINはユーザーが多いメーラーの標準だから
入れざるをえない場合が多いなあ、特にOEはAUTH LOGINのみだしな・・・
953 :
nobodyさん:03/08/27 01:01 ID:u0FmI7eS
徳岡は死刑!
徳岡は死刑!
徳岡は死刑!
徳岡は死刑!
954 :
nobodyさん:03/08/27 01:32 ID:sE8DgLVb
>>949 氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
956 :
nobodyさん:03/08/27 03:23 ID:WYjBpcKb
>>914 >>924 file()で不具合がおきると読み込み先のファイルが
初期化?されてしまうってほんと?
>>957 じゃあどうやって読み込むのが一番安全?
959 :
nobodyさん:03/08/27 06:55 ID:xerBhlD/
以前カウンタのことで質問した者です。カウンタ自体は無事完成したのですが、
練習のためfunction関数を使ってみることにしたのですが、いろいろ不具合が出てしまいました。
変数のスコープの関係だとは思うのですが、どうもよくglobalの使い方が分からなくて困っています。
関数Aの中で作成した変数$aを、他の関数Bでも使うにはどのようにすればよいのでしょうか?
-------------------------------------
function type1 () {
$a=1;
}
function type2 () {
$b=$a;
echo $b;
}
------------------
こんな感じだとしたら、関数type1のほうで、global $a=1;
とすればよいのでしょうか?それともそれに加えて何かするのでしょうか?
960 :
nobodyさん:03/08/27 08:42 ID:hdAnHpSn
>>959 そんなやりかたはやめたほうがいいと思うけどね
戻り値と引数をきっちり使ったほうがいいと思うよ
人が作ったライブラリを使用するとかで仕方ない状況なら、
各function の先頭に、global $a; を入れればとりあえず使える。
>>949 氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね氏ね
963 :
nobodyさん:03/08/27 12:04 ID:zafgHUg1
別サーバで稼働中のMicrosoftAccsess(*.mdb)のデータベースを
そのサーバにあるODBCを使って取得しようとしています。
メインのサーバにphpを置き、そこからアクセスしたいのですが
odbc_connectには、IPアドレスなどを記述する部分が見あたりません。
こちらはどのような工夫が有効でしょうか。
ご教授いただければ幸いです。
>そのサーバにあるODBCを使って取得しようとしています。
接続しようとしてるサーバにODBCドライバ入ってないとダメだべ。
>こちらはどのような工夫が有効でしょうか。
工夫とかいう次元じゃないよー。
ODBCドライバの設定でdsn決めるから、関数でそのdsnを指定するよろし。
965 :
963:03/08/27 16:32 ID:???
963です。
>964
ご回答有り難うございました。つまり、
・接続「元」のサーバーにODBCが導入されていること
・接続「先」の情報はODBCドライバがわの設定で、phpは
そのdnsを用いてアクセスすること
ということですね。
それでは接続元と接続先のODBCを調べてみることに致します。
お忙しいところ有り難うございました。
接続先はODBC関係ないけどな
967 :
nobodyさん:03/08/27 17:08 ID:JhjxiQIj
PHPのリファレンス本で、定番と言えるものがあったら教えてください。
他の言語である程度経験はあるので、「プログラミング入門」的な物ではなく
純粋にリファレンスとして使えるような本を探しています。
PHP本家のオンラインヘルプが一番なのはわかっていますが、都合により
ネット環境が無い所で開発を行う必要があるので。
よろしくおながいします。
>968
thx.見てきます。
ついでにもう一点。
皆様、PHPのソース書くときに使うオススメエディタは何ですか?
そのエディタのオススメな点等もセットで教えて頂けるとありがたいです。
ぐぐってみたところ、サクラエディタが良さげな気がしたのですが・・・
環境 (ヒット数が多すぎるので無視しました)
>970
どもです。
今日からPHPはじめますー。
よろしく。
開発者用のバージョンのスクリプトのファイル名でちょっと質問があるのですが、
developmentの略称として、dev、またはdvp、どれが一般的に使われてますか?
>>973 自分的にはdev。
こっちのほうがより一般的な気がする。
まあどちらかに統一していればいいのでは。
>>974 ちらっとみただけだけど、
書き込む時はロックしたほうがいいような・・・。
976 :
nobodyさん:03/08/27 22:03 ID:8IIJSD/6
Win版の場合、php.iniファイルを書きかえた後のrestart方法ってありましたら教えてください。
977 :
nobodyさん:03/08/27 22:14 ID:e88J+AwE
スレンダーでこんがりやけた小麦色の肌が眩しい奈未ちゃんです。
長い手足を絡ませて喘ぎまくる姿がいいですよね。
小さめの乳首は超敏感!
触られているだけでだんだんかたくなっていく様子がよくわかります。
オマンコももちろん・・・
無料ムービー観てね。
http://www.pinkschool.com/
そりゃPHPじゃなくてHTTPサーバの話じゃないの?
多くの場合サービスを止めて起動すりゃいいと思うが
OSとサーバによるなあ
979 :
nobodyさん:03/08/27 22:59 ID:DT1WOr81
ApacheモニターのRestartボタンをポチッとな
980 :
nobodyさん:03/08/27 23:55 ID:GrDQ3xBm
そろそろ1000だが次スレは誰が立てる?
983 :
981:03/08/28 16:01 ID:/GsWsnZj
っとこっちを上げてしまった
埋め立てと移行よろ。
>>982 宣伝するなら、最悪板のスレもリンク張っとけよ。