【PHP】下らねぇ質問はここに書き込みやがれpart12
2げと〜。セッションの渡し方がおかしい、から再開。
3 :
nobodyさん :2005/11/01(火) 18:13:53 ID:2mWy/qga
ImageMagickをPHPから使用しています。 文字の描画についてです。 フォントはインストールされているものではなく、 /home/hoge/fonts/ というフォルダを作りttfファイルを入れているだけです。 <?php $convert = "/usr/local/bin/convert"; $text = "Japan日本語"; $text = mb_convert_encoding($text, "UTF-8", "SJIS"); $font = "/home/hoge/fonts/ipam.ttf"; passthru("convert -encoding UTF-8 -size 620x100 xc:transparent -font $font -pointsize 72 -draw \"text 20,65 $text\" test.png"); ?> のように$tectの部分が「英語+日本語」なら表示されるのですが、 「日本語のみ」の場合文字を描画することができません。 どこが悪いのでしょうか?
5 :
nobodyさん :2005/11/01(火) 22:17:38 ID:1KpuORu0
6 :
3 :2005/11/01(火) 23:43:18 ID:???
スミマセン。 本スレで聞いてきます。
7 :
nobodyさん :2005/11/02(水) 01:03:27 ID:OGh2Qb66
【情報】中韓ですら米国産牛肉の輸入を禁止。日本は中韓に先んじて輸入再開。
2004年度に米国では38万8,000頭について狂牛病感染検査を行ったが最近まで
ジョハンズ長官は検査頭数を4万頭に削減するよう検討させていた。現在のところ、
日本、韓国、香港、台湾、ロシア、中国が米国産牛肉の輸入を禁止している。
ジョハンズ長官の代理を務めるチャールズ・ランバート氏と
デイル・ムーア氏はいずれも全米肉牛生産者・牛肉協会出身者。
(業界団体の人間が官僚になるのは米農務省の通例のようになっている。)
日本から派遣された衆院農林水産委員会の調査団を恫喝したとされる、
米農務省海外農務担当次官J・B・ペン氏は牛肉業界ロビイスト出身。
米農務省広報官エド・ロイド氏の説明によると、
ペン氏は恫喝などしておらず、日本側との会見は「和やか」であったという。
日本のPR業界には朗報:米農務省はアメリカ食肉輸出連合向けに、
1205万5,587ドル(約13億1,757万円)の販促費拠出を決定した。
http://human5.2ch.net/test/read.cgi/ms/1111209733/374- 成長ホルモンを使っているアメリカの牛肉をEUは全然輸入していない。
http://human5.2ch.net/test/read.cgi/ms/1111209733/202-
php part29 向きの話題だな
9 :
nobodyさん :2005/11/02(水) 02:24:33 ID:fpJz6w46
PHPでサーバサイド側のセッション管理をした場合、例えばフォームを 行き来する場合はどうなるのでしょうか。 hiddenでセッションIDを持ち歩く必要性があるという解釈でよいの でしょうか。
>>10 ごめんなさい。
本当に必要に迫られていたとはいえ、してはいけないことを
してしまいました。
以後、このようなことは絶対しないことにします。
すみませんでした。
>>9 の書き込みは無視してください
Σ('A`) PHPセッションスレってあったのか
13 :
nobodyさん :2005/11/02(水) 04:13:08 ID:ldBunQZE
PHPカルチャーでは true/falseは大文字/小文字どっちで表記するのがスタンダードですか?
>>13 マニュアルは大文字使ってる
PEARでは小文字に統一されてる
俺は小文字
17 :
nobodyさん :2005/11/02(水) 11:55:40 ID:ys+/VXrQ
外部ページのタイトルを取得する方法ってある?
よし、それを教えれ。
あのーRSSのことで申し訳ないのですが、 RSSのURL部分で同じURLを複数使うとリーダーの方でエラーが出ます。 gooリーダーだと一つだけしか読み取れません。 RSSで同じURLを複数利用することは不可能でしょうか?
$_SERVER['PHP_SELF'] と $_SERVER['SCRIPT_NAME'] 、おまいらどう使い分けてる?
>>22 path infoがついたときの値が違う。
24 :
nobodyさん :2005/11/02(水) 17:48:41 ID:okZwkysM
25 :
24 :2005/11/02(水) 17:51:01 ID:okZwkysM
24だとやりたい事が説明不足なので追記です 後ろから数えて1番目の部分だけ抜き出したいです
explodeじゃないのか? 世紀氷原使え。
27 :
24 :2005/11/02(水) 17:52:37 ID:okZwkysM
すみません explode ですね
$hoge = explode("/",URL); echo $hoge[count($hoge)ー2]; とか?
30 :
24 :2005/11/02(水) 17:55:37 ID:okZwkysM
31 :
nobodyさん :2005/11/02(水) 19:25:19 ID:5FYlO/ak
WindowsでApache入れてphpを動かそうとしています。 auto_prepend_fileで指定したいファイルのPATHに スペースがあるためか読み込めないのですがどうしたら良いのでしょうか?
Program Files だったりして・・・
>>31 確証は何も無いけど、rawurlencode してみれば?
>>31 php.iniの話だよな?
ttp://jp2.php.net/manual/ja/ini.core.php#ini.include-path −−抜粋−−
auto_prepend_file (string)
メインファイルの前に自動的に付加されるファイルの名前を 指定します。
このファイルは、include() 関数のコール時 と同様に読み込まれます。
このため、include_path が使用されます。
特別な値 none を指 定すると、ファイルを前に追加する機能は無効となります。
−−抜粋オワリ−−
だもんで、include_pathでディレクトリを指定して、auto_prepend_fileはファイルだけ指定?
auto_prepend_fileじゃないけど、うちはinclude_pathやらextension_dirにprogram filesみたいなスペースの有るディレクトリ指定しても問題無いよ。
言ってる事間違ってたらゴメン。
36 :
nobodyさん :2005/11/03(木) 00:31:12 ID:TOE31wc5
37 :
nobodyさん :2005/11/03(木) 01:18:54 ID:1YkpjiEQ
IDとパスワードを認証させるためのセッション周りを作っているのですが、 $_SESSION["hoge"]は$_POST["hoge"]のように変数を書き換えられないと 考えて良いでしょうか? 例えば、POST変数は他サイトからPOSTすれば容易に変更が可能になるかと思います。 SESSION変数ではこの点は心配しなくてもいいでしょうか? 具体的にはIDのみをSESSION変数として格納して持ち歩くか、 ID/PASS両方をSESSION変数として持ち歩くかで悩んでいます。 SESSION変数を外部から書き換え不可能なのであれば、 IDが書き換えられる心配が無いので、 IDのみ持ち歩くだけでも問題ないと思いますが、 もしそうでないのであれば、 持ち歩くページ毎に$_SESSION["ID"]と$_SESSION["PASS"]を 利用して認証を行わせる方法が必要かなと考えています。 どうかアドバイスお願いします。
ちょいっと聞きたいんだけど レンタルサーバーのインストールされた物の情報を見る方法ってどうやるんだっけ? 前どっかで見つけたんだがそのサイト忘れちゃった ***.phpで1行ぐらいの何かを追加すれば見れると思ったんだけど
39 :
37 :2005/11/03(木) 01:44:36 ID:???
40 :
37 :2005/11/03(木) 01:45:31 ID:???
>>37 セッション変数は *基本的* に外部からは書き換えられない、という前提でいいよ。
PHPそのもののバグやサーバーのセキュリティの問題で、可能性がゼロと言えないのは確かだろうけど。
一般的にはログオン後はID(ユーザーIDのことだよね?)だけをセッションで持ち回るけど、
認証の処理が軽いのなら各ページ毎で認証チェックをしても別にいいと思う。貴方のポリシー次第。
普通は、そこの部分よりもセッションハイジャックの防止を色々と考慮するんじゃないかな。
>>37 $_SESSIONの中身自体は外部から書き換えられるって話は今のとこ聞いたことないけど、セッションハイジャック対策としてパスワードみたいなの持ち歩かせるってのはあるかもね。
>>38 つ <?=`ls /bin /usr/bin`?>
43 :
42 :2005/11/03(木) 01:58:37 ID:???
>>42 煽りではなくて教えて欲しいんだが、セッションハイジャック対策として
パスワードのような物セッションに持たせるのは有効なのか?
46 :
nobodyさん :2005/11/03(木) 04:40:42 ID:q0r4E/Gh
配列の値で重複した値を消去するには どうしたらよいでしょうか? {2,4,3,2,4,6} → {2,3,4,6} こういう感じです。
array_unique()じゃだめか?
GLOBALSの問題って$_SESSIONとかも書き換えられるの?
49 :
nobodyさん :2005/11/03(木) 07:38:19 ID:q0r4E/Gh
>>47 なんかそれでよさそうです。
どうもありがとうございますた。
50 :
nobodyさん :2005/11/03(木) 07:56:32 ID:4j0uSvZA
4.4.0以前のものは最悪のセキュリティホールがあるとの事だったので 4.3.11から4.4.1にバージョンアップしました やり方は設定をそのまま引き継ぐ為、php.ini以外のファイルを全て上書きしました Apache2のサーバモニタにはPHPのバージョンは4.4.1と表記されているのですが phpinfoで調べると4.3.11のままでした phpinfoの表記も4.4.1にするにはどこを変えれば良いんでしょうか?
51 :
nobodyさん :2005/11/03(木) 08:11:53 ID:52LMl42Q
すみません。ほんとくだらない質問なので。 初心者です。 メールを一括送信するCGIを探してます。 送信先の一覧が管理でき、送信したメールに名前を表示できるようなやつです。 もちろんフリーで
メーリングリスト? スパム?
53 :
nobodyさん :2005/11/03(木) 09:25:29 ID:e6YB+Wfp
PHPでファイルのダウンロードをさせています。 ダウンロード自体は成功しますが、そのあとページを移動してもブラウザのURLが固定され変化しなくなります。 なんとかならないでしょうか? header("Content-type:text/plain"); header("Content-Disposition: attachment; filename=readme.txt"); header("Content-length: " . filesize("readme.txt")); readfile("readme.txt");
セッションハイジャック対策の一番簡単で低効果のものは、 セッション発行時のIPもセッション情報に保持して、突合せ。 ただし、接続ごとにIPの変わる可能性のある携帯電話では別の仕掛けが必要。 で、FA?
55 :
nobodyさん :2005/11/03(木) 11:22:01 ID:4j0uSvZA
スマソ この板で質問するような内容じゃありませんでしたね 自宅鯖板で聞いてきます
>>54 NATやプロキシ経由で来られると、そこからのIPはみんな一緒になっちゃうから確かに低効果だよね。
漏れはIPと$_SERVERで得られる情報(HTTP_USER_AGENT, HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE等)で
付き合わせているけど、効果があるのかな。
考え出すと激しく不安…
みんなどういう情報で付き合わせてるんだろう。
def.txt --内容-------- def -------------- def.txtの内容をabcに変えたいのですが、 $fp = fopen("./def.txt" "w"); fwrite($fp,"abc"); これでは abcdef になってしまいます。 ヘルプミー
>>57 "w" で fopen すると元のファイルはサイズ 0 になるから最終的には
abc だけのファイルになって、abcdef にはなるはずないけど。
何か勘違いしていない?
後、書き間違いだったらいいけど、"./def.txt" と "w" の間は , が必要。
59 :
nobodyさん :2005/11/03(木) 14:27:01 ID:3fnwo6aV
PHP4.3.10 以下と PHP4.4.x の次の差異 >ソースコード埋め込み定数参照の仕様が変更されているため って、具体的になんのこと?
>>59 引数に参照を期待している関数に対して、変数以外が渡せなくなった。
例えばこんなコード。
PHP4.3.10 では正常に動作し、3 と表示される。
PHP4.4x ではエラーになる。
<?php
echo array_pop(explode('-', '1-2-3'));
?>
こう書けばどちらでも正常に動作する。
<?php
$work = explode('-', '1-2-3')
echo array_pop($work);
?>
62 :
59 :2005/11/03(木) 15:51:31 ID:???
>>60 なるほど、そういうことなのか。
でも PHP4.3.10 でも、 function hoge(&$str) みたいに定義した関数を hoge("unko") のような形では
呼び出せなかった気がするけど、気のせい?
しかし、その手の問題なら、ソースの中を探すのが大変だな。
ちょっとした検索ツールを作らなくちゃいけなそうだな。
結局、
>>36 はどういうバグ?
$GLOBALSを使わなければ問題ないの?
たいして話題になってないということは、どうでもいいバグってことでFA
>>65 register_globals = On で使ってる環境がそれほど多くないってことなんじゃない?
該当環境だったら、結構致命的な気がする。
おれもこの際だからPHP4.4.1にアップデートしようと思ってはみたけど、なにやら mb_send_mail に
バグなんだか仕様変更なんだかがあるらしく、見送りたくなってきたところ。
register_globals = On だと普通に脆弱なコードだったりするからなぁ..
このところyumばかりだったから、ソースからのアップデートのやり方忘れちゃった。
register_globalsがOnといえばXRE(ry
register_globals = Off で $GLOBALS をつかっていない漏れのサイトは勝ち組
4.0.6だし、register_globals = Onだし、ヤバス。 apacheもPHPも上げて、スクリプトも書き直しつらい。 徹夜だ。
今回の事で初めて$GLOBALSの存在を知った俺は勝ち組ですか?
>>70 ええ、、まじで?
ずっとOFFだと思ってたんだけど。。。
79 :
nobodyさん :2005/11/03(木) 21:47:34 ID:e6YB+Wfp
グローバリータイーホ
てか$GLOBALS使わないと関数内でグローバル変数を参照できないじゃん それともみんなは関数内でglobal命令で参照してるの?
グローバル変数なんて使わない・・・
>>81 んなばかな
どんなにローカル変数で頑張ってもグローバル変数使うでしょ
それともぜーんぶクラス化してプロパティで参照してんの?
更新ボタン押したら二重投稿になるんだけどこれって二重投稿禁止にするしかない? ここは更新ボタン押しても二重投稿とかないけどこんな風にできない?
>>83 書き込んだ後で自分自身にリダイレクトしろ
function redirect($url){
header("Location: $url");
exit;
}
>80 うん。
>>80 俺も関数内でglobal命令で参照。
むしろ前者は言われて「そんなのもあったな」って感じ。
ここで言う$GLOBALSって自分で作った関数の中で、グローバルを引数として渡さずに、関数の中で使いたくて呼び出すときに $guro = 1; function hoge(){ $out = $GLOBALS['guro'] + 1; return $out; } echo hoge();//実行結果:2 こんなふうにやるときの$GLOBALSって意味ですよね? 中身丸見えのオープンソースのものなら、書き換えて攻撃とかやる気にもなるけど、漏れなんかの書いた変態スパゲッティソースを外部から変数名を推測して攻撃するなんてほとんど不可能だと思うんだけど、どうでしょう? register_globals = Offだけど、 extract($_GET);なんてやっちゃててるスクリプト山ほど書いて来たけど、一度もつつかれた事無いyp! しょぼい仕事しかしてないからですか。そうですか。吊ってきます。
だからextractなんて使うなといったんだ!
プロのみなさんの中にあえてしょぼい質問して恐縮ですが・・・
僕のサイト(素人サイト)は
register_globals=ONでしかうごかないページがあります。
まぁやばくなったら、$GET_['hoge']で変数を受け取れば
いいやって考えてました。
で、今回のセキュリティホール問題をみてて ON じゃやべー
って思って、httpで変数を渡す処理の部分は全部
$_GET['hoge']にしてOFFにしたんですが、うごかないです。
レンタル鯖屋が4.4.1にUPしたらしいのが原因?前は動いたのですが・・。
ちなみにプログラムはこれです。何かの本のサンプルをみて書きました。
クリック数カウントするためです。
http://www.hoge.com/count.php?no=1&url=http 〜〜
<?php
$_GET['url'];
$_GET['no'];
MYSQLへのカウント処理
//指定されたURLへリダイレクト
header("Location: " . $url);
?>
デバック方法でも何でもよいのでアドバイス下さい。。
エスパーの予感
>>89 <?php
$url = $_GET['url'];
$no = $_GET['no'];
//省略
?>
ではないのか?
>デバック方法でも何でもよいのでアドバイス下さい。。
echo $url; //debug
//header("Location: " . $url);
虫食い問題か・・・
>>84 それはファイルに保存して、表示させる前に呼び出すの?
それとも表示させた後?
>>84 function redirect($url){
header("Location: $url");
exit;
}
を書くことによって更新ボタン押しても二重投稿できなくなるの?
95 :
89 :2005/11/03(木) 23:29:19 ID:???
こんなばかな質問に答えていただいてありがとです。
>>91 そのとおりです。
指定するの忘れてました。
それで見事にできました。
尚、前までは僕が書いたソースで出来ていたのは
なぜかは謎です。
96 :
91 :2005/11/03(木) 23:38:57 ID:???
>>95 registor_globals = on だから
$url = $_GET['url'];
相当の処理が自動で行われて動いてたんだろ。
>>95 >$_GET['url'];
> $_GET['no'];
が何をしているか(何をしたか)考えなかった?
>>59-60 の「引数に参照を期待している関数に対して、変数以外が渡せなくなった。」
ってPHP5で5.0.1→5.0.5でも同じなの?
ここ数日のバグの記事を見て自鯖のPHP更新(5.0.1→5.0.5)してたら
Fatal error: Only variables can be passed by reference
ってエラー出た。
別に攻撃されてもいいや。 だって見られて困るデータにDBに入ってないし。 DBのデータは変動しないからバックアップ戻せばいいだけだし。 つか、漏れ様の、漏れでさえ解んなくなるプログラムの変数名予測して攻撃するなんて不可能。 手間>得るもの だからさ。
誘導されてDB板から参りました。 $sql = "まあ、ふつうのsql文"; $result = mysql_query($sql); $rows = mysql_num_rows($result); って書いてるところを $sql = "まあ、ふつうのsql文"; $rows = mysql_num_rows(mysql_query($sql)); って書くのは、パフォーマンス的にはどうなんでしょう? $sql = "まあ、ふつうのsql文"; while ($row = mysql_fetch_array(mysql_query($sql))) { いろいろ } なんてのもいかがなもんでしょうか? ずっと上の書き方してたけど、一行でも減らしたいと思うんですが。
確かに見られて困るデータは無いけど、クラックされて今まで頑張って書いたブログが消えるのは悲しいな。 こまめにバックアップとっとこう(´・ω・´)
次ページへ送信ボタンで飛んだときにページの最下部を表示させるには ・前ページ <a href="next.html#page_bottom">次のページの下</a> ・次ページ(next.html) ・ ・ ・ <a name="page_bottom"></a> </body> </html> で出来たんだけど 関数で呼び出したときにページの最下部を表示させるにはどうすればいいの?
ふざけんな
すいません ちょっと思い違いというか勘違いしてました
>91 エスパー(・∀・)イイ!
大垣さんのところにあるパッチは、どれにあてればいいの?
108 :
nobodyさん :2005/11/04(金) 04:23:52 ID:uML+jUAb
>>101 >って書くのは、パフォーマンス的にはどうなんでしょう?
かわんねーよ。ベンチとるまでもなく0.01秒以上の差がコンスタントに出たら、びっくりしてウソコもらしてやる。
>while ($row = mysql_fetch_array(mysql_query($sql))) {
何回mysql_query呼び出す気ですか?(これじゃループする度に呼ばれちまうんですけど)
>一行でも減らしたいと思うんですが。
減らすのは自由だが、今のご時世は可読性・保守性を重視する風潮があるので、同意を得るのは難しいと思われ。
人様に迷惑かけない程度にな。
>>108 うん
>>101 $rows = mysql_num_rows(mysql_query($sql));
でもいいのなら後この結果セットを使わないってことだよな。
だとしたらSQLでCOUNT(*)でもよさげ。
101の質問にはSQLが書いてないが、パフォーマンスを言うなら
SQLも無ければ考察は無理。
phpのパフォーマンスじゃなくMySQLに与えるSQLが影響を与える
可能性が大きい
と思う。つか自分で確認してみるという選択肢は無いのかね君には。
クリックでOutlookを起動させるにはどうすればいい?
114 :
nobodyさん :2005/11/04(金) 14:04:45 ID:J9d48tpa
頭がおかしくなったんだよ、きっと。
115 :
nobodyさん :2005/11/04(金) 17:25:37 ID:V1LIAVum
インクルードされたファイル内で、 自分自身のファイル名をすることは出来ますか?
>>115 日本語が物凄くおかしいが。
__FILE__ 定数をお使いなさい。
>>116 わぁーお、どもども。$_SERVERの方ばかり見てましたよ。
変な日本語は2ちゃん語の一種ということで・・。
>>117 マニュアルの3章〜5章には目を通しておいた方がよいよ。
余裕がないなら3章だけでも。
自分の日本語が変なのを2ちゃんのせいにするな( ゚Д゚)ゴルァ!!
119 :
118 :2005/11/04(金) 17:53:18 ID:???
訂正、章→編
quoted-printableでエンコードされている文字列を判別する関数はありませんか? メールから取得した本文がquoted-printableでエンコードされているとmb_detect_encodeでも変になるし・・ メールのヘッダから取るしかないのかな・・
quoted-printableは文字エンコードじゃないしね Content-TypeとContent-Transfer-Encoding見るしかないかな。
123 :
122 :2005/11/05(土) 11:26:14 ID:2U/gHABa
age忘れました
>>122 とりあえずhogehoge.comはやめておけ
使うならexample.comにしろ
126 :
122 :2005/11/05(土) 11:44:52 ID:2U/gHABa
>>124 掲示板のデフォ設定がhogehoge.comになってるようです
書き込みできるようになったら直します
>>125 そうです
レッツPHP!のP-BBSです
127 :
122 :2005/11/05(土) 11:47:36 ID:2U/gHABa
PHPぁぷろだも設置したいんですけど掲示板と同じくUP出来ませんでした 原因は同じだと思うのですが
error_reportingをE_ALLに
130 :
122 :2005/11/05(土) 12:02:23 ID:2U/gHABa
>>128 php.iniの270行目のことでしょうか?
error_reporting = E_ALL & ~E_NOTICE
↓
error_reporting = E_ALL
に変えてみました
131 :
122 :2005/11/05(土) 12:04:21 ID:2U/gHABa
133 :
122 :2005/11/05(土) 12:15:02 ID:2U/gHABa
04WebServerの接続情報を見てると 「POST 200 OK 正常に終了しました」とは出てます でも掲示板では書き込み出来てないんですよね・・・
134 :
122 :2005/11/05(土) 12:25:27 ID:2U/gHABa
>>134 phpinfo() 見せてもらうことってできる?
136 :
122 :2005/11/05(土) 12:37:34 ID:2U/gHABa
variables_order が問題かと思ったけど,正常だなぁ・・
テストしてみたんだけど POSTが渡ってない模様。GETが含まれるとなんか渡るぽい 試しに <form method="POST" action="/testbbs/p-bbsa.php"> を <form method="POST" action="/testbbs/p-bbsa.php?hoge=piyo"> としてやってみそ。挙動が変わる。(エラーになってるみたいだけど) なんか04WebServerの問題ぽいけど、よくわからん POSTされたかどうか確認するには <form method="POST" action="/test.php"> にしてやってPHP Variablesを見る。
139 :
nobodyさん :2005/11/05(土) 13:15:45 ID:1PzhgjSf
すまん、借りてるレンタルサーバに置いてある掲示板のphpで、 ・ホスト名が逆引きできないホストからの書込を禁止 ・正引きと逆引きの結果が異なるホストからの〜 ・特定プロバイダ、特定IPアドレスからの〜 したいのですが、サンプルが見つからず四苦八苦しています。 よくあるやり方だと思うのですが、ど…どなたかヒントを… (アクセス自体を禁止でも良いんですが、借りてるサーバが 余り.ht〜設定ファイルの自由が利かない。)
140 :
122 :2005/11/05(土) 13:23:31 ID:2U/gHABa
>>138 今度はBlackJumboDogで試してみたいと思います
どうもありがとうございました
>>139 何が分からんのか分からんが、
IPアドス -> ホスト名 は gethostbyaddr()
その逆は、gethostbyname()
この2つを使えばその条件をスクリプトに反映できるべ?
>>141 Apache2にはWindows用のインストーラ版あるから素直にそれを使え。
>>139 まあ色んな制限方法のひとつとして挙げてるんだろうけど
>正引きと逆引きの結果が異なるホスト
は普通に多いよ。
みんな、レスありがとう。ちょっと書いてみる。
>>145 その種のアクセスを制限する事の是非・(やその種の議論がよくある事)も分かってるんだけど、
サイト自体のユーザがある程度制限されていて、それを規制する事で良ユーザ/不正ユーザを切り分けできそうなんです。
(宣伝の書込をしつこくしてくる人が居て、前は逆引きできてたのでプロバイダに苦情を言って
本人に警告して貰ったてたんだけど、最近それを消してアクセスしてくるんですよね。)
俺んとこはIP追っかけても疲れるので 宣伝のドメインが書込みされたら 精神的ブラクラにLocationしてやってる
148 :
147 :2005/11/05(土) 17:21:19 ID:???
補足 もちろん宣伝ドメインは登録するけどね
俺はウィルスサイトに飛ばしている ただし賠償されるといやなのでime.nu経由で
書き込んだサイトに飛ばすってのもいいかも
ほんとつまらない質問だと思いますが 100000という数字を下4桁でピリオドをうって10.0000としたい場合 どうすればいいのでしょうか? number_formatとかで、できるんでしょうか? すみませんが教えてください。
>>151 やってみたか?試してみてどこがどうなってこれこれになってしまって
どうしたら?って質問するようにしたほうがいいと思うよ
number_format(100000 / 10000, 4, "," "");
>>152 ありがとうございます。
試してはみたものの、先に答えが知りたくなって説明不足でした。
気をつけます、スイマセンでした
154 :
nobodyさん :2005/11/05(土) 18:34:45 ID:b1n2JPhi
0〜5までの数値を順番に逐次画面出力したいのですが、 バッファに記録されているようで、プログラム終了時に一括出力されてしまいます。 (バッファをフラッシュしているにもかかわらず画面には出力されない) どのようにすればよいのでしょうか $i = 0; while ($i < 5) { print $i."<br>"; $i = $i + 1; print $i."<br>"; ob_end_flush(); ←フラッシュ sleep(3); }
>>151-153 >>152 の方法だと最初の4桁しかピリオドつかないけどいいのかな?
function number_format_jp($a)
{
$b = '';
$n = strlen($a);
for ($i = 1; $i <= $n; $i++) {
$c = substr($a, -$i, 1);
$b = $c . ($i > 1 && $i % 4 == 1 ? '.' : '') . $b;
}
return $b;
}
$a = 1234567890;
echo number_format_jp($a); // 12.3456.7890
>>154 前スレに同じ質問があった気がするなぁ
157 :
151 :2005/11/05(土) 19:09:51 ID:???
>>155 今回はとりあえず上の感じで良かったのですが、
4桁毎にピリオドで考えてくれたワケですね。
勉強になります。有難うございました。
>>154 つ flush() or ob_implicit_flush()
今回みたいなセキュリティーの問題でレンタル鯖環境に変化が生じた場合なんだが。 ドメイン取得、レンタル鯖借りる手続きを代行。サイト構築、プログラムも書いて納品。 一応手を離れたことにはなってるけど、これでレンタル鯖がphpに対策してプログラムになんか問題が起きたらこれはうちが無償対応すべき問題? もちろん気になって色々テストしてるけど、問題は起きてない模様だけど、こういうケース(手を離れた仕事)に関してはどう対応すべきだろう? 実際はhtmlレベルでの更新作業では関わってるんで、シラネとは言えないんだろうけど。
ていうか、そういう時の為に保守料金貰うんじゃね?
>>159 更新作業で金取ってないの? だとしたらえらい勿体無い話だが
逆に気にしてテストするにしたって工数取られるわけで、
保守契約結んでない状態でそんな考えでいること自体どうかと思うぞ
>>160 簡単な修正や、バックアップをして保守料金(レンタル鯖代金に上乗せ)してるケースもあります。
>>161 今回気にしてるのは、完全に手を離れたケースはどうなるのかな?と。
立ち上げまでのやり取りで、もう、手を切りたくなっちゃう倉っているじゃないですか?
こいつとかかわり続けるだけでもう損失、みたいな。
そういうとこに限ってなにか文句言ってきそうな悪寒。
「おたくのプログラムが問題起こしてるんだからなおせよ、ゴルァ」とか
そういう客は、ドメインの管理とか、レンタル鯖の料金も全部そっちに請求が逝く様にしちゃってます。というわけで、なにか、作業があれば、その都度見積もりって形になってるのです
>>162 だから「phpでこういった問題がありまして、セキュリティ上の対策を打たないと
大変危険です。ところで現在セキュリティ強化キャンペーンを行っており・・・」
で見積もり切ったらええやん
165 :
nobodyさん :2005/11/05(土) 22:09:28 ID:HRh85ELj
$abc = 111; $hoge = <<<AAA $abc.def AAA; $hoge -> 111def にしたいのですが、 ヒアドキュメントの場合はどう記述するのが標準なのでしょうか? 上のように記述すると、 111.defとなってしまうので困っています。
>>163 ワロスww
こういう時こそ、商魂出さなきゃ損だな
>>165 マニュアルの文字列#ヒアドキュメント構文の所に載っている気がするが・・・
個人的にヒアドキュメントって使わないんだが、
メリットって"をエスケープせずに含められる程度?
>>163 ふと、阪神大震災の時のことを思い出した。
壊れた屋根に頼んでもいないのにブルーシートを張ってくれた心優しい工務店…
人の情けが身にしみるぜって思ってたけど、後日、請求書が来た。
リフォーム詐欺みたいに, セキュリティに問題がある,と煽って稼ぐ業者がでてきたら面白いねww
>>165 {}で囲むのが一番安全
{$abc}def
ピリオド不要
>>163 いや、もう、構築の段階で度重なる仕様変更で、ソースがひどいことになってるんです。
もう手を切るつもりで書いたんで自分で書いたのに読解不能。
というわけで、どう考えても割にあわない。
>>171 $abc = 111;
$hoge = "{$abc} def";
こうだよね?
もれはピリオドで繋ぐっていうのはほとんどしないなぁ。{}で囲んで埋め込む。
速度は、ピリオドで繋ぐ方がパースが早いって話を聞いた事あるけど、まぁ漏れが関わるレベルならこれで問題ないし、この方が可読性いいし。
>>172 >$hoge = "{$abc} def";
>こうだよね?
よく見てみ.
>>171 (
>>165 )はヒアドキュメント内の話.
たぶん実際は {$abc}def の前後にも文字列が入ったりするんだと思う.
だから, $hoge = "{$abc}def"; ってまとめてしまうことはできないはず.
174 :
nobodyさん :2005/11/06(日) 02:14:20 ID:fwhEDGoz
PHPのリンクカウンターを落してきて設置したのですが管理画面から登録が出来ません レッツPHPという処から頂いてきましたが鯖はRIBBONなのですが IDとは何処で調べるものでしょうか?
普通は配布元で聞く
176 :
nobodyさん :2005/11/06(日) 03:16:31 ID:fwhEDGoz
判りました、ありがとうございます
>>172 >もう手を切るつもりで書いたんで自分で書いたのに読解不能。
あるある
178 :
nobodyさん :2005/11/06(日) 09:10:04 ID:vNGrg//I
>>156 >>158 レスありがとうございます。
それも試したんですが、だめでした。
php.iniやhttpd.confの設定で
『絶対にフラッシュをさせない』指定でもあるのでしょうか。
聞いた事もありませんが・・・
>>177 末永くお付き合いしてもらいたいのに、読解不能なソースしか書けなくて
二度と依頼のこなくなった俺が来ましたよ。
それはソースの書き方の問題じゃないような希ガス
182 :
nobodyさん :2005/11/06(日) 16:01:31 ID:vNGrg//I
183 :
172 :2005/11/06(日) 16:04:38 ID:???
>>173 なるほど。
>>177 もうね、作ってる途中で、度重なる仕様変更で、書いたそばからブラックボックス化して臭いものにフタするような書き方っていうのかな?
同じ値をもつ変数あったよな?と思いながら適当にだぶらない名前つけてさ。
処理の途中で、いろんなとこで参照しなくちゃならん変数書き換えてたりとか。
もう自己嫌悪。動けばいいんでしょ?みたいな。
>>180 他の人からみたらたいした意味もない関数作ってひとりで悦に入ってるってのは漏れもやります。
あとで見ると自分でもしばらく理解出来ないorz
184 :
nobodyさん :2005/11/06(日) 18:15:47 ID:rRY/mvs2
ユニークで推測されることのない暗号文字列を作りたいのですが、 md5(uniqid(rand(),1)) だと返される文字列が長すぎます。 暗号化された文字列を、携帯で入力してもらうことも企図しているので、 もっと短く生成する方法はありませんか?
携帯なら固体番号が一番
長すぎるんなら短くしろよ。
小さくしすぎて挿入できません(><)
189 :
nobodyさん :2005/11/06(日) 20:04:45 ID:vNGrg//I
<FORM name="form1" method="post" action="check.php" enctype="multipart/form-data"> <INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="100000"><INPUT TYPE="file" name="image"> </FORM> 上記HTMLで、あるプログラムに画像を送信しました。 このとき、画像自体は送信先のプログラムで取得できるのですが、 imageという項目名を取得することはできないでしょうか? 宜しくお願い致します。
PHPって1回どこかでファイルをincludeすると どこからでも使えるみたいですけど、 使うたびにincludeした方がいいのかな? そうしないとEclipseでエラー扱いされてしまうので 構文的に間違っているのかと。
すまんおしえてくれ。 今回の穴で何が問題なんだ? register_globals=OFFだったら無問題なのか? それなら以前のregister_globals問題からいわれて いることではないか? 今回は、それプラスばっちあてが必要ってことか? うーん おまえらアフォな俺におせーて
>>193 たしかにregister_globals=OFFなら問題はない。
しかし、レンタル鯖や共有サバなんかだとONになっていることがある。
といっても、register_globals問題については変数の初期化をきちんとしてやればよかった。
ところが、register_globalsがONのとき、定義済み変数 $GLOBALS が上書きできることが発見された。
これは、予期せぬところにも波及することになる。
>今回は、それプラスばっちあてが必要ってことか?
×バッチ
○パッチ
195 :
nobodyさん :2005/11/06(日) 21:22:23 ID:vNGrg//I
>>191 $_FILESでは項目名をもっていないようなんです。
項目名は、
<INPUT TYPE="file" name="image">
の『image』という文字列です。
どうか宜しくお願い致します。
mb_send_mail の使い道がいまいち掴めないです。 JIS変換+MIMEエンコードを内部でやってくれると聞いたんですが、 Toを 「"送信先" <user@domain>」 にすると化けます。 mb_send_mail ( string to, string subject, string message [, string additional_headers [, string additional_parameter]] ); とありますが、to, subject, message, additional_headers, additional_parameter の 全部の引数に対して日本語を気にしなくていいってわけじゃないんですかね? (一部だけ??) そうなったら全部の引数に JIS変換と mb_encode_mimeheader が必要になって、 そうなると mb_send_mail の意味が謎になってしまいます。
>>195 print_r($_FILES); を実行してみれば、どうやれば取得できるか判ると思うよ。
<?php
$itemlist = array_keys($_FILES);
foreach ($itemlist as $item)
echo $item.'<br>';
?>
「項目名」ってなんなん? 「image」という文字列ってなんなん? $_FILES["image"] Array ( [name] => xxx.filename [type] => application/x-zip-compressed [tmp_name] => /hoge/piyo.x [error] => 0 [size] => 12345 ) どれが「項目名」なん? もしかして $_FILES["image"] ~~~~~~~ ?
199 :
nobodyさん :2005/11/06(日) 21:39:12 ID:vNGrg//I
そうです。
>>198 $_FILES["image"]
~~~~~~~ ?
です。
>>197 早速試してみます!
ありがとう!
>>195 name属性なんか自分が決めるものだろうに、なぜ後からあえて取得する必要があるのだろう…
>>196 mb_language() はやった?
>>196 mail()関数のマニュアルに書いてあることなんだが、
>注意: to引数には "Something <
[email protected] >" の形式のメールアドレスを与えることはできません。 MTA(特にWindows環境下の)と通信する際にmail関数はこれを適切にパースできません。
mb_send_mail()関数はmail()関数のラッパー関数なので、当然この制限がmb_send_mail()関数にも絡んでくる
toに"送信先<
[email protected] >"形式で渡しているのが悪い。ヘッダーに含めるべき。
ただ、この辺の扱いはMTAによって違っているらしく、その辺は試行錯誤するしかないかも。
>>199 なら、$_FILESの中には'image'は無い。
$_FILES['image']連想配列のキーだな
204 :
nobodyさん :2005/11/06(日) 21:58:37 ID:vNGrg//I
>>197 むりでした・・・(泣)
>>200 POSTで送られてきた全ての画像(数が不明)を、POSTメソッドで別PGに転送する
処理で必要なんです。
どんな項目名で送られてくるか分からないので、
$_FILES[$koumokumei]
みたいにしたかったんです。
>>204 どう無理だったのか書けよ。
それから情報は小出しにするな。
想定している動作の具体例は最初から書けよボケ
そろそろエスパーが必要な雰囲気(なぜか変換できる)
>>204 foreach($_FILES as $key => $files_arr) {
$key がほにゃら
}
208 :
207 :2005/11/06(日) 22:12:12 ID:???
書いてから思ったけど、どういう名前で送られるかわからないって そっちをなんとかしたほうがいいかもな
209 :
196 :2005/11/06(日) 22:22:49 ID:???
>>201 mb_language( 'Japanese' );
mb_internal_encoding( 'EUC-JP' );
してます。
>>202 toにはその形式できないんですね。
知らなかった。。教えてくれて有難うございます。
ちなみに subject はちゃんと JIS+MIMEしてくれていて、
additional_headers の中身に
From: "送信者" <user@domain> やら
Reply-To: "返信先" <user@domain> やらを含めましたが、
JIS変換しかしてくれませんでした。
ということは、
to:日本語可(JIS変換のみしてくれる)
subject:日本語可(JIS変換+MIMEエンコードしてくれる)
additional_headers:日本語可(JIS変換のみしてくれる)
でFAですかね?
<input type="file" name="upfile[]">... てな感じにすれば、ええんでないの? それはまぁ置いておくとして、別のプログラムに転送する時に わざわざ元のnameを保持する必要は無いべ。
>>209 mb_send_mail() はPHPのバージョンによって挙動不審になることがあるので
自前でコード変換、ヘッダを追加して mail() の方が安心だと思う。
212 :
nobodyさん :2005/11/06(日) 22:43:10 ID:vNGrg//I
>>210 これはproxyのプログラムなんで、利用者側のプログラムをいじれなかったんです。
>別のプログラムに転送する時にわざわざ元のnameを保持する必要は無いべ
ごもっともです。でもコードを綺麗にしたかったので。
>>207 解決です。凄く助かりました。
ありがとう!!
213 :
193 :2005/11/06(日) 23:24:50 ID:???
cronを使って定期的にPHPを動かす方法ってないですか? 今までwgetを使っていたのですがxreaでphpバージョンアップされてから動かなくなってしまいました ブラウザでアクセスすると正常に動作するのでプログラム自体には問題ないと思われます よろしくお願いします
なぜcronの方を疑わない?
cron で .php を指定すれば CLI で動作するはず
>>120 おそレスですがアドバイスありがとうございます
218 :
nobodyさん :2005/11/07(月) 11:58:58 ID:B941PQ6R
ディレクトリにあるフォルダ一覧を取得・表示したいです 現在は以下を代用していますが、換わりになるPHP関数はないでしょうか? $com = "ls -1 ".$path." > temp.csv" exec($com); $db = fopen ("temp.csv", "r"); while ($list = fgets($db, 1024)) { $list= trim($list); if(is_dir($path.$list)){echo $list."<br>"}; }
>>218 opendir, readdir, closedir
221 :
218 :2005/11/07(月) 12:10:37 ID:???
222 :
nobodyさん :2005/11/07(月) 12:10:50 ID:B941PQ6R
CSVファイルに保存するとき、カンマを入力することでカンマ区切りに保存されるのけど、 たとえば <?php $name = 〜; $num = 〜; $goukei = $name . "," . $num ; ?> このようなプログラムで$goukeiをCSVに保存すると、$nameと$numが別々 保存される。 しかし、$nameに,,,,と入力すると、勝手に4列空白ができてしまうけど どうすればそれを回避できる?
>>224 その保存する部分のスクリプト晒してみ。
226 :
224 :2005/11/07(月) 19:48:56 ID:???
>>225 //*****カンマ区切りで変数代入
$z = $name . "," . $mail . "," . $naiyou . "," . $today . "," . $id . "\n";
//*****hatsu.csvにHNとメルアドと内容を保存
if($naiyou != Null){
$fp = fopen('hatsu.csv','a');
flock($fp, LOCK_EX);//書き込み時に排他ロック
fputs($fp,$z);
fclose($fp);
}
>>224 ,を文字列として扱いたいということか
""でくくっとけ
$name = '",,,,"';
228 :
224 :2005/11/07(月) 19:54:34 ID:???
>>227 そこはフォームとして、入力したいから,,,,だけじゃないので
訪問者の直前のurlをゲットしたいのだが、どのようにすればいいのでしょうか。 定義済みの変数にあったかな?
>>229 ちなみに直前の URL (リファラ) はセキュリティソフトが消したり,
クライアントが任意の値を設定できるから信用できないデータであることをお忘れなく.
参考程度にしか使えない.
232 :
nobodyさん :2005/11/07(月) 21:00:29 ID:F6uZDwtF
>>228 227がいいたいのは"でくくれと。
$z = '"'.$name . '",'....
じゃないかいな?
板違いだったらすみません。 サーバは2000proでmysqlを使っているんですが test.phpに書くマルチバイト文字は表示されるんですが mysqlから取得したデータのマルチバイト文字はすべて?に変わってしまいます。 何が悪いんでしょうか。
>>231 ありがとう
$url = $_SERVER['HTTP_REFERER'];
echo $url;
これで表示可能?
>>233 バージョンも設定も何も無いと答えようがないし板違い
データベース>MySQL総合Part5
過去ログ読んでから質問すっぺ
237 :
nobodyさん :2005/11/07(月) 22:42:27 ID:mBmWY1oA
>>233 MySQLのマルチバイト関連ってバージョン毎にえらく違う・・・と言うか、
4.0系と4.1以降で全然違うから
238 :
224 :2005/11/07(月) 22:56:59 ID:???
>>232 これでやるとただ"〜"みたいになるだけだった
未だに224が何をしようとしているのかよく分からない・・・
>>238 「ただ"〜"みたいになるだけだった」 ファイルを当然のことながら
fgetcsvかなにかで読んでみて確認したんだよな?
結果どうだったか書けよ。その上で疑問を書けば会話が継続する。
>>240 同じく・・・
こういうときにエスパーキボンヌなのかな
$_SERVER['SCRIPT_NAME'] でファイルパスを出したんだけど ・・・・/hoge/giko/index.html の様に最後に必ずファイル名が入ってしまう。 そうではなく ・・・・/hoge/giko/ の様に出力させる変数ってある?
>>245 pathinfo() とか dirname() でディレクトリ名を取り出す
248 :
nobodyさん :2005/11/08(火) 09:43:04 ID:Tw4XCGRO
>>238 俺的エスパー解釈によると彼はこう言いたい。
「フォームから来たデータをカンマ区切りで保存して、それを表示するのに、カンマ毎に分割して表示するスクリプトなんですが、入力した文字列にカンマが入ってしまうと、表示するときにそこで分割されてしまいます。どう対処すればいいですか?」
カンマを全角にでもしとけゴルァ(゚Д゚)
>>248 なるほど.把握.さすがエスパー.
例えば,\1,000 っていう文字列なら \\1\,000 にして,
使うときに \1,000 に戻す.
250 :
249 :2005/11/08(火) 11:21:08 ID:???
CVS を読み取るときに \, は文字列中のカンマとして無視する.
自分で書いて、自分だけで読み込むのならカンマで区切らなくても キーボードから入力できないような文字コードで区切ればいいじゃん。
CSVの良く見る仕様としては、 1.行は改行で区切る 2.列(項目)は,(カンマ)で区切る 3.列に,(カンマ)や改行を含める場合は"〜"でくくる 4."〜"内に"を含める場合は""と記述する だと思うんだけど、どうだ?
file_exists()関数って引数に絶対パスはダメなんだっけ? 存在しているはずのどんなファイルでも絶対パスで通すと存在しないと言われる。
>>253 CSVの仕様自体がはっきりしてないけど、
漏れはちみと同じ仕様にしてる。
256 :
254 :2005/11/08(火) 18:23:25 ID:???
自己レス 原因が分かった。OSはWindows2000でPHPを動かしているんだが その場合絶対パスは C:\tmp\hoge\hoge.txt みたいな形式になるんだ。 サーバーの絶対パス形式 /hoge/hoge.txt をfile_exists()に通しても反応が返ってくるわけが無いよな。 C:\tmp\hoge\hoge.txt を通したらちゃんと反応があった。 しかしややこしいな。OSの絶対パスか、HTTPサーバーの絶対パスか、どちらかで 統一してくれれば混乱しないのに。
257 :
nobodyさん :2005/11/08(火) 18:32:33 ID:SOO2TAAd
>>256 何に対して、OSの絶対パスか、HTTPサーバーの絶対パスを統一して欲しいの?
各関数の引数?
258 :
254 :2005/11/08(火) 18:34:25 ID:???
>>257 まずは関数の引数を統一したいね。
UNIX系とWindows系で\と/の違いを吸収したい。
259 :
256 :2005/11/08(火) 18:39:47 ID:???
>>258 ???
例えば、file_exists() が、HTTPサーバーの絶対パスしか受け付けなければ
URLで参照できる位置にないファイルは存在チェックできなくなるんだが、それでいいの?
後、Windows系でもパス区切りは / で問題はないはず。
先の例でいれば、file_exists('C:/tmp/hoge/hoge.txt') でも動くと思うけど。
>>258 つーかwinでもunix式のパスで大丈夫だと思うが。
まあPHPのバージョンも晒してない奴に何とも言いようがない罠。
ちなみに手元の4.3と5.0ではfile_exists("/program files")でもtrue返す。
スクリプトがDドライブにあればD:をルートとした結果になる。
261 :
254 :2005/11/08(火) 18:43:29 ID:???
>>259 $_SERVER['SCRIPT_NAME']
で帰ってきた値を引数にするとfile_exists()もis_file()も正常に動作しない。
これってうまく対処できないかな?
>>261 $_SERVER['SCRIPT_NAME']の中身は確認したか?
263 :
257 :2005/11/08(火) 18:55:00 ID:???
>>261 $_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
知っているのはWEBサーバーだけだから変換するのは無理。
スクリプトのファイル名なら __FILE__ で取得できるけど。。。
本当にやりたいことはそれでいいの?
>>259 のコテハン間違えた。
>>257 だったよ。ごめんね。
いや、むしろ$_SERVER['SCRIPT_FILENAME']ってのがやりたいんじゃないかと。 まあincludeとか何もしてないなら__FILE__と変わらんけど。
DBから情報を引き出して表示するphpをWEBブラウザで表示した場合にキャッシュが効いてしまって困っています。 phpをブラウザ表示 ↓ php表示と関係無くDB内容が更新(他の人が作業等) ↓ phpをブラウザ再読み込み(更新) ↓ キャッシュが効いていて変更が反映されない 今困っているのはhtmlソースの記述部分でそうなっています。 このhtmlに変数を入れている部分がキャッシュされているんじゃないかと思う部分です。 変数部分が"selected"に1つだけなり初期選択になって欲しいのですが、firefoxでは駄目です。 <option value=\"0\" $michaku>未着手</option> <option value=\"1\" $chakushu>着手</option> <option value=\"2\" $kanryo>完了</option> <option value=\"3\" $saigen>再現待ち</option> <option value=\"4\" $etc>その他</option> httpヘッダは下記のようにもしてみましたが駄目です・・ header("Cache-Control: no-cache,must-revalidate"); header("Pragma: no-cache"); metaヘッダも書いてみました・・ print '<meta http-equiv="Pragma" content="no-cache">'; print '<meta http-equiv="Cache-Control" content="no-cache">'; と思ったらIEは大丈夫でした・・ firefoxでは駄目ですね・・ 狐のバグ?
266 :
254 :2005/11/08(火) 19:17:22 ID:???
>>263 > $_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
> 知っているのはWEBサーバーだけだから変換するのは無理。
なるほど(´・ω・`)ショボーン
> スクリプトのファイル名なら __FILE__ で取得できるけど。。。
> 本当にやりたいことはそれでいいの?
ファイルのやりとりは
./hoge/hoge.txt
のような感じでやりとりしたかった。
__FILE__だと
C:\tmp\hoge\hoge.txt
という様に表記されるからそれに合わせてファイル指定も変更しなきゃならないか・・・
267 :
265 :2005/11/08(火) 19:43:14 ID:???
>>265 すいませんちょっと分かりにくい書き方しました。
<option value=\"0\" $michaku>未着手</option>
って部分はフォームのセレクトメニューのオプションです。
ここを別のメニュー選択をして再読み込みすると、firefoxではselectedが効かず読み込み前に選択していたものがそのまま選択されます。
なのでDBが絡まなくても起きる現象のようです。
他のセレクトメニューがあるwebサイトでも試しましたがfirefoxの仕様?
268 :
254 :2005/11/08(火) 19:54:08 ID:???
C:\tmp\hoge\hoge.txt に対して dirname() をかけると C:\tmp\hoge が帰ってくる。だができればそうではなく C:\tmp\hoge\ のように\もしくは/まで含めたい。$_SERVER['SCRIPT_NAME']で帰ってくる値の場合 パス区切り文字は常に/だったが、__FILE__の場合パス区切り文字はUNIX系かWindows系 で/と\と違うから別々に対応しなければならない。そこが__FILE__の面倒なところかな・・・
>>265 Firefoxだとselectedにかかわらず、ユーザが直前に選択していたものがそのまま残る。
キャッシュが残っているためではなく、Firefoxの仕様だと思われ。
再読み込みすれば、生成されたHTML自体(=selectedの場所)の変化は反映されてるよ。
ただ、表示上は前回のユーザの選択が残ってるだけ。
>>268 お前はまずレスを全部嫁。
独り言はチラシの裏に書け。
270 :
254 :2005/11/08(火) 20:12:17 ID:???
>>269 > お前はまずレスを全部嫁。
> 独り言はチラシの裏に書け。
ちょ、ま・・・
でも環境によって\か/みたいに違えばそれに合わせてプログラム組む必要があるだろ。
272 :
254 :2005/11/08(火) 20:16:13 ID:???
(´;ω;`)
>>265 ちょっとやってみたけど、以下のヘッダすべてを送出すると大丈夫っぽい。
Firefox1.0.7(Windows)で確認。
header('Thu, 01 Dec 1994 16:00:00 GMT'); //過去の日付
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
274 :
273 :2005/11/08(火) 20:27:34 ID:???
>>273 ごめん。漏れコードとマニュアルからのコピペを合体させたので
' と " がゴチャ混ぜだけど、意味はないんで。
275 :
254 :2005/11/08(火) 20:37:41 ID:???
自己解決(`・ω・´) シャキーン DIRECTORY_SEPARATOR
>>272 $_SERVER['SCRIPT_FILENAME']が返すパスのセパレータは/。
>>265 Cache-Control: no-storeさえあればいけるみたいね。
>>275 自分で頑張っているところをアレだけど。
file_exists('C:\tmp\hoge\hoge.txt') でも
file_exists('C:\tmp\hoge/hoge.txt') でもOKなんだが。
278 :
254 :2005/11/08(火) 20:48:27 ID:???
>>278 お前その顔文字キモイからやめれ。
つーか帰れっつってんだろ。
解決したんだろ。
280 :
273 :2005/11/08(火) 21:11:22 ID:???
>>276 あれれ、本当だ。もう一度やってみたら仰せの通りだった orz
しかも、
>>273 で書いたの間違ってるし… 重ね重ね orz
header('Thu, 01 Dec 1994 16:00:00 GMT'); → header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');
というわけで、整理して書き直します。
以下を送ればOKです。
header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
>>276 氏の指摘により、再度確認したところ実は以下だけでOKでした。
header('Cache-Control: no-store');
281 :
265 :2005/11/09(水) 09:48:39 ID:???
>>269 さん、
>>273 さん、
>>276 さん、ありがとうございました。
細かいところですが挙動が気持ち悪くてスタックしていたので助かりました。
firefoxはサーバに従うってポリシーが多くなっているような気がしますね。
それがRFC準拠なのかしら?
282 :
nobodyさん :2005/11/09(水) 11:48:20 ID:qQrEl19O
Tclスレがみあたらないのですが、どこかで話題になってるスレってありますか?
>>282 うーん。プログラム板のphpスレの方がいいのかも知れず。
>>284 多分無理。1つのパソコンで1人のユーザーが同時に起動した同じソフトを
サーバー側から区別する方法がないと思う
JavaScriptとかと組み合わせれば何とかなるカモ知れんけど。
session_regenerate_id()あたりを使えばできるんでないかのぅ。
287 :
284 :2005/11/09(水) 15:18:16 ID:???
>>285 さん
>>286 さん、レスありがとうございます。
なるほど。
毎回セッションIDを変更してあげると、URLバーに表示されているセッションIDは
古いセッションIDで、実際のセッションIDとは既に異なっているからOKってことですね。
目からウロコです。
実際にやってみた所、古いセッションIDがすぐに破棄されなかったので、
(古いセッションIDでも開けてしまう)以下の様な流れで期待通りになりました。
session_start();
$savevalue = $_SESSION;
session_destory();
session_start();
session_regenerate_id();
$_SESSION = $savevalue;
助かりました。ありがとうございました。
echo "$val"; は正常に動作するのに echo "$_SESSION['TEMP']"; はエラーが返されます。 何かまずい記述でもありますか? ちなみにちゃんと$_SESSION['TEMP']は変数登録してますよ。
>>288 echo $_SESSION['TEMP'];
もしくは echo "{$_SESSION['TEMP']}";
>>290 あ、なるほど。
連想配列は{}でかこってやらなければいけないんですか。
カムサハムニダ( ´∀`)
文字列に含まれるurlを正規表現で置き換えたいんだけど urlとして使える文字ってわかります?
あ、今わかっている分を書いておきます。 見えやすいように全角で書きます。 英数字+−.%&=?/〜 他にあります?
:_忘れてました。
はっ、すいません。移動します。
>>292 RFC 3986の Reserved Characters と Unreserved Characters
298 :
nobodyさん :2005/11/09(水) 23:16:26 ID:MgDRn7NQ
スーパーグローバル変数のPOSTを使って処理を判断しているところがあるのですが, 処理が終わった後,POSTを書き換えたいのですが,できません. 例えば, if(StrNatCmp($_POST["a"], "1") == 0) { 〜処理1〜 $_POST["a"] = "2"; //$_POST["a"]を書き換える } else { 〜処理2〜 } 最初に$_POST["a"]が"1"を持ってきたときだけ処理1を行い, それ以外,データがなかったり,処理1をした後,更新ボタンを押したりしたときなどは, 処理1を行わないようにしたいです. 上記のやり方では,更新ボタンを押したら$_POST["a"]は"1"のままで処理1を行います. POSTを書き換えるか,初期化するにはどうすれば良いでしょうか. 教えて下さい.よろしくお願いします.
>>298 根本的に何かが間違っている希ガス…
更新されたらされたで別の処理が並行して走るだけだから、
初回の実行の中で更新(二度押し?)を監視しても意味が無い…
Javascriptとかセッションとかクッキーとか使うべ。
もし一回の処理の中で、条件式以降に式結果を評価したいなら、
$_POSTなんかいじろうとせずに、$flag = 1とかしておけば?
ブラウザからファイルをアップロードしてもらい、サーバー側で ファイルを開き中の内容を読み込む処理ってどうかいたらいいでつか?
>>300 フォームから送信させて、PHPから開くだけでは?
詳しくはマニュアル参照ヨロ
htmlからこのようにファイルを選択してもらい、サーバー側に送ってもらいたいのです。 <form name="x" id="x" enctype="multipart/form-data" method="post" action="test.php"> <INPUT TYPE="file" name="upfile" size="40" /> そこでtest.phpで受け取ってファイルの中身を読むというようにしたいのですが、 $file = get_file_contents($_FILES['upfile']); ではいかんとですか?
マニュアル読んだとです。人のぬくもりを感じた夜とです
305 :
nobodyさん :2005/11/10(木) 01:18:11 ID:iJI+8Gw+
298です.
返信ありがとうございます.
>>299 $_POSTをいじりたくなかったのですが,サーバ側にあるテキストファイルを
送られてきたデータで書き換える処理をするため,
何度も処理を行うことは避けたかったのです.
>>301 おっしゃるように,
テキストファイルを書き換える画面はフォームで作成し,
PHPで受け取るようにしています.
今のところ,例えば,x行の後ろに***を挿入するというデータを送信すると,
1回目は良いのですが,更新ボタンを押すたびにどんどん挿入されていきます.
画面のアドレス欄に,普通のアドレスの後ろに送信データが表示されているので,
それがある限りデータは送信されそうです.
検索したところ同じような事例で,処理をした後,リダイレクトするようにして,
更新を防いでいる人がいました.
POSTなどを消せればすぐ済むように思ったのですが,そうする方が良いようです.
今回はファイル処理を行った後,リダイレクトして送信データを初期化しようと思います.
どうもありがとうございました.
306 :
nobodyさん :2005/11/10(木) 01:32:14 ID:5CC9pdYJ
mail 関数で、急にvodafoneだけ送れなくなりました。 docomo や一般のアドレスは正常に送信できます。 どなたか似たような現象の方居ませんかー
>>306 SPAM判定されたか何かで拒否されてるに一票
308 :
nobodyさん :2005/11/10(木) 03:34:57 ID:7WIsLqP6
セッション使うと体感速度って結構落ちる?
いやべつに
312 :
nobodyさん :2005/11/10(木) 14:27:23 ID:bMeJl5+L
フォームを使わずに、データ(文字列)を次のページに送る方法はありませんか? 既存のページにログインしたあと、そのユーザー情報(入力されたIDやPassなど)をハイパーリンク先にもっていきたいのです。 良い方法ありましたら教えてください。
>312 つ[GET] つ[COOKIE] つ[SESSION]
リンク先ならそれに埋め込めばいいと思うのだが。
[今後の展開予定] 1. 実は、ハイパーリンク先と自分とは無関係なサイトであることをカミングアウト 2. 成り済ましサイトではない事を一所懸命にアピール 3. 理由を聞かれて、特許申請するので言えないっス 4. 夜中になったので人がいなくなる&次の質問に話題が移る 5. 数日後に他所で質問 6. ヲチ情報が報告される
318 :
nobodyさん :2005/11/10(木) 15:20:12 ID:bMeJl5+L
セッション使うと体感速度って結構落ちる?
321 :
軟式PHP :2005/11/10(木) 15:39:07 ID:???
よーし、パパ318が作ったアプリでセッションハイジャックしちゃうぞー。
>>320 セッション情報を使って「何かする」部分の影響の方が大きいと思われ。
セッションそのものは、一つのファイル(DBかも知れんが)に対して
ちょびっと書いたり消したりするだけなので、
言ってみりゃサイトにカウンタをつけるみたいなもんよ。
まぁ、規模がでかくなりゃ話は変わってくる。
324 :
nobodyさん :2005/11/10(木) 19:35:30 ID:mwYfHXSm
パパー、可変変数について教えてよー(´・Д・`) <? $name = test; $test_number = array("aaaa","bbbb","cccc"); echo "${$name}_number[1]"; ?> 結果 _number[1] bbbbって表示されないよーなんでー?
歯が痛いけどどうしよう
>>324 PHPしらないけど勘で答えてみる。
$name='test_number';
echo ${$name}[1];
328 :
324 :2005/11/10(木) 20:03:30 ID:???
>>326 あぁ言葉足らずでしたごめんなさい
<?
$name = test;
$name = test2;
$test_number = array("aaaa","bbbb","cccc");
$test2_number = array("111","222","333");
if($name == test1){
echo "${$name}_number[1]";
}
?>
結果 _number[1]
bbbbって表示されないよーなんでー?
です
329 :
324 :2005/11/10(木) 20:09:05 ID:???
>>327 リロードし忘れちゃいました
そこんところ詳しくお願いパパン
いろんな所に入れてみたけど駄目だったお(´・Д・`)
>>328 test1 が何処にも存在しないのと、各部で文字列の前後の ' (または ")がないんだが。。。
それはさておき echo "{${$name . '_number'}[1]}"; ではダメなのか?
sqlite_escape_string()でエスケープされるのは、 \ NUL 0x01 ' の4つで合っていますか?他にありますか?
332 :
324 :2005/11/10(木) 20:31:08 ID:???
>>330 >test1 が何処にも存在しないのと
質問用に書き換えた時のミスです・・・
{${$name . '_number'}[1]}
でできましたー
マニュアルのどこら辺に書いてありますか?
もっと勉強しないと・・・
できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
>>332 そのものズバリはどこにも書いていないと思うけど。。。
可変変数と文字列の組み合わせればいいのかな?と考えただけだし。
>できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
理解しづらいのなら、いっそのこと可変変数をやめたら?
頭の体操としてはおもしろいかもしれないが、読みにくいし、
こう書く方がスッキリするとは思わないか?
<?
$name = 'test';
$name = 'test2';
$test_number = array(
'test' => array("aaaa","bbbb","cccc"),
'test2' => array("111","222","333"),
);
if($name == 'test'){
echo $test_number[$name][1];
}
?>
335 :
324 :2005/11/10(木) 20:50:31 ID:???
>>333 おぉぉ確かにーー!!!
その表記にします
ほんとありがとうパパン(・∀・)
>>332 >>324 の一行目に、$test = 'hoge'; って追加して、実行してみな。
何が起きてたか判るから。
337 :
324 :2005/11/10(木) 20:53:03 ID:???
>>334 そっちの方見てなかったー
ありがとうパパン
338 :
324 :2005/11/10(木) 21:03:46 ID:???
>>336 hoge_number[1]
と出ました
なんとなく分かってきたような気がしまふ・・・
ありがとうパパン
まぁ、$$にかんしては、こうすると少しは判りやすいかも。 $hoge = 'hage'; $var_name = 'hoge'; echo $$var_name;
>>339 今回の話は、可変変数の話の様に見えるけど、{}の話だから…
341 :
339 :2005/11/10(木) 21:24:04 ID:???
tu-ka切りわけって意味では326から試せばいいやね
しかし、そうまでして$$使いたいのか?
$$を使わなければ出来ない処理って、そもそもデータの持ち方が
おかしいんじゃないか
漏れは
>>333 に一票だな
>>341 いやね、
>>324 の質問は、実は
<?php
$test = "hoge";
$test_test = "fuga";
echo "${test}_test";
echo "$test_test";
?>
こういう質問だと言うことね。
親子関係を表現したくて困っております 具体的にはメールのスレッド表示を再現したいです メーラーでのスレッド表示みたいなのを・ message-idを各メールが持っている 子は親のmessage-idを知っている 親子関係は永遠に続く可能性がある phpのオブジェクト機能でできるかなぁと、xmlみたいな感じ? 変数の入れ子構造はどうやったら出来ますか?
変数を入れ子にするんじゃなくて、オブジェクトを入れ子にするんじゃだめ?
>>345 連想配列を使って
root+ a1
+ a2
+ a3
| + b1
| + b2
| + c1
| | + d1
| | + d2
| + c2
+ a4
こんな感じのツリーは
$root = array();
$root["a1"] = 1;
$root["a2"] = 1;
$root["a3"]["b1"] = 1;
$root["a3"]["b2"]["c1"]["d1"] = 1;
$root["a3"]["b2"]["c1"]["d2"] = 1;
$root["a3"]["b2"]["c2"] = 1;
$root["a4"] = 1;
print_r($root);
でどないや。
会員サイトなどでログインして掲示板投稿などの時、 確認画面から「戻る」のボタンを押した時に、入力していたデータが消えます。 これをSESSIONを使わずに、ブラウザの戻るを押しても入力内容が消えない ようにする方法は無いでしょうか?
くっきー?
>>348 会員サイトつー言葉からセッションを使ってログイン管理してるんだと推測し、
その際に cache-control: no-cacheなんかでキャッシュが無効化されていると思われ。
なので、それ、消えてるんじゃなくて鯖へ新しいページをリクエストしてんの。
>>351 それをどうにかして「戻る」を押した時に前に入力したものを表示させる
事は出来ないでしょうか?掲示板などのフォーム処理の場合、
戻った時にすべて消えると入れ直しになるので、使いづらいです。
>>352 header('cache-control: no-cache'); を送って「いない」のなら、session_start の前に
session_cache_limiterを呼んでみたら?
送っているのなら、どうしようもないけど。
session_cache_limiter(''); //追加
session_start();
「戻る」ボタンって、IEの戻るボタンなのか、フォームの戻るボタンなのか?
>>348 だとIEの戻るボタンぽいけど、そしたらSESSIONとか関係ないし。
自分がソース書いてる会員サイトなの?
そうじゃなけりゃ、このスレに書く理由も不明。
>>353 これで一発で行けました!目から鱗でした。ありがとうございます。
>>354 フォームの戻るボタンです。ただ、テストはほとんどIE6.0でしていますが・・。
あと、自分がログインフォームとログイン後に簡単なメールフォームを作成したんです。
そこまでは大丈夫だったのですが、「戻る」のボタンを押した時にデータが消えるので
どうしたらよいかずっと悩んでいました。
とりあえず、これで解決出来そうです。ありがとうございました。
戻るボタンだとしても、 受け取った情報を送信して セットしなおせばいいだけの話なのにな…
>>346 さん、ありがとうございます
オブジェクトに関しても勉強不足なのですが試してみようと思います。
あつかましいとは思いますが具体的な方法や情報を頂けるとありがたいです。
>>347 さん、ありがとうございます
すぐに試してみようと思います。
オブジェクトも連想配列も面倒がって避けてきましたが、やっぱり必要ですねw
358 :
nobodyさん :2005/11/11(金) 11:41:20 ID:nRnpdBSX
配列をヒープ(priority queue)として使うにはどうしたらよいでしょうか? 入れて出したら最小値(又は最大値)が高速で返ってくるコンテナが必要なのです。 よろしくお願いします。
>>358 PHPの配列はそういう機能を有していないから、
自分で実装乃至どっかからパクってくるしかなかんべ。
360 :
358 :2005/11/11(金) 12:28:16 ID:???
>>359 レスどうもです。
PHPの配列自体を使わないにしても、どこかに拡張モジュールでもライブラリでも、利用可能なものはないものでしょうか?
できれば通常のキューもあって欲しいです。(push/popとshift/unshiftで出来るかと思ったら無理なようです)
さすがにググっただけではそういったものが見つからないもので・・・。
PHPの掲示板の多くにログと一緒にIPを取得する関数が組み込まれていますが、 ログにWeb上から直接アクセスするとIP情報が第三者に見れてしまいます。 かといってパーミションを606以下にすると、ログが開けなくて エラーが出るし、困っています。 IP取得部分だけログを分離するというやり方は知識不足の為自分にはできません。 IP情報を取得したまま第三者に見れなくなるようにしたいのですが、 何か簡単な方法はありませんでしょうか? 個人的にIP情報なんてどうでもいいのですが、 IP情報=個人情報と思ってる方もいるようで、書き込みが減る恐れと、 荒らされた時の対処がHPのアクセスログだけだと困難なので、 何かよい方法があったら教えてください。
>>361 「Web上から直接アクセス」できるところにログ置くなよ。
ドキュメントルート以下にはログを置かない事。
ログファイルの拡張子をphpやcgiにする
>>361 アクセスできない場所に置く(public_htmlの上とか)
.htaccessで<Files filename>deny from all</Files>。
ログファイル名を.htで始まる名前に変える。
ログの拡張子をcgiにする。
ログを暗号化する。
>>361 >ログにWeb上から直接アクセスすると...略...
ログにWeb上から直接アクセスできないようにすればいいだけのこと。
1) Webサーバーの設定で、ログファイルへのアクセスを禁止する
2) ログを保存するディレクトリをURLでは参照できない位置にする
1) はWebサーバーの設定をミスると見えてしまうので 2) がいいかもね。
保険的に両方やっておくのもいいけれど。
1) の設定方法は個々のWebサーバーによるので、ここでは聞かぬように。
PHPの話はなく画像ファイルの直リン禁止、とかで普通に行われているので
探せばすぐ見つかるはずだし。
366 :
365 :2005/11/11(金) 13:39:05 ID:???
>>363 > ログファイルの拡張子をphpやcgiにする
そういう話はよく聞くけど本当にphpやcgiにすれば見られないのか寝?
>>367 拡張子をcgiやphp(CGI版のみ)にするのは、
shupang(一行目の#!〜ってやつ)が無くてエラーになって、
結果的にログの内容は表示されない事を期待してる。
phpがmoduleの時に拡張子phpにしたら、HTMLモードで開かれるので意味無いね。
なるほど。そうするとcgiだからといって律儀に#!〜を付けると中身を覗かれちゃう分けか・・・
>>369 CGIの場合はとにかくエラーになる
#!がなくてもパーミッションがない
実行権つけても結局ヘッダー吐けないから500エラー
COBOLプログラムをPHPに変換するツールってありませんか? できればフリーで使えるやつが良いです。
373 :
nobodyさん :2005/11/11(金) 17:35:42 ID:FEod7B4T
<?php include('../menu.php'); ?> みたいな感じでメニュー部分を各ページで読み込むようにしてるんですが、 このメニュー部分も検索エンジンにキャッシュされてるんでしょうか…? 動的に読み込んでるわけだからキャッシュはされないのかな…?
ページを見ているこっちからすれば どのような方法でページを生成していようと同じ
376 :
373 :2005/11/11(金) 20:30:23 ID:???
>>374 ページがどう見えるかってのはそんなに気にしてないんだけど、
動的に生成している部分はキャッシュしないってことになると
検索結果のランクに結構影響してくるんじゃないかな〜と。
>>376 だから、php内部の話は関係ない。検索エンジンのロボットがどう判定するかってこと。
「SEO 対策 検索エンジン」あたりでググれ。
>>376 こやつの頭の中では
<?php
include('../menu.php'); //動的生成
echo 'テストよ〜ん'; //静的生成
?>
となっているのだろうか。。。
379 :
361 :2005/11/11(金) 22:29:17 ID:???
>>362-365 みなさまレスどうもありがとうございます。
大変参考になりました。
拡張子phpでは
>>368 さんのおっしゃるとおりの結果になりました。
知識不足でドキュメントルート以外の場所というのが少しわからないので、
>>364 さんの方法で試してみたいと思います。
>>379 ログファイルをめちゃくちゃ変なファイル名にしとけばいいじゃん。
それが一番簡単。
>>379 そのままでいいぢゃん。
そんな腐ったアプリを腐った設定のサーバーで動かしていても、
そのファイルにアクセスした輩が罪に問われるみたいだから。
383 :
358 :2005/11/12(土) 00:11:23 ID:???
みなさんは(例えばSNSや一部のゲームサイトのように)ユーザー同士がネットワークを作るようなサイトをどのように構築しているのですか?
どうしてもグラフ構造になってしまうのでPEARのStructures_Graphを使おうと考えたのですが、トポロジーソート以外には実践的なアルゴリズムが含まれていないようです。
なのである程度自分で実装するしかないのでは、と思ったのですがデータ構造の話題に反応が薄いところを見ると(
>>359 さんには感謝してます)、実はもっとお手軽にネットワーク構造を扱う方法があるのでしょうか?
例えば最短経路の問題なんかはライブラリでもあればずいぶん楽できると思います。
Javaのない環境でこういうのは難しいのかな?いざとなったら自力でC++のSTLとかで書くしかないぐらいの分野なのでしょうか?
(mixiなんかはPerlなので、PHPでも同等のことはできそうな気がしていたのですが…)
何か方法論をご存知の方いらっしゃいましたら、よろしくお願いします。
だれか383まとめて
ネットワーク構造を扱う方法を教えてください
>>383 実装以前に仕様の話だと思うのだが。
何が作りたいんだ? どんな機能が欲しいんだ? という所から洗い出して初めて
「じゃあそれを実現する為にはどうすればいいか」という話になる。
完全に前提がすっぽ抜けてるよ。出直しておいで。
387 :
383 :2005/11/12(土) 01:23:44 ID:???
皆様、レスありがとうございます。
>>386 仕様の詳細についてはあまり書くことができず、申し訳ないです。一番想像しやすい例ではSNSが近いと思います。
実装上はどうしてもグラフ構造を使うことになりまして、色々アルゴリズムを調べているうちにPHPでそれらを表現するのが(PHPの配列の性質上)だいぶ難しそうだと感じて358の質問をさせていただきました。
しかし今や色々なSNSが出回ってますから、そもそも初めからもっと効率の良い手法があるのではないかと思い、383を書き込ませていただいた次第です。
需要が無い/少ないものは自分で作るしかないべ。
>>387 そんな大雑把な疑問にどう答えりゃいいんだよ。ソースでも上げろってか?
本当に効率の良いアルゴリズムってのは「商品」になるから表に出てくるわけがない。
先駆者の手法知りたければOpenPNEにでも参加しろよ。役に立つかどうかは知らんけどさ。
そもそも「グラフ構造」っていう言葉自体がかなり大雑把過ぎるな。
PHPだけでも出来るけど速度的に・・ってのなら、実装例も沢山あるしC++で作っちゃえば?
このスレレベル低スw どうせPHP厨なんてそこらで見かける典型的なサイトしか作ったことないんだろwww 経路探索のアルゴリズムなんてどこにでも載ってるだろw ただ単にPHPでどうしたらいいかって質問だろーにw 漏れはPHP厨じゃねーからシラネ
・・・と、phpすら理解できなかった方が申しております。
ハァ?(゚Д゚)y─┛~~ ( ´д)ヒソ(´д`)ヒソ(д` )
( ´д)ヒソ(´д`)ヒソ(д` )
>>389 オープンソースの世界を知らないな、と言ってみるテスト
<わからない五大理由> 1. 読まない 2. 調べない 3. 試さない 4. 理解力が足りない 5. 人を利用することしか頭にない
ちょっと話が戻るんですけど、
>>364 に出てくるような
ログを暗号化するってのはphpで出来るんですか?
なにその釣り?mcrypt_genericでも使っとけよ
>>398 暗号化アルゴリズムを自分で考えればPHPでもできる。
今考えた簡単な方法ではbase64_encode()にシーザーの暗号を組み合わせるとか。
wばかり使う奴は説得力がない
アルファベットを2〜3文字ずらすというあれか
404 :
nobodyさん :2005/11/12(土) 13:50:20 ID:g38MJFxf
>>383 =
>>360 =
>>358 >>360 >できれば通常のキューもあって欲しいです。(push/popとshift/unshiftで出来るかと思ったら無理なようです)
>さすがにググっただけではそういったものが見つからないもので・・・。
アルゴリズムをゼロから勉強したほうが早いと思うよ.
セジウィックのアルゴリズムCがおすすめ.キューすら理解できないのにグラフなんてできるわけないから.
class Queue
{
var $_queue = array();
function enqueue($v){ array_push($this->_queue, $v); }
function dequeue(){ return array_shift($this->_queue); }
}
$q = new Queue;
$q->enqueue('a');
$q->enqueue(100);
$q->enqueue(new Queue);
echo $q->dequeue();
echo $q->dequeue();
echo $q->dequeue();
echo is_null($q->dequeue()) ? 'empty' : 'not empty';
// 出力: a 100 Object empty
画像に特定の文字を入れたいのですが、 gdを使わないと出来ないのでしょうか。
360を読んだ時「?」と思ったがそういう理由か
407 :
339 :2005/11/12(土) 14:35:15 ID:???
僕は画像に特定の文字を入れたいとかあんまし思わないんですが、 なんで世のプログラマたちはgdとか画像ライブラリとかを珍重するのでしょうか。 画像なんてただのバイナリじゃん。 わかんない。jpgraphとかもわかんない。得るものが少ないと思います。 ...略... いやそうではなくて、なぜgdに拘るのかということです。僕は賛成ですが。 すいません。まちがいました。もういいです。
アカウント取得用時などの、画像の文字を入力、って奴だと思うけど、専用のモジュールとかはないもんかね。
>>404 array_shiftがO(n)な件について
>>411 じゃあこれで・・・
class Queue
{
var $_queue = array();
var $_tail = 0;
function enqueue($v){ array_push($this->_queue, $v); }
function dequeue()
{
if (!isset($this->_queue[$this->_tail])) return NULL;
$v = $this->_queue[$this->_tail];
unset($this->_queue[$this->_tail++]);
return $v;
}
}
414 :
nobodyさん :2005/11/12(土) 16:28:22 ID:K0H7nJ2R
ftpでサーバーに接続して落とされない限り、 phpファイルのソースを見られてしまうことはないでしょうか。
鯖の不調でファイルをDLしたりすることも無いとは限らない。
>>414 んにゃ。
でも外の人対策を考えるよりも(外の人対策は色々実施済みの方が多いから)
悪意を持った中の人のことを念頭に置いた方がいいぞ。
中の人などいない!
418 :
nobodyさん :2005/11/12(土) 21:58:01 ID:ZgVRm9Ef
パスワード認証をしようと思って… <?php $pass = aaaa; $formpass = $_POST['passwd']; ?> <body> <h1>編集モード</h1> <?php if($formpass == $pass){ print "OK"; }else{ echo "<p>パスワードが違います</p>", "<p><a href="./index.php">戻る</a>";} ?> と、したのですが、うまくできません。 何か間違っているでしょうか?ご指摘ください。
>>418 >$pass = aaaa;
$pass = 'aaaa';
420 :
nobodyさん :2005/11/12(土) 22:06:40 ID:ZgVRm9Ef
>>419 わぉ、忘れてました。無事出来ました!!
今日からPHPの勉強始めて夢中なんですが、自分もまだまだです。^^;
ありがとうございました。
>>420 エラー(Notice)でなかった?
error_reporting(E_ALL) にするとエラーでるようになるよ
422 :
nobodyさん :2005/11/12(土) 22:18:06 ID:ZgVRm9Ef
>>421 いえ、特に……
それと、もう一つお願いがあります。
<?php
if($formpass == $pass){
print "<p>本人ですね</p>";
このように、print "〜";の中にHTMLのタグって書けないのでしょうか?
エラーが出てしまいます。
423 :
nobodyさん :2005/11/12(土) 22:27:22 ID:ZgVRm9Ef
スマソ何の問題も無かった…orz
424 :
419 :2005/11/12(土) 22:39:34 ID:???
>>420 なんか機嫌がよくて答えちゃったけど、きみの為にはならなかったと反省している。
あの程度のミスは、自分で気が付くまで悩むべき。
とにかく試せ。あらゆる方法を。
まぁ勉強初めたばかりで未熟なのは仕方ないとしても
質問の仕方はなんとかした方がいいわな。
普通は以下のようなツッコミが入るところだし。
>>418 と、したのですが、うまくできません。
どううまくできないの?
>>422 エラーが出てしまいます。
どういうエラー?
認証ってif使って比較するような単純なのでいいの?
じゃあswitch使います
428 :
419 :2005/11/13(日) 00:41:35 ID:???
>>425 質問の仕方というか、環境、ソースなど、質問するにあたって必要事項をまとめ、質問文を書いて、一呼吸おくと、そこで自己解決しちゃうことってかなり多いんですよね。これがまた。
それなんで、
>>420 にとってはそういうプロセスがものすごく大事な時期だと思う。ここで、どれだけ、自分で考えて調べて、検証っていう習慣を身につけるかで今後は大きく変わってくると思う。
かくいう漏れもまだphp暦一年。エラそうなこと言ってすまん。
>>426 最初はそれから始めていいと思うよ。
だけど、最初だけね。
PHPでASPのApplication変数にみたいなものってありますかね? Webサイト内でグローバルな変数って感じで。
>>430 無い。
やりたきゃ、config.inc.phpかなんか作って、
全ファイルでrequire_onceする。
もしくは、auto_prepend_fileで指定して、.htaccessなりでまとめて反映させる。
433 :
nobodyさん :2005/11/13(日) 03:13:30 ID:lJ8slral
名前を記録するスクリプトを作成しているのですが、もし、重複してしまったら エラー(例えば「重複しています」)を吐くにはどうしたら良いですか? 正常(重複していなければ「log.dat」に記録される) よろしくお願いします。
434 :
nobodyさん :2005/11/13(日) 03:16:41 ID:VQkTNsEm
perlかphpでフリーのスクリプトを探しています。 条件は… ・掲示板 ・アクセス認証付き ・表示形式が2ch風 この3つです。探したのですが合致するものがなかったので 知ってたら教えて下さい。 もしスレ違いだったらスレ誘導してくれると助かります。
本当にくだらない質問ですけど、PHPでゴミ集めは参照カウントでしているそうですが、循環参照はきちんと解決されてますか? 大きなオブジェクトが絡まざるを得ないと、メモリ解放しててくれないと困ると思うんだけど。
>>433 重複しているかどうかを自力でチェックするしかありません。
>>434 Web制作板のCGI探してますスレ
んでもアクセス認証ってのが厳しいかも。
>>435 Use the source! Luke.
437 :
433 :2005/11/13(日) 04:22:02 ID:lJ8slral
>>436 それでは、こんなスクリプトを作りました。
<?php
//設定
$yourname = $_POST['name'];
$file=fopen("name.dat","r");
while($row=fgets($file,1024)){
if(eregi('($yourname)[a-z0-9./_\-]+',$row,$data)){
print($data[0]."<br />");
}
}
fclose($file);
?>
これ、正規表現でテキストを検索できると思うのですが
何故か全くprintしてくれません。
何か間違っていますでしょうか?
438 :
433 :2005/11/13(日) 04:25:34 ID:lJ8slral
■name.dat hoge hoge2 hoge777 これで、$_POST['name`]でユーザが入力した文字例を name.datから検索できるようにしたいのですが… どうやっても真っ白です。
439 :
nobodyさん :2005/11/13(日) 08:18:41 ID:0CW9qsRb
>>429 いままで自分もcryptで暗号化したパスワードをif文で検証してたのですが、
次のステップというか一般的な認証法というのは、
どういった具合にすればよいのでしょうか。
>>437 それだと$yournameが展開されない
""""""""""""""""""""""""""""""""""""""""""""""""""""""
441 :
433 :2005/11/13(日) 09:01:29 ID:lJ8slral
>>440 あー、だから出来なかったのですか?
何が良くないですかね。
442 :
433 :2005/11/13(日) 09:14:43 ID:lJ8slral
スマソ、流石にスレ違いかも。 違うスレで聞いてくる。
443 :
433 :2005/11/13(日) 10:30:19 ID:lJ8slral
444 :
nobodyさん :2005/11/13(日) 11:06:35 ID:orFWcmz0
バッチコーイ
超初心者の質問ですみません。 以下の(A)だと問題なく出力されるのに、(B)だとなぜか ブラウザのプログレスバーがとまってしまう(無限ループに入っている?) という現象に悩まされています。 考えられるミスをご存知の方、教えてください。 @PHP5.0.4 SQLite2.8.14 ちなみに(A)(B)の前後は全く一緒、MEMOはTINYINTです。 (A) if (!$nimo=sqlite_query("SELECT * FROM test_db WHERE ID=".$number,$db)) {echo "Update Failed";} $nimo1=sqlite_fetch_array($nimo); print "nimo=".$nimo1["MEMO"]; 出力結果 nimo=1 (B) if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db)) {echo "Update Failed";}
>>445 他のアプリが、そのデータベースをオープンしていて、トランザクション処理中ってことはない?
試しに、以下をやってみて、"database is locked" とかのエラーメッセージが表示されないかなぁ。
(B)
ini_set('display_errors', true);
error_reporting(E_ALL);
sqlite_busy_timeout($db, 1 * 1000); //ロック解除待ちを1秒にセット(デフォルトでは60秒)
if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db))
{echo "Update Failed";}
447 :
445 :2005/11/14(月) 00:01:57 ID:HOVC0Ybb
>>446 ありがとうございます。
やってみたのですが、
ini_set('display_errors', true);とerror_reporting(E_ALL);をいれると
状況が変わらず、sqlite_busy_timeout($db,1*1000);を入れて
実行してこの部分に入ると真っ白(ブラウザ画面になにも表示されない)に
なってしまいます。
もすこし調査してみます。
>>447 >>446 ではないがini_set〜sqlite_busy_timeoutまでをすべて追加汁、だと思われ。
あとsqlite_busy_timeoutの後ろに全角スペースが入っているみたいなので
削除してやってみそ。
449 :
434 :2005/11/14(月) 00:23:49 ID:zaQtKJ3k
>>436 ありがとうございます。これから行って聞いてみます。
450 :
445 :2005/11/14(月) 00:38:08 ID:HOVC0Ybb
>>448 真っ白になったので、一行ずつやってみてました。
ご指摘の通り、全角スペースのせいでした。
そして、database is locked の表示が出ました。
他でオープンされていないか調査してみます。
>>446 ,448 ありがとうございました。
451 :
nobodyさん :2005/11/14(月) 06:00:02 ID:zuaWuGho
全角スペースはエディタの設定で可視化しとくべし。
URLからサイトの更新時間を取得したいのですが、 filemtime()って、URLでも使用できますか?
PHPで鯖の混雑状況とかわかりますか?通信速度を取得する関数とか…。 今はページの最初の一部分で何秒(0.0001秒とか)かかったかで判断してるんですが他にいい方法があれば知りたいです。
>>452 URLってHTTP?仮想的にマウントしてれば可能だがありえねー
普通にヘッダーフィールド見ろよ
関係ないけどHttp喇叭が200と302しかもにょってくれないのが寂しい
つい最近PHPをoreillyのLearning PHP5で勉強し始め、そろそろ読み終ります。 まだ全部を理解している訳ではないんですがステップアップを狙う次の本で 悩んでます。どっちもoreillyの奴ですが Web Database Applications With Php and Mysql と Programming PHP どっちを手にしてみるべきでしょうか。 懐寂しいので2冊同時はいけないです。
SID という変数にセッション関連の変数が定義されてるようにするには何をいじればいい?
459 :
nobodyさん :2005/11/14(月) 13:46:21 ID:C2SChEGb
ファイルの最終更新日(最後にアップロードされた日時)を 取得するにはどうすればよいでしょうか?
>>458 $SID = $_SESSION;
じゃダメなのか?
include_pathの設定に、".C:/php/includes;C/php/PEAR"というのが 参考書に書いてありましたが、includesというフォルダは存在していません。 これは自分で同名の空フォルダを作るということでしょうか? また、Apache2.0.55を起動しようとすると、「指定されたファイルが 見つかりません」とのエラーが出ます。httpd.confの方も参考書のとおり 修正しているのですが、うまくいきません。 何が原因なんでしょうか?
include_pathのデフォルト値はただの例 自分の環境にあわせて書き換えればいい Apacheのエラーはそれとは無関係
>>463 無関係なのですね…分かりました。
Apacheのエラーの理由はどういうったことが
考えられますか?
.confのDocumentRoodでもPHPファイルのあるhtdocsフォルダを指定し、
その中にテスト用のtest.phpを置いているのに、なぜ「見つかりません」
となるのか・・・
エラー内容は正確に書いてくれんかね。 実際に出てるエラーはこんなんじゃないのかね? [error] (OS 2)指定されたファイルが見つかりません。 : No installed service named "Apache2". もしそうなら、PHPというよりwindowsのサービス(という仕組み)の話だぁね。
>>465 すみませんでした。そのエラーメッセージの通りです。
現在Adminでインストールにトライしていて、やり直すときには
Apache、PHPをアンインストールしてから、再度インストールしています。
また、
http://localhostにアクセスすると 、IIS(MS提供のWebサーバ?)
の初期画面らしきものが表示されています。
(インストールした覚えはないのですが、Professionalなので元からあるのかな)
>>466 session_id()で取れることは取れるけど
つかクライアントからCookieフィールドが来てるんだろ
SIDが空なのは正常な動作だ
セッション関連の変数 ≠ 定数SID まだ絶対的に知識が足りないぞ 他のサイトも見たほうがいい とくにマニュアル
>>466 session_startは実行しているの?
473 :
nobodyさん :2005/11/14(月) 15:31:02 ID:C2SChEGb
>>460 ありがとうございます。
filemtimeで検索したら<?php echo date( 'Y/m/d (D) H:i:s', filemtime('0201_gt.php') ) ?>
こういうのがありました。
0201_gt.phpみたいにファイル名を指定しなくても
取得出来るようにするにはどうしたらよいでしょう?
474 :
459 :2005/11/14(月) 15:32:07 ID:C2SChEGb
>>473 意味不明。
ファイル名を指定しなかった場合、「どの」ファイルの最終更新日を取得するんだ?
476 :
nobodyさん :2005/11/14(月) 15:36:35 ID:75+wufok
test.php?test=hoge とURLにURLリクエストが出るのが嫌なので.htaccessでできるのかなと思い RewriteEngine on RewriteRule ^([A-Za-z0-9]+)\.php$ test.php?test=$1 としてhoge.phpにアクセスしても変数を受け渡してくれません なんとかなりませんか?
>>473 ファイル名を指定しないことにはどのファイルの更新時間を調べてよいかわからんのだが。
478 :
459 :2005/11/14(月) 15:43:10 ID:C2SChEGb
>>475 ,
>>477 <dl>
<dt>最終更新日</dt>
<dd>200x年xx月xx日</dd>
</dl>
これを、更新の度に書くのが面倒なのでPHPを使ってやりたいのですが
いちいちファイル名を指定しなくても、スクリプトのファイル名を取得出来ないかなぁ…
と、思ったわけです。
>>476 mod_rewriteが入ってないとか?
>>478 $_SERVER['SCRIPT_NAME']
>>478 最初からそう書けばいいだろ?
みんなオマイみたいにエスパーではないんだから。
483 :
459 :2005/11/14(月) 15:49:15 ID:C2SChEGb
皆さんありがとうございました。
うまくやってみます。
>>482 スマソ
485 :
nobodyさん :2005/11/14(月) 15:54:10 ID:75+wufok
>>479 確認してみましたが入ってました
.htaccessの記述にもやや不安があるのですが間違っていないですか?
>>485 入ってるけど、入れた後にapacheをリスタートしてないとか
487 :
nobodyさん :2005/11/14(月) 16:02:36 ID:75+wufok
>>486 レン鯖なのでそれはないと思います・・・
490 :
nobodyさん :2005/11/14(月) 16:28:13 ID:75+wufok
>>489 やってみましたが
「test」という変数を渡してしまい駄目でした
491 :
476 :2005/11/14(月) 17:13:45 ID:???
RewriteEngine on RewriteRule ^([A-Za-z0-9]+)/$ test.php?test=$1 これでURLリクエストを隠すという目的は一応果たせるので これで行きたいと思います うーんむずかすぃ・・・(;´Д`)
>>490 なぜ、どのURLでアクセスしたかとか、print_r($_GET) がどうなってるとかって情報出さないのだろうか。
493 :
467 :2005/11/14(月) 17:22:58 ID:???
どなたか分かる方いらっしゃいませんか?
>>493 php走らせる前の段階でこけてるんだからスレ違い。
>>493 判る人はいっぱいいるよ。
でもスレ違いだし、環境や、どうインストールしたかも書かない奴を
いちいち相手にしていないだけ。
>>492 test.php
<?
print_r($_GET);
?>
として、
RewriteEngine on
RewriteRule ^([a-zA-Z0-9]+)\.php$ test.php?test=$1
のルールの時、hoge.phpにアクセスすると、
Array ( [test] => test )
となる。
RewriteRule ^([a-zA-Z0-9]+)\.html?$ test.php?test=$1
として、hoge.html(htm)にアクセスすると、
Array ( [test] => hoge )
になるね。
497 :
459,473,478 :2005/11/14(月) 17:53:33 ID:C2SChEGb
すみません。 うまくプリントされたのですが… > 最終更新日:1970/01/01 (Thu) 09:00:00 になってしまいます。 どうしたら良いでしょうか?
>>498 Warning: filemtime(): Stat failed for $script_name (errno=2 - No such file or directory) in /home/noaki/www/footer.inc on line 13
1970/01/01 (Thu) 09:00:00
>>499 ■footer.inc
<?php
$script_name = $_SERVER['SCRIPT_NAME'];
?>
(略)
<dl>
<dt>最終更新日</dt>
<dd><?php echo date('Y/m/d (D) H:i:s',filemtime('$script_name') ) ?></dd>
</dl>
↑これをincludeで取り込んでいます。
>>501 わりい、ちと間違えてたよ。
つーか、少しは自分でしらベロや。
ファイルがないつってんだから、
$script_nameがおかしいんだよ。
で、$_SERVER['SCRIPT_NAME']じゃなかったよ。
でも、似た名前だから、探してみな。
>>501 "Stat failed for $script_name (errno=2 - No such file or directory) " と
懇切丁寧に表示されているが、なんで無視する?
>>501 自分自身なら __FILE__ でいいんじゃないかな
>>501 最初の質問から最後まですべて丸投げだな。
PHP触ってて楽しいか?
次のスレタイ候補その1 【PHP】○投げ・Sパーщ(゚д゚щ)・下らねぇ質問はここに書き込みやがれpart13
>459 名前:nobodyさん 投稿日:2005/11/14(月) 13:46:21 ID:C2SChEGb
>ファイルの最終更新日(最後にアップロードされた日時)を
>取得するにはどうすればよいでしょうか?
>>459 の質問はくだ質以下の質問なのでその時点でスルーでよかったと思うよ
いくらくだ質スレと言ってもここまで酷いのは手に負えんだろw
本スレよりまともな質問もちらほらあるんだけどねぇ・・・何か残念だよ
508 :
459,473,478,497,500 :2005/11/14(月) 19:07:10 ID:C2SChEGb
o k
エスパーの方、
>>497 がどのようなコードを書いたか透視してくれ
510 :
481 :2005/11/14(月) 19:50:03 ID:???
>>501 <?php
echo date("Y/m/d (D) H:i:s",getlastmod());
exit;
?>
よしよし可愛そうにな
mkdir() とか chmod() とかがセーフモードで使えないもんで、日記がレン鯖で動かせない。 …代替案はありませんか教えてくださいエロい人。
乗り換え
ブログでもかりとけ
レン鯖用に書き換える
PHP使って性欲が満たされるなんてことはあるのでしょうか。
517 :
445 :2005/11/14(月) 23:05:54 ID:???
報告です。 if (!sqlite_query("UPDATE test_db SET MEMO='0' WHERE ID=".$number,$db)) {echo "Update Failed";} の前後にsqlite_query($db4, "begin transaction");と sqlite_query($db4, "commit transaction");をおいたら 問題なくいけるようになりました、お恥ずかしい。 もしかしたら同じようにハマる人がいるかもしれないので、 恥を忍んで書いときます。 日記の裏スマソ
518 :
445 :2005/11/14(月) 23:06:51 ID:???
日記の裏じゃない、 チラシの裏・・・。
日記の裏って…一瞬素で悩んじゃったよw
サイトの更新時間を知りたいんですが、fstatって使えるんですか? すみませんが、使い方を教えてください。
サイトの更新時間を知りたいんですが、fstatって使えるんですか? すみませんが、使い方を教えてください。
>>522 自分で試したんですけど、うまくいかないんです。
ソケット通信をオープンして、
$atai=fstat($fp);
print(date("F d Y H:i:s.", $atai['mtime']));
としたのですが、できませんでした。
>>523 頼むからマニュアルくらい読んでください
読んだんですけど、理解できませんでした。 すみません、初心者なもので。 教えていただけるとありがたいです。
>>525 理解できないものを使おうとするなよ・・・。
とりあえずファイルオープンするところからソース晒してみ。
$url="www.yahoo.co.jp"; @$fp= fsockopen($url, 80, $errno, $errstr, 30); fputs($fp,"GET // HTTP/1.0\r\nHost:$url\r\n\r\n"); while(!feof($fp)){ $page=$page.fgets($fp,128); } $atai=fstat($fp); print($atai[9]); print(date("F d Y H:i:s.", $atai[9])); 以上です。
PHPでC++厨をぎゃふんと言わせるにはどんなコードを書いたらいい?
1 == $flag
ハァ?
まぁ確かに「ぎゃふん」とは言われるわなw
//声に出して READING("ギャフン");
536 :
531 :2005/11/15(火) 04:29:43 ID:???
function PHP() { return PHP() . ": Hypertext Preprocessor"; } echo PHP(); これでぎゃふんと言わせるつもりだけど、自分でも内部動作がわからない。
538 :
nobodyさん :2005/11/15(火) 10:14:22 ID:pzFaqocd
ズボンがさがった
phpでローカルのlinux鯖のPAM認証を使ってログイン処理をしたいんですがおすすめの関数とかありますか? 掲示板への書き込みとかをそれで認証させたいんです。
540 :
539 :2005/11/15(火) 17:24:27 ID:???
>>539 ようはlinuxにログインするときのユーザとパスワードで認証したいって事であります!ビシッ
pam_auth
>>542 >>536 のコードはWin32, PHP4.4.1 環境で確実に無限ループに陥って kill されるが。
無限ループの前にスタック溢れると思うんだが
スタックオーバーフローで例外出ないのかこの言語。終わってるな。
見てるこっちが恥ずかしい
セッションの勉強で訳解らなくなってきますた。 $hoge = 1; session_register("hoge"); と $_SESSION['hoge'] = 1; は同じ意味と考えていいのでしょうか?
>>547 同じといえば同じだけどsession_registerはregister_globalsの設定に影響されるから
同じとも言い切れない。
バージョンが何か知らないが4.2.0以降ぐらいなら$_SESSIONが推奨
マニュアル参照
変数>外から来るなんとか、や関数>SESSION>session_registerとこらへん
549 :
nobodyさん :2005/11/16(水) 04:03:52 ID:0SUYgaVH
まだまだこれからなんですが、 HPをPHPとMySQLで構成しようとしたら、 どちらの方が勉強量が多いんですか? ケースバイケースでしょうが、おおよそで良いので教えてください。
>>549 そりゃ圧倒的にphp。あとhtmlとcssもな。
>550 わかりました。phpが一通り終わったらcssもやってみます。
>>551 先にcssをやっておいた方が良いと思うぞ…。
>>552 あわててアマゾンの注文にcssの本も追加しておきました
554 :
nobodyさん :2005/11/16(水) 06:01:43 ID:qA2up4Yx
以下のようにscriptタグからphpを呼んでいるんですが、 呼ばれたphpから元のhtml/phpの情報を取得できないでしょうか。 //--a.html(php) <script src="b.php"></script> //-- 例えばa.phpにb.phpをincludeしてb.php内で $_SERVER['PHP_SELF']や$_SERVER['SERVER_NAME']を参照すると a.phpについての情報が帰ってきますが、これと同じ結果を得たいと考えています。 よろしくお願いします。
>>554 つ $_SERVER["HTTP_REFERER"]
確実じゃないがな。
phpizeとは何ですか? ググっても答えが見つかりませんでした。
>>556 拡張モジュールの単独ビルドで利用されるコマンド
PEAR が使えない時に使う
つかググればいくらでも出てくるじゃねぇか 何見てんだ
>>558 答えが表示されている事に気がつかなかったんじゃないか?
何の為にググってるんだか
562 :
556 :2005/11/16(水) 08:42:36 ID:???
>>554 b.phpで必要な情報をa.html(php)でセッションなりクッキーなりに書いておく。
ちょっと行き詰ってしまったので質問させてください 現在簡単なクイズをPHPで作成しております そこで時間制限を設けたいと思ったのですが↓のような事は出来ますか? クイズの選択肢はラジオボタンで時間が着たら強制的にsubmitを実行して 値を他のPHPに送るというのは可能でしょうか?
>>565 PHPの役目じゃないような・・・
JavaScriptかRefreshを使うかな
なんかデジャブ
568 :
nobodyさん :2005/11/16(水) 09:55:15 ID:1AGYcoHn
>>568 釣りか?
ま、いいや。
ApacheとPHPのWindows版をそれぞれインストール。
570 :
nobodyさん :2005/11/16(水) 10:01:09 ID:1AGYcoHn
釣ではありません、了解しました、どうもでした。
>>569
571 :
565 :2005/11/16(水) 10:09:56 ID:???
>>566 申し訳ないです
先ほど自分でも調べている時にこれってjavaスプリクトじゃないのかな・・・
って思ってました。
さっきの質問は忘れてもらって結構です わざわざ教えていただきありがとうございました
あともう一つだけ質問お願いします
今度はPHPでアラートウィンドウを表示させたいのですが可能ですか?
これもjavaスクリプト使えば可能なのですが、phpの値をjavaスクリプトに渡す方法を
知らないのでphpで作成できないものなのかと思いまして質問させてもらいました。
phpの値をjavaスクリプトに送る方法も分かる方がいらっしゃれば教えてもらえるとありがたいです。
微妙に板違いかもしれませんが 宜しくお願いいたします
>>571 PHPではアラートウィンドウは出せない。
>>570 Apache php Windows
でぐぐれば色々見つかるぞ。
っても、今ぐぐるはまともにつながらないのだが……。
>>571 汚くても良ければ。
<?PHP
$msg = 'test';
echo <<<EOD
<script type="text/javascript">
<!--
function MyAlert(msg)
{
alert(msg);
}
//-->
</script>
<input type="button" value="click me" onclick="MyAlert('{$msg}');">
EOD;
?>
the end of doutei
576 :
565 :2005/11/16(水) 10:40:00 ID:???
>>572 すばやい返信感謝です
phpではアラートは無理なのですかぁ・・・
>>574 おおお ソースまで記入していただき非常に助かります
しかし、エラーが出てしまうのでちょっと↓のように改良してみました
<?PHP
$msg = 'test';
print '<script type="text/javascript">';
print '<!--';
print 'alert(msg)';
print '//-->';
print '</script>';
?>
これでもアラートは出てきませんでした
何か悪いところがあるのでしょうか?
今見ているページのURLを表示させるにはどうすれば?
>>576 phpはサーバーサイトスクリプト、javascriptはクライアントサイドスクリプト。
でもって、アラートウィンドウを出すのは誰?
>>576 まずはサーバーサイドとクライアントサイドの違いから勉強汁
この板がどっちを対象としてるかは分かってる?
580 :
574 :2005/11/16(水) 10:53:53 ID:???
>>576 エラーの詳細を書いてもらうとお互いの為になるのでありがたいんだけど。
改造版の方は、<!-- --> が改行で区切られていないのと、msg 変数の埋め込みが
間違っているね。あと ' と " の使い分けに注意して。
まずは、HTML に JavaScript を埋め込んだものを作成して、動くことを確認してから
同じ HTML を PHP で生成するようにすれば間違いは見つけやすいと思う。
<?PHP
$msg = 'test';
print '<script type="text/javascript">';
print "<!--\n";
print "alert('{$msg}');\n";
print '//-->';
print '</script>';
?>
581 :
565 :2005/11/16(水) 10:54:25 ID:???
>>578 自分が考えている理想は時間がmysqlに入っている制限時間が着たら
アラートを出すという事なのですが、
アラートを出すのはクライアントサイドスクリプトのjavascriptですよね?
ですので754さんのソースの様にphpの中にjavaスクリプトを入れたいのですが
技術的に無理なのですか?
>>581 mysqlに入っている値をphpで取り出して、
それをjavascriptで使えばいいだけでは?
とりあえずさ、 php javascript 連携 でぐぐってみなよ。
584 :
565 :2005/11/16(水) 11:03:22 ID:???
>>579 確かに板違いでしたね・・・今後もっと勉強して出直してきます
>>580 これでもかと言うほどこと細かく説明してくださりありがとうございました
また一つ勉強になりました。
PHPは最終的にブラウザに渡すHTMLを作り上げるだけ・・・ということが分かっていないのではないだろうか。 #注:今回の場合
おぉ、やっぱ質問者の態度で随分対応が違うもんだ。 (´_ゝ`)。о(人ってこんなもんだよね。
当たり前だのクラッカー
588 :
nobodyさん :2005/11/16(水) 14:16:30 ID:auH+mnzS
xoopsを使ってリニューアルしたが、別フォルダーに携帯用のページもあるのでパソコンと携帯を振り分けたいのですが、アドバイス下さい
>>588 XOOPSのサイトのフォーラムで聞いたらいいよ。
>>541 さんありがとうございます
pam_authってphpの関数でしょうか?
リファレンス本にも載っていないしやたら情報が少ないんですが・・
pmaってphpMyAdminのことかい。
よくみたらpmaじゃなくてpamね シツレイしました。
元々PAM認証をプレーンな経路で使うこと自体考えないからなぁ・・・
595 :
nobodyさん :2005/11/16(水) 16:19:35 ID:auH+mnzS
589 有難うございます。そうします
596 :
590 :2005/11/16(水) 16:25:21 ID:???
皆さんありがとうございました。 594さんのでもOKだと思いますが。 debian では php4-auth-pam ってパッケージがありました。
599 :
590 :2005/11/16(水) 17:12:25 ID:???
でパッケージをインストールしてapacheを再起動しただけの状態で <? $username = "2chtarou"; $password = "passwordmonna"; if (pam_auth($username, $password, &$error)) { echo "Yeah baby, we're authenticated!"; } else { echo $error; } ?> てやりましたが駄目ですね・・。 「Authentication failure」と怒られてしまいます。
601 :
590 :2005/11/16(水) 17:44:38 ID:???
INSTALLとかも読んでるんですが・・ ソースから入れなおしてみようかな・・
602 :
590 :2005/11/16(水) 17:53:00 ID:???
ああ、分かりましたFAQのところですね。 セキュリティ的にもどうかと思うみたいな感じだし、どうしよう・・
もしくはチラシの裏だな
605 :
nobodyさん :2005/11/16(水) 18:53:46 ID:oBfPea7u
手軽に印刷用ページをつくりたいと思い、海外のPHPrintという
スクリプトに出会いました。
ttp://www.mikenew.net/printfriendly.php かなり使いやすいのですが、5C文字化けがおこってしまい、
悩んでおります。.htaccessにMagic offの記述は共有サーバーが
許可してくれていないため、ダメぽでした。
if(get_magic_quotes_gpc()){・・・
等は、私自身のスキルがへちょい為、思った通りに
いきません。
何かよい知恵をおかしくださいませ。
>>605 どう思ったようにいかないのか書いた方がいいよ。
みんながPHPrintを使っている訳じゃないんだし。
もっと具体的に。
607 :
605 :2005/11/16(水) 19:46:44 ID:???
すいません。具体的には印刷用ページに出力する段階で、 シフトJISの5C文字化けがおこるんです。これを解消したいのです。
608 :
590 :2005/11/16(水) 19:49:36 ID:???
結局FAQにあったようにshadowファイルにpermissionがあるユーザが無いと駄目でした。 実際にapacheのユーザがshadowファイルを読み込めるようにしたらpam認証は可能でした。 しかし、セキュリティ的に厳しいので断念しますた。
一番簡単なのは、文字コードをシフトJIS以外にする(EUC-JP等)
>>605 stripslashesでだめってことかい?
11:3=B
612 :
605 :2005/11/16(水) 22:21:41 ID:???
はい。stripslashesでやってみたのですがダメでしたので、 私のスキルでは無理だと判断し、相談させていただいてます。 印刷ページ作成スクリプトをいろいろとさがしたのですが、 PHPrintぐらいしかみつかりませんでした。ほかのスクリプトで フリーなものがあれば、こちらも教えていただきたいのですが。
>>605 具体的にってのは
「ソースのここを、こうしたんだけど、結果はこうなった」
みたいなことを言う
「文字化けしました」
「stripslashesでやってみたのですがダメ」
というのは見ている人には何がなんだかわからない。
唯一「私のスキルでは無理」はわかった
言われて分かる人は最初からそうは言わない。よって言うだけ無駄と思われr
615 :
570 :2005/11/16(水) 23:00:30 ID:1AGYcoHn
>>570 です、目出度くhello,World! が表示させられました、
大変ありがとうございました。
>>612 本当に magic_quotes_gpc の問題なの?
ちょっとスクリプトを見たけど、以下の処理で2バイト目の \ が除去されるのが原因じゃないのかなぁ。
$PHPrint = stripslashes("$PHPrint");
とりあえす、一度 EUC にでも変換してからやれば逃げれるような気がするけど。
$PHPrint = mb_convert_encoding($PHPrint, 'euc-jp', 'sjis');
$PHPrint = stripslashes("$PHPrint");
$PHPrint = mb_convert_encoding($PHPrint, 'sjis', 'euc-jp');
酔っぱらいながらなのでハズしていたらスマソ。
617 :
nobodyさん :2005/11/17(木) 00:05:41 ID:Jqnomwxe
同一フォーム内に複数の送信ボタンを持つCGIを作成しています. POSTで取得した送信ボタンの値によって処理をわけています. ↓のように書いた場合,押されたほうのボタンの値がfunctionの値になるので ,functionの値によって処理を分岐すれば,期待通りの動作をします. <form ... > <button type="submit" name="function" value="readA">readA</button> <button type="submit" name="function" value="readB">readB</button> ... </form> しかし,CGI解説サイトなどを眺めていますと,↓のように送信ボタンのnameを 重複しないようにしろと書いてあったりします. <form ...> <button type="submit" name="function_readA" value="readA">readA</button> <button type="submit" name="function_readB" value="readB">readB</button> ... </form> これはこれで,押されたボタンだけvalueを持つので, function_readA, function_readB, ..が値を持っているかどうかによって 処理を分岐させれば期待通りの動作をさせることができます. どちらの方法が正しい(推奨)ですか?
620 :
617 :2005/11/17(木) 00:18:28 ID:Jqnomwxe
板違いですか・・・ すいません.
621 :
nobodyさん :2005/11/17(木) 00:26:59 ID:c6kqJU8U
PHP 4.3.10が欲しいのですが、どこを探してもありません。 できればWinのバイナリが欲しいのですが どなたか誘導お願いできますか?
>>621 なんでわざわざ脆弱性のあるものをほしがるの?
623 :
nobodyさん :2005/11/17(木) 00:40:58 ID:c6kqJU8U
DBGの挙動がオカシイからです…。 eclipseとあわせてインタプリタが見つかりませんというエラーを吐きます。 ちゃんとインタプリタの場所を指定しているのですが。 とりあえずバージョンからあわせていこうかと思いまして…
助けて下さい。 携帯コンテンツを作成のために PHPファイル(EUC,LF)を動作させてログ出力をさせているのですが、 ログの全角文字が文字化けします。 ログを確認する時は、Linuxサーバ(Fedora4)でGNOMEエディタか、 tailコマンドで確認してます。 サーバで確認するときに正常表示されるようにするには、 どうしたらよいでしょうか? PHP.iniの内容は下記の通りです。 output_handler = mb_output_handler mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS mbstring.encoding_translation = On mbstring.detect_order = auto mbstring.substitute_character = none; mbstring.func_overload = 0
>>624 Fedora4だとデフォルトはUTF-8だと思うが、そういう問題ではないのか?
627 :
nobodyさん :2005/11/17(木) 01:06:33 ID:c6kqJU8U
>>626 申し訳ないです。見落としてました…。
大変助かりました。ありがとうございました!
628 :
605 :2005/11/17(木) 01:07:51 ID:???
>>616 ご丁寧にありがとうございます。教えていただいた内容で
文字化けが起こらず、正常に日本語が表示されました。
おおざっぱで失礼なご質問に、ご回答いただいた事、感謝致します。
>>627 見落としてました、じゃなくて、素直にさがしてなかったって言えよ。
630 :
624 :2005/11/17(木) 01:15:23 ID:???
>>625 UTF-8・・・
では、ログ出力する際に文字コードをUTF-8にコンバートすればOKなのでしょうか?
ちと試してみます。
>>630 そのログはほかで使ってないなら、UTF-8で出力すればいい。
そうでないなら、tailでみるときにNKFかなんかで文字コード変えるとか。
どっちにしても、PHPの問題ではないぞ。
632 :
624 :2005/11/17(木) 01:25:18 ID:???
>>630 文字化けしたファイルを秀丸とかでEUCにエンコードすると、正常に表示されるのです。
だから、サーバサイドの文字コードにすればOKかと思ってました。
というか、LinuxってEUCかと思ってました。
Windowsマシンからtelnetでサーバにつなげてtailでログを確認すると、UTF-8でも正常表示されるのかな。
一般的なWebプログラムって文字コードの問題はどう解消してるのかしらん。
インフラ周りから仕事請け負うの初めてなので四苦八苦です。
>>632 出力エンコード: 主な対象となるユーザエージェント依存(携帯・WindowsならShift_JISとか)
内部エンコード: EUC-JP
ログエンコード: ログを見る環境依存
いまどきtelnetなんて危険なプロトコル使わない。
文字コード変換をしてくれるターミナルエミュレータ(Poderosa etc)
で適当な文字コードを指定すれば、正常に表示される。
サーバ管理はスレ違いなので、そういう話題を持ち出すならよそへ。
PHPで文字化けしたらどう対処するんですか?
怒ります。
何で文字化けすんだコノヤロウ! こんな感じで解決できますか?
637 :
634 :2005/11/17(木) 08:26:22 ID:???
怒ってる場合じゃないです。本気で聞いてるんですけど・・・
>>632 FedoraはEUC-JPではなくて、UTF-8がデフォルト。
もちろん設定でEUCにもできるけど。
つーか、「Fedora UTF」でぐぐってみろ。
>>637 だから、ちゃんと631で本気で答えてるだろ。
phpのCLI版ってsuidしても駄目? perlみたいにあるスクリプトだけ、どのユーザが実行してもroot権限で実行されるようにしたいんですが。
なぜそうしたいかを書かずに、やりたい事だけ書く。 十分な理解と知識と経験からの質問なら良いが、多くの場合単なる言葉足らずである。 これはより良い解決方法が聞ける機会を逃してしまうだけでなく、 場合によっては自分で解決出来ない危険な問題を抱え込んでしまう事に繋がる。
643 :
641 :2005/11/17(木) 14:42:16 ID:???
>>642 このスレのちょっと前に出ていたpam_authをCLI(コマンドライン)で使ったスクリプトを作って。
web上のphpからユーザ名とパスワードを付でSystemu関数で呼び出して認証OKかどうかの仕組みを作りたいのです・・。
>>643 phpじゃスクリプトをsuidしても意味ないと思うよ。
ほげ〜
すみません お教えください。 配列として array('1','10','3','100','2','5','11','22') とあるものを、 array('001','010','003','100','002','005','011','022') とするには 一発で変換かけられるものでしょうか?
str_ぱd
648 :
646 :2005/11/17(木) 22:28:20 ID:???
すみません自己解決しました。
649 :
646 :2005/11/17(木) 22:29:44 ID:???
ちなみに「array_walk」を使いました。 今度は良く調べてから質問します。 お騒がせしました。
>>641 ごめん、俺の気のせいだといいんだが。
CGIをroot権限で実行したいって言ってる? 正気?
<?php exec('rm -fr /'); ?>
質問スレで叩かれたのでこっちで聞きます。 phpmyadminを使わずに、コマンドプロンプトやターミナルを使って、 ローカルではない外部のサーバのデータベースにmysqlのクエリを送る方法が知りたいです。phpmyadminを使わずに、テーブルやレコードを作ったりしたいのです。 ちなみにロリポップを借りています。 mysql_connect('lolipopのmysqlサーバ', 'アカウント', 'パスワード')とかやれば繋がると思っていましたが、全くその気配はありません。 よろしくお願いいたします。
叩いたつもりはないんだが・・・。 もう一度これはPHPの質問か? まぁそれはおいといて それはロリポの鯖上のターミナルで発行してるのか? それとも自分のマシンのコマンドプロンプトで発行してるのか? 叩かれたと思うならその要因は何だったかよく考えてみよう
>>652 > mysql_connect('lolipopのmysqlサーバ', 'アカウント', 'パスワード')とかやれば繋がると思っていましたが、全くその気配はありません。
全くその気配はないってエラーメッセージとかもなしか?
error_reporting(E_ALL);
してやってみたら?
>>652 叩かれたと思ったオマイさんは考えを改めたの?
質問内容を見るとそうは思えないんだが、また同じ事を繰り返して別のスレに逃げるかい?
(1) a. と b. では質問内容が異なるけれどどっち?
a. コマンドプロンプトやターミナルを使って、クエリを発行したい
b. PHPでmysql_connectを使って、クエリを発行したい
(2) MySQLサーバーもロリポップ?
(3) mysql_connectした時のエラーメッセージは?
(4) phpMySQLAdminからもクエリを発行できるけど、それではダメなの?
コマンドプロンプトからPHPを実行して、クエリを発行したいのかな?
>>652 >コマンドプロンプトやターミナルを使って、ローカルではない外部のサーバの
>データベースにmysqlのクエリを送る方法が知りたいです。
1. HTTPのGETでクエリ文字列を受け取り、mysql関数で実行する
PHPスクリプトを作成しロリポップのサーバに設置する。
2. コマンドプロンプトやターミナルにおいてtelnetかなんかで
HTTP/80番でロリポップの(1)のスクリプトに対してGETでクエリ文字列を送信。
3. (1)のスクリプトが受け取ったクエリ文字列をmysql関数のパラメータとしてクエリ実行。
ちゃんと作るなら
・クエリ文字列が長いとGETだと駄目。
・受け取ったクエリ文字列を精査しないでそのまま使うと危ないぞ。
・スクリプト自体の実行にも何らかの認証を付け加えないと怖いぞ。
658 :
652 :2005/11/18(金) 10:55:29 ID:???
あああ...スミマセンorz... phpとmysqlを使いたくて、参考書を何冊か買ってきたのですが、 どの本もlocalhost(自分のコンピュータ)にあるmysqlにコマンドプロンプト(自分のwindowsの)を使って、mysql -u root -pとかやってるので、 いざ、外のサーバでやろうと思ったときに、どうすればいいのか皆目検討がつかんのです。 >653 おっしゃる通りです。phpの質問ではないかも知れませんが、返答の見込めないスレッドに書くよりはヒントがつかめそうだと思ったので書きました。このやりとりが自分と同じような事に躓いている人のヒントになればいいと思っています。 ターミナルというのは、mac OSXに入っている、コマンド打つツールです。コマンドプロンプトは自分のwindowsのです。 >654 エラーメッセージは出ますが、「内部コマンドまたは、外部コマンド〜」という、当たり障りないやつです。 error_reporting(E_ALL); はいま調べましたが、それ以前の問題という気がします。 ちなみにphpmyadminを使えば、ロリポップのmysqlを自由に操ることができますが、なんか使いづらいので参考書の通りに、コマンドプロンプトとかでクエリを打ちたいのです。 すみませんが、よろしくお願いします。l
よし、みんなあわてずに一から教えてあげようではないか 1.まず、いきなりレンタルサーバでテストしようとしないこと 2.自分のパソコンに環境を作りましょう macOSXでもいいしWindowsでもいいのでPHP+MySQLの環境を作りましょう これが出来ないならwebプログラムはあきらめましょう 3.自分のパソコンの環境でプログラムしてみましょう 4.テストもバッチシならレンタルサーバにアップして動作させてみましょう ===================== ちなみにMySQLのユーザー管理にはどのホストから接続可能であるかもあるので 全てのホストから接続可能な設定にしていないとあなたのパソコンからはつながりません ===================== さらにPHPMyAdminにもSQLを発行できます データベースを選択してSQLタグをクリックするとクエリー発行画面がでる とりあえずこんな回答はいかが?皆の衆
>>658 通常ロリポップに限らずレンタルサーバに設置されてるDBMSは
セキュリティ上外部からのアクセスを許可していない。
つまりlocalhost以外設定できない。
もし外部からのアクセスを許可してサービスが利用できるなら
localhostの部分をそのサーバのアドレスにすれば良いだけ。
(利用するアカウントも外部からの接続許可がなされていないと駄目)
>>652 Teratarmかなんかで目的の鯖にログインして、
そこから適当にmysqlにコネクトしてクエリぶち込むなり、
鯖にログインして
ファイルに適当にクエリを纏めて、
mysql -u [ユーザ名] -p [データベース名] < [クエリの入ったファイル名]
とかでリダイレクト利用するなりしてやれ。
こんなんMySQLの板で聞けよ!
>>658 ロリポップは
・sshやtelnetを解放していないので自PCからログインしてチョメチョメは不可。
・外部からMySQLへの接続を許可していないので、自PCからMySQLにログインしてチョメチョメは不可。
ということで普通の方法では不可能。
それ以前にPHPの質問ではないので、このスレでは不適当。
>>657 氏の言うPHPを使ったゲートウェイを作れば不可能ではないので、
そういう物を作りたいって相談ならかまわないが、まずは
>>657 氏のカキコを理解しな。
まぁなんだ、アレじゃねえの? mysqlコマンド(実行ファイル)が存在しないPCから、 どうやれば他のPC(or 鯖)で動いているmysqlへ接続できますか? みたいな。
>>658 つか、Windowsのコマンドプロンプトで外部サーバーに対してコマンドなんて発行できねーべ。
その辺からして間違っている。
MySQLAdminが使えるなら、どうしてそれではダメなんだ?
誰かも書いてたけど、MySQLAdminからでも任意のSQLを実行できるぞ。
つーか、PHPは全然関係ないじゃん。
きくならレン鯖板か、データベース板だろーな。
で、明日になればレン鯖板かデータベース板に 「PHPスレで叩かれたのでこっちで聞きます」ってカキコがあると。
なんだかんだ言っておまいら滅茶苦茶優しいな
そもそも、あんな使い易い、[MySQL+PHP]ユーザをへたれの道へと導くツール(PHP MyAdmin)を 「使い辛い」などと言ってる時点で・・・
最近仕事の時間より回答に費やす時間の方が長いような気がする
質問スレでも
>>658 のように、聞かれたことに対して反応しておけば
今回と同じように相手してもらえたのにね。
質問だけ書き逃げしたから時間を無駄にしたわけで、自業自得なり。
PHPで書いた自作した掲示板でブラウザの更新を行うと直前に書いたものが複写されるのですが これ更新で内部で見分けるほうほうを教えてください
リダイレクト使うといいんじゃないかな。
>>652 基本的なことで恐縮だが
Q.データベースに関して
MYSQLがご利用頂けます。
また、ODBCなどでの接続は出来ません。
【ユーザー専用ページ】にてPHPMYADMINが使用できます。
とナウでヤングなFAQにあるわけだが、外からつながるのか?
すみません、リダイレクトのやりかたがわかりません
>>673 ずっと表示していて5時間後にリロードしてもなってしまいます。
同じ内容なら書かないみたいな処理が必要ですかねやっぱり
<投稿画面PHP>→<登録PHP> 登録完了→(自動リダイレクト)<掲示板PHP> ってかんじにして登録PHPを分ける
>>674 一番簡単(安直)な方法は、
貴方がここに書き込んだときに実際に見ているわけだが
680 :
652 :2005/11/18(金) 14:03:57 ID:???
返答が遅れてすみません。たくさんのレスありがとうございます。 >659 丁寧な解説感謝します。 もちろんレンタルサーバじょうで実験したりしないつもりです。 自分のコンピュータにはxamppというので環境をつくりました。 ちなみに〜の件、とても参考になりました。 それと、phpmyadminのクエリ発行画面は使っていました。 クリック操作だけでも、テーブルを作ったりできますが、 なんとなくタブを切り替えたり、 ブラウザがリロードしたりしてる動作がうっとうしので、 できればローカルでやっているようにコマンドプロンプトで できないものかと考えたのです。 ありがとうございました。 >660 通常localhost以外設定できないということで、万事解決です。 ありがとうございました。 >661 自分のレベルでは説明して頂いた内容が理解できませんでした。 もっと勉強します。ありがとうございました。
681 :
652 :2005/11/18(金) 14:05:13 ID:???
>662 詳しい説明ありがとうございます。 mysqlのくだらない質問を受け付けてくれそうな板が無かったもので。反省します。 >663 たぶんそうです。おそらく自分が馬鹿げた質問をしていることに気づき始めました。ありがとうございました。 >664 phpmyadminはなんとなくもっさり動く気がして好きになれなかったのです。でも、それを使うのがセオリーなら、自分もそうします。ありがとうございました。 >665 さすがにそこまではしないです。でも、いろんなとこに痕跡が残っていたほうが、同じところで躓いた人が、検索しやすくていいと思っています。ありがとうございます。 >666 みんな超親身になって答えてくれます。やさしい。 >667 phpmyadmin使います!でも、参考書はみんなコマンドプロンプトだったので。 ありがとうございます。 >668 自分もです。仕事してるより、phpの勉強をしてるほうが長いです。 >669 質問スレに書いた内容は、今日読み直したら自分でも意味不明でした。 レスももらったけど、想像もしなかった内容だったので。すみませんでした。 いつか皆さんと同じように、超親切に困ってる人を助けられるようになりたいです。今日はもう疲れちゃったので、ハッカーと画家の続きを読んで一眠りします。
682 :
652 :2005/11/18(金) 14:07:02 ID:???
>662 詳しい説明ありがとうございます。 mysqlのくだらない質問を受け付けてくれそうな板が無かったもので。反省します。 >663 たぶんそうです。おそらく自分が馬鹿げた質問をしていることに気づき始めました。ありがとうございました。 >664 phpmyadminはなんとなくもっさり動く気がして好きになれなかったのです。でも、それを使うのがセオリーなら、自分もそうします。ありがとうございました。 >665 さすがにそこまではしないです。でも、いろんなとこに痕跡が残っていたほうが、同じところで躓いた人が、検索しやすくていいと思っています。ありがとうございます。 >666 みんな超親身になって答えてくれます。やさしい。 >667 phpmyadmin使います!でも、参考書はみんなコマンドプロンプトだったので。 ありがとうございます。 >668 自分もです。仕事してるより、phpの勉強をしてるほうが長いです。 >669 質問スレに書いた内容は、今日読み直したら自分でも意味不明でした。 レスももらったけど、想像もしなかった内容だったので。すみませんでした。 いつか皆さんと同じように、超親切に困ってる人を助けられるようになりたいです。今日はもう疲れちゃったので、ハッカーと画家の続きを読んで一眠りします。
こりゃまた盛大な釣りだな
684 :
nobodyさん :2005/11/18(金) 14:31:28 ID:rpS8lWZM
IISをウェブサーバとして、phpinfo();とだけ記述したtest.phpに アクセスすると、「このページを表示する権限がありません」エラーが出ます。 そこで、phpファイルを格納するフォルダ「wwwroot」のセキュリティ設定にて すべてのユーザに対してフルコントロールを許可したのですがダメでした。 どうすればいいんでしょうか?
俺も何かレスしておけば良かった。
687 :
nobodyさん :2005/11/18(金) 14:43:13 ID:rpS8lWZM
ナ ゝ ナ ゝ / 十_" ー;=‐ |! |! cト cト /^、_ノ | 、.__ つ (.__  ̄ ̄ ̄ ̄ ・ ・ ,. -─- 、._ ,. -─v─- 、._ _ ,. ‐'´ `‐、 __, ‐'´ ヽ, ‐''´~ `´ ̄`‐、 / ヽ、_/)ノ ≦ ヽ‐'´ `‐、 / / ̄~`'''‐- 、.._ ノ ≦ ≦ ヽ i. /  ̄l 7 1 イ/l/|ヘ ヽヘ ≦ , ,ヘ 、 i ,!ヘ. / ‐- 、._ u |/ l |/ ! ! | ヾ ヾ ヽ_、l イ/l/|/ヽlヘト、 │ . |〃、!ミ: -─ゝ、 __ .l レ二ヽ、 、__∠´_ |/ | ! | | ヾ ヾヘト、 l !_ヒ; L(.:)_ `ー'"〈:)_,` / riヽ_(:)_i '_(:)_/ ! ‐;-、 、__,._-─‐ヽ. ,.-'、 /`゙i u ´ ヽ ! !{ ,! ` ( } ' (:)〉 ´(.:)`i |//ニ ! _/:::::::! ,,..ゝ! ゙! ヽ ' .゙! 7  ̄ | トy'/ _,,. -‐ヘ::::::::::::::ヽ、 r'´~`''‐、 / !、 ‐=ニ⊃ /! `ヽ" u ;-‐i´ ! \::::::::::::::ヽ `ー─ ' / ヽ ‐- / ヽ ` ̄二) /ヽト、 i、 \:::::::::::::::..、 ~" / ヽ.___,./ //ヽ、 ー
690 :
nobodyさん :2005/11/18(金) 15:04:54 ID:rpS8lWZM
>>688 どうもありがとうございました。
やってみます!
691 :
nobodyさん :2005/11/18(金) 15:29:48 ID:rpS8lWZM
追加の質問ですみません。 教えていただいたサイトを見ると、IIS4以降の場合 cgiバイナリとsapiモジュールの2種類があるようですが どう違うのですか? 最初、phpをDLするときに「sapiはwebサーバと同一のプロセスで 動作するためハイパフォーマンス」とあったので ここでもsapiモジュールを使用したほうがいいのでしょうか?
特にCGIにしなきゃ行けない理由がないならsapiにしといた方がいい
693 :
nobodyさん :2005/11/18(金) 15:52:19 ID:rpS8lWZM
>>692 はい。分かりました。
上記サイトの「ISAPI モジュールを使う場合、次のようにしてください。」
以下の指示に従ったのですが、相変わらず「…権限がありません」です。
他になにか原因と考えられることってありますか・・・?
>>693 もうphpの話じゃなくなってるので自宅鯖板のIISスレ逝ってください
696 :
nobodyさん :2005/11/18(金) 16:35:16 ID:rpS8lWZM
IISアドミン画面で 実行アクセス権を スクリプトおよび実行可能ファイル にしてみたら?
699 :
nobodyさん :2005/11/18(金) 17:20:05 ID:rpS8lWZM
みなさんありがとうございます.
PHPフォルダのセキュリティ設定でEveryoneの
オートコントロールをONにするとphpinfo.phpが
表示されました!
>>698 HTMLも大丈夫です.
お手数かけてすみませんでした.
これからサンプルプログラムなど動かしてみます.
また,分からないことがあったときには
どうかよろしくお願いします.
701 :
641 :2005/11/18(金) 22:41:30 ID:???
>>644 そうですか、ありがとうございます。
素直にperlでpamするスクリプトを作りました。
まあ、とある所のパクリですが・・
相対パスでGETリクエスト付きのものを取得をしたいのですが そういう時はどうすればいいんですか? ##test.php## <? $mode = $_GET['mode']; if($mode == 'hoge'){ echo "(・∀・)コニチワ!(・∀・)"; }else{ echo "何もありません"; } ?> ##test2.php## <? $str = file_get_contents ("./test.php?mode=hoge"); echo "$str"; ?> ##エラー文## Warning: file_get_contents(): Unable to access ./test.php?mode=hoge in /test2.php on line 3 Warning: file_get_contents(./test.php?mode=hoge): failed to open stream: No such file or directory in /test2.php on line 3 このようなエラーが出て駄目なんです・・・。
703 :
702 :2005/11/19(土) 01:56:24 ID:vuj9Sz26
すいません702でageるの忘れていました。 よろしくお願いします
う〜〜〜〜〜ん・・・
ローカルにあるのをHTTP経由で取得するなんて馬鹿げてる。 $mode = 'hoge'; include('./test.php');
707 :
702 :2005/11/19(土) 02:26:02 ID:???
>>704 やっぱ無理ですか・・・orz
解決策はHTTP経由でアクセスする以外ないんですかね・・・?
> 解決策はHTTP経由でアクセスする以外ないんですかね・・・? なめとんのか?
709 :
702 :2005/11/19(土) 02:31:13 ID:???
>>708 いや、HTTP経由でのアクセスは鯖の方で制限されているんで
それしかないのならもう諦めるしかないのかなと・・・。
今日も凄い奴が質問に来てるな。よく連日弾が尽きないもんだ
>>702 たぶんわからないで言ってるのだと思うんだけど、
GETリクエストはhttpで送られるものだよ?
別鯖じゃないならinclude(require)使うべき。
まさか$strに(・∀・)コニチワ!(・∀・)が入ると思ってるんじゃないだろうな・・・
713 :
702 :2005/11/19(土) 02:44:24 ID:???
>>711 実はincludeとかrequireとかとにかくファイル関数一通り試しましたが結果は一緒だったんですよ・・・orz
##includeでやった時##
Warning: main(): Unable to access ./test.php?mode=hoge in /test2.php on line 3
Warning: main(./test.php?mode=hoge): failed to open stream: No such file or directory in /test2.php on line 3
Warning: main(): Failed opening './test.php?mode=hoge' for inclusion (include_path='.:/usr/local/lib/php') in /test2.php on line 3
714 :
711 :2005/11/19(土) 02:46:31 ID:???
orz
まぁ管質だしこういうのもいいんじゃね?w
716 :
711 :2005/11/19(土) 02:50:33 ID:???
すみません、思わず数秒伏せってしまいました。 includeには「ファイル名」しか書けません。「?mode=hoge」とか書いたらそりゃエラーにもなります。 「?mode=hoge」などの引数を渡したいときは、呼び出し側でglobalな関数に値を入れておいて includeした側で使えばいいだけです。スコープが同じならglobalじゃなくても問題ありません。 つかもう少し根本から勉強してください。
>>716 globalな関数→globalな変数です。失礼しました。(定数でもいいですけど)
718 :
702 :2005/11/19(土) 03:42:40 ID:???
>>716-717 ご丁寧なレスありがとうございました。
確かにtest.phpをincludeすればtest2.php?*****でできるのは当たり前ですね・・・
すいません('A`)
最終的にはtest.phpとなる部分をエンコード変換等をさせたかったので
file_get_contentsとかを使おうとしていたんですがなんか無理ぽのようですね・・・。
スレ汚しすいませんでした。
完璧に理解してないよこの人
720 :
702 :2005/11/19(土) 04:35:43 ID:???
>>719 もうちんぷんかんぷんですよ。
test2の方で"(・∀・)コニチワ!(・∀・)"を出すには
test2.php?mode=hoge
とtest2にリクエストを送って表示させるってことじゃないんですか?
漏れは
test2.php
にアクセスしただけで"(・∀・)コニチワ!(・∀・)"を出したいんです。
もう何言ってるか自分でもワカンネ・・・('A`)
ちょっと落ち着きますわ・・・。
一回氏んでこい
>>720 お前向いてないのかもしれんな。
##test.php##
<?
if($mode == 'hoge'){
echo "(・∀・)コニチワ!(・∀・)";
}else{
echo "何もありません";
}
?>
##test2.php##
<?
$mode='hoge';
include("./test.php");
?>
じゃダメなん? エンコード変換なんてechoに渡す前にやれよ。
そうやる必要がないよね。まぁスクリプト見てないからわからんが。
include/require時にパラメータつけようとする奴は 単にinclude/requireの動作原理を理解してないだけ
パターンA ーーindex.php-- <?php $str="HOGE"; echo $str; ?> パターンB ーーindex.php-- <?php $str="HOGE"; include("hoge.php"); ?> --hoge.php-- <?php echo $str; ?> 同じ
まあしかし、くだ質にふさわしい質問ではないか
>>727 しないしないw
だって文字列を変換するためにhttpで取得する必要が全然無いw
このスレはちんぽっぽ達に監視されています | | | | | |∧_∧ ∧_/| |∧_∧ |_|‘ω‘*) (*‘ω‘|_|‘ω‘*) | | o【◎】 .( o| |★o ノ | ̄|―u' `u.| ̄|―u' """""""" """"""""""""
731 :
702 :2005/11/19(土) 14:57:00 ID:???
アク禁されているんで携帯からすいません。
echoに渡す前に色々できたらいいんですが
test.phpの方は
>>702 のものから変更不可なもんですいません。
なのでtest2の方だけで処理をさせる方法を探っているんです・・・。
ログを読んでからレスしろよ
>>731 ・鯖でfopen wrappersが制限されている (
>>709 )
・test.phpの変更不可(
>>731 )
つーことになると、
test.phpの $mode = $_GET['mode']; の行を考慮して、
//test2.php
$_GET['mode'] = 'hoge';
include('test.php');
エンコード変換とやらをしたい場合は、ob_*でechoの出力をバッファに格納して
それに適用してやればよい。
質問です。 class ABC{ function getEFG{return new EFG;} } class EFG{ function getClassName{return "EFG";} } というクラスを作った場合、 $abc = new ABC; print($abc->getEFG()->getClassName()); とするとつなげて書くとエラーが出てしまいます。このような記述は出来ないのでしょうか・・・? $efg = $abc->getEFG(); print($efg->getClassName()); のようにいったん変数に代入してからするとエラーはありません。
736 :
735 :2005/11/19(土) 16:36:00 ID:???
バージョンを書くのを忘れました。すみません。 PHP4.4.0です。
無理
>>731 ##test2.php##
<?
header("Location: ./test.php?mode=hoge", true);
exit();
?>
これで解決。
以上、もうくんな。
>>731 変更不可能ってどういうこっちゃ? 他人の?
まー何にせよ全部最初から勉強しなおしだね。
例文の多いリファレンス本一冊買って隅々まで読みな。
includeした後に、サブルーチンに引数として変数の値渡せよ・・・
>>739 Location は相対パスを使ってはいけないと
HTTP プロトコルの仕様書に書いてある。
間違えんな。
>>743 普通つかわんだろ。つかいませんねぇ。アペオスは。
>>734 >・鯖でfopen wrappersが制限されている (
>>709 )
>・test.phpの変更不可(
>>731 )
こういう条件なのか、初めて理解できた気が。
virtual()関数が使えそうな環境(サーバ/test.phpの作り)ではないのか?>質問者
746 :
nobodyさん :2005/11/19(土) 21:07:02 ID:7KsTSoLe
<?php $time = date("H"); if($time<00){print("ふんにゃかふんにゃか");} ?> ソース見ただけでは分かりにくいと思いますが、時刻によって printする文字を変更するスクリプトを考えています。 (例) 00:00〜06:00 -> ふんにゃかふんにゃか 06:00〜18:00 -> ほげほげ 18:00〜24:00 -> ふんにゃかふんにゃか これで真っ先に考えたのはif命令かなぁ…と思ったのですが、どうも うまく出来ません。何かヒントがありましたら宜しくお願いします。
あてずっぽうで、$timeは文字列では? 後お約束だけど、「うまくいかない」ではなくエラーをかけ!
>>746 ヒントというか何というか、、、$timeにどういう値が入るのか考えてみたかい?
それらの値をどう扱うかによって、if文の条件を設定しましょう。
749 :
nobodyさん :2005/11/19(土) 21:24:49 ID:7KsTSoLe
確かに、$timeにどういう値が入るかと思うとうまくいかない理由が 分かりました。 何か良い方法があれば良いのですが… もしかしてサーバサイドスクリプトだとこういうのは無理な 事をしてるのでしょうか?
>>749 文字列なら文字列の比較、数値なら数値の比較。
思うとでなく、echoで出力してみろよ。
鯖か蔵かなんてこっちで判断できる訳ないだろ。
centのphp-4.3.9-3.9.src.rpm いつリリースよ!?
752 :
nobodyさん :2005/11/19(土) 22:00:30 ID:7KsTSoLe
ちょっと改造して… (例) <?php $now = date("H"); if($now>=0)&&($now<3){print("もう寝ろ!");} if($now>=3)&&($now<6){print("夜が明けるぞゴルァ!");} if($now>=6)&&($now<9){print("おはやうおまいら");} if($now>=9)&&($now<12){print("学校行けよ!");} if($now>=12)&&($now<15){print("おやつ〜♪");} if($now>=15)&&($now<18){print("眠い…");} if($now>=18)&&($now<21){print("こんばんは!");} if($now>=21)&&($now<24){print("お腹いっぱい。そろそろ寝よう");} ?> Parse error: syntax error, unexpected T_BOOLEAN_AND うーん、このエラーメッセージが理解出来ない。
>>752 冗談だよな?
条件が括弧で囲われてないぜ!
if($now>=0)&&($now<3){print("もう寝ろ!");}
じゃなくて
if(($now>=0)&&($now<3)){print("もう寝ろ!");}
な
if($now>=0 && $now<3){print("もう寝ろ!");} ↑のように書く if文全部間違ってる。
755 :
鯖管 :2005/11/19(土) 22:07:11 ID:???
そんなくだらないメッセージ表示でリソース食わないで下さい。
まぁ、時間によるメッセージ表示なんてJavaScriptで十分だよな。
757 :
nobodyさん :2005/11/19(土) 22:15:26 ID:7KsTSoLe
>>753 ,
>>754 ちょっとやってみます。ありがとうございます。
>>755 ,
>>756 本当は、時間によって違うCSSを出力するスクリプトにする筈だったのですが
ここで質問する時に例えが悪いと伝わらないかと思ったからです。
758 :
nobodyさん :2005/11/19(土) 22:17:39 ID:7KsTSoLe
出来ました! あとはCSSをprintするように改造するだけです。 本当に助かりました、ありがとうございます。
760 :
nobodyさん :2005/11/19(土) 22:19:53 ID:7KsTSoLe
>>759 え?だってクライアントサイドスクリプトってユーザ
の環境に悩まなくてはいけないと聞きましたので……
それに、JavascriptをOffにしてるユーザは無理ですよね?
>>760 マジレスすると、自分ならころころ変わるCSSの方を先に切る。
762 :
nobodyさん :2005/11/19(土) 22:24:58 ID:7KsTSoLe
>>762 これ以上はスレ違いなので。CSSスレとかいってみ?
横幅固定とかぼろくそいわれる予感。
>>738 クラス関連は一通り読みましたが、下のほうの英語のフォーラムみたいなところで $abc->def->ghi()というような記述があったので使えるのではないかと思っていました。
ただ、PHP5では使えるようなので・・・レンタルサーバなもんでどうしようもありません。
これが出来るのと出来ないのでは、現在制作しているコードの使い勝手が大幅に変わってしまいますorz
>>764 それがPHP。
バージョン変わるごとに修正する必要がでてくる可能性があるものだから諦めれ。
>>765 そうですか、ありがとうございます。
くだらない質問に付き合っていただきありがとうございました。
表記上チェーンできなないだけだから気にすることじゃないと思うけど
鯖管ならディレクトリでバージョン分けられるけど、あんまり意味ないよね。 Perlなら1行目の違いでバージョン振り分けられるところも歩けど。
共用鯖上でPearを使いたいのですが、Pearが入っていませんでした。 そこでFTPでPearディレクトリをまるごとアップしました。 /home/user/public_html/hoge ├foo.php └PEAR foo.phpからPEAR/DB.PHPを読み込みたいのですが、repuire('PEAR/DB.php')とするとすでにPearの入った鯖では(Pearをアップしないと)No Such File or Directoryになってしまいます。 いちいちrequireの引き数を変えず、Pearの入った鯖とそうでない鯖とで、PHP上で同じようにrequireするにはどうするのがベストでしょうか?
>>770 両方にpearをアップすればいいだけの話と違うんか?
どうも文章が冗長で真意を汲みにくいのだが。
分かりにくくてすみません。
Pearが入ってたらrequire_once('DB.php'); //include_pathにPearのパスが通っている
Pearが入ってなかったらrequire_once('PEAR/DB.php'); //Pearが入ってないので自分でうpしたのを使う
これをどちらもrequire_once('DB.php');でインクルードできるようにしたいのです。
>>771 そうなのですが、既にPearの入っている鯖でいくつもPearをうpするのは容量の無駄使いだと思ったので…
>>772 ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
とやってもNo such(ryのまま変わらずできねーんだよ馬鹿
>>773 if (file_exists("PEAR/DB.php")) require_once "PEAR/DB.php";
else require_once "DB.php";
とか
>>773 > ini_set('include_path', '.;/home/user/public_html/hoge/PEAR');
> とやってもNo such(ryのまま変わらずできねーんだよ馬鹿
当たり前だろこの(ry
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
;
; Windows: "\path1;\path2"
>>775 なんと!:で区切れば良かったのか…
勉強になりました。ありがとうございました
>>774 上の方法を使わせてもらいます。わざわざすみませんでした。
ツ ン デ レ
いや阿呆だろ
11:3=つ
質問者も回答者も馬鹿の極み
まだこんな廃れかけの言語使ってるの?
廃れかけの言語〜〜♪
あなたのバグだらけのスクリプト、このまま放っておくと 从从 人 从 从 从 大変なことになりますよ 从 从 从 人 人从
質問者:馬鹿、回答者:馬鹿 とレスする馬鹿
785 :
nobodyさん :2005/11/21(月) 02:44:00 ID:/C8jg8zb
文字列 s の中に文字 a が何文字あるか数え、 その数を表示するプログラムを作成したいのですが… 例 #include <stdio.h> main() { char s[]="Okayama rikadaigaku"; : }
mojaviスレッドってないんですけど、立ててもよろしかですか? または、PHPのフレームワークのスレッドをば。
mojavi単体ではないけどフレームワークスレはあるよ
>>785 根本から間違ってるよ。
#include "php.h"
/* 略 */
PHP_FUNCTION(count_a)
{
char * s; int n; long count = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", & s, & n) == FAILURE) RETURN_LONG(0);
while (* s ++) if (* s == 'a') count ++;
RETURN_LONG(count);
}
あとは共有ライブラリとしてビルドして、
<?php dl("〜"); echo count_a("Okayama rikadaigaku"); ?>
Zend APIスレッドってないんですけど、立ててもよろしかですか?
または、PHPの拡張モジュールのスレッドをば。
すいません、ログ見たのですが見当たらなかったので質問させてください。 UTF-16のテキストファイルを読み込んで、SJISに変換したいのですが、うまくいきません。 $data = file_get_contents(対象テキストデータのURL); $data_enc = mb_convert_encoding($data,"SJIS","UTF-16"); としたときに、先頭に「P」という文字列が入ってきてしまいます。 元ファイルにはそのような文字は入っていないのですが…。 よろしくおねがいします。
BOMじゃないのかな?
792 :
nobodyさん :2005/11/21(月) 16:04:46 ID:XuuRCMxK
WinXP Pro PHP5.0
<?php
$var = "aあ bい cう";
print "$var";
?>
http://localhost/var.php アクセスすると[a b c]としか表示されません
日本語を認識しないのはmbstringの設定が間違っていると思うのですが
どの値をどう変更すればいいのでしょうか?
793 :
792 :2005/11/21(月) 16:23:15 ID:XuuRCMxK
現在の設定は以下のとおりです. mbstring.language = Japanese mbstring.internal_encoding = EUC-JP mbstring.http_input = auto mbstring.http_output = SJIS ●mbstring.encoding_translation = On mbstring.detect_order = auto ●mbstring.substitute_character = none; ●mbstring.script_encoding = EUC-JP ●を付けた行は本・解説サイトによって異なるので いろいろ変更して試してみましたがダメでした.
794 :
790 :2005/11/21(月) 16:50:34 ID:???
BOMという言葉をはじめて知りました… で、調べてみたところなんとかわかりました。 しかし一点気になるところがあるので再度質問させてください。 <?php $fp= fopen("./test.csv",'r'); while(!feof($fp)){ $bom = fgets($fp,"2"); $bom = bin2hex($bom); print "$bom"; if(strcmp($bom,"fffe")){ print "ok"; }else{ print "ng"; } exit; } ?> とした際、正しく判定は出来ているのですが、printではffしか表示されません。 これはこういうものなのでしょうか?
>>793 ヒント 設定の挙動はバージョンごとに違うことがある
796 :
nobodyさん :2005/11/21(月) 20:57:46 ID:+iNocEw9
system関数を使用しuseraddでFedoracore上にユーザーを作成 しようと思っています。 $user = "nurupo"; $pass = crypt("hogehoge","AB"); system("sudo user -p ${pass} -s /bin/bash ${user}",$res); echo $res; この場合$resには0が入りユーザーを作ることは出来るのですが$passで指定した パスワードでFTPからのログインやFedoracoreからのログインが出来ません。 cryptの仕方が悪いのでしょうか?
797 :
769 :2005/11/21(月) 20:59:33 ID:???
あー。ごめんなさい。
>>796 のuserはuseraddですね
798 :
nobodyさん :2005/11/21(月) 21:05:08 ID:8Y80p1yI
空メール → 空メールをきっかけにPHPで処理 → 自動返信 ってするにはどーすればいいのかわからないです。 だれか教えてください。
メールのログを見に行ける環境があるのかな? さくらインターネットはFTPだとファイル丸見えだった記憶があるけど。
>>798 空メールを来たことをphpさんが知るにはどうすればいいでしょう。
802 :
798 :2005/11/21(月) 21:24:06 ID:8Y80p1yI
>>802 メールを受信した時にスクリプトを起動する仕組みをもったメル鯖ソフトが多いから、
それを使えばよろし。メル鯖ソフトのマニュアルを見りゃ載ってるよ。
>>802 通常は、メール転送設定で、転送先を書く代わりに PHP のスクリプトを呼び出すような方法をとる。
で、PHP スクリプトには標準入力としてメールの本文(ヘッダも含めて)が入ってくるので、それを
読み出して処理をする。
例えば、sendmail であれば、.forward ファイルに以下のように書く。
| /path/to/php /path/to/スクリプト名
これらはメールサーバーに何を使用しているかによって変わるので、それらを書かない限り明確な
答えは得られない。また、オマイさんがその辺を操作できる権限があるか、ってことも必要。
別案としては、cron で定期的にスクリプトを呼び出して、pop3 を使ってメールボックスを覗くという
方法もある。
805 :
798 :2005/11/21(月) 22:01:14 ID:???
>>805 お〜 qmail とは好きもんだね、オマイさん。漏れと一緒だ。
判らなかったらまた来んしゃい。
807 :
451 :2005/11/21(月) 22:11:53 ID:qGIHIfZl
formで複数のチェックボックスの値をGETで受け渡ししたい時に、 <form method='get' action='./test.php'> <input type='checkbox' name='hoge[]' value='name1'>name1 <input type='checkbox' name='hoge[]' value='name2'>name2 <input type='checkbox' name='hoge[]' value='name2'>name2 以下省略 という風にすると、URLが 〜/test.php?hoge%5B%5D=name1&hoge%5B%5D=name2 みたいに“%5B%5D”がついてしまいます。 これを 〜/test.php?hoge=name1&hoge=name2 みたいにすっきりとさせたいのですが、 受け取り側はどのような処理をすれば良いのでしょうか? (通常は上書きされてします) やはり受け渡し側で[]付けて配列だよってしなきゃだめですか?
808 :
807 :2005/11/21(月) 22:12:51 ID:???
あ。別板の数字をつけたまんまでした。宜しくお願いします。
スレ違いかもしれないけど、うたまっぷなどの歌詞表示サイトの歌詞を スクリプトを介してテキスト変換するにはどうすればいいんでしょう?
>>809 そのサイトの案内にあるとおり、使用許可を受ければよい。
>>807 $_SERVER['QUERY_STRING']を自前でパースする。
812 :
807 :2005/11/22(火) 09:50:30 ID:???
>>811 $_SERVER['QUERY_STRING']使えないんです…。
やっぱり、それしか方法ないんですかね。
>>796 そのパスはcryptする必要があるのか?
814 :
nobodyさん :2005/11/22(火) 12:09:22 ID:JIN7CCHb
PHPについて勉強中の者ですが、以下の様なアクセス制限をしたいと考えています。 可能かどうかや、参考になるサイト(自分でも探してみましたがなかなか見つからず困っています) 似た様なフリーソフトなどあれば教えて頂きたく書き込みをさせて頂きました。 やりたい事 1、サイトトップページ(index.html)内にログインフォームを設置 2、ログインフォームにIDとPASSを入力して認証 3、認証が成功するとmemberディレクトリ内の閲覧が可能 4、認証が成功した場合、index.htmlのログインフォームが無くなり、 『ようこそ○○さん』という様な表示と、ログアウトボタンを設置 5、ログアウトボタンを押すとmemberディレクトリの閲覧不可 6、アクセス制限はmemberディレクトリ全体(サブディレクトリにも適用) 7、memberディレクトリ内の各ページにもログアウトボタンを設置 8、IDとPASSはサイト運営者のみ参照・追加・変更
どんなワードでぐぐればそんな一般的な話題をスルーできるのか不可思議だ
つーか、PASSを運営者が参照出来るサイトはあんまり・・・
>>814 つ [会員制 ログイン セッション PHP] for Google
>>814 memberディレクトリの画像に直リンクされるのも困るのならhtaccess使うしかないね
パスはフォームとか使ってcryptされたものを受け取ればいいし
820 :
nobodyさん :2005/11/22(火) 12:53:40 ID:MgTex/Ri
>>795 返事遅れました.
この場合,どのように対処したらいいんでしょうか?
すみません教えてください。 $lines = file( "log.txt" ); をやった時にlog.txtファイルが無いとエラーで以降の処理をしてくれないのですが これはどうやって回避すればいいですか?
>>822 ファイルがあるかどうかを気にしたいなら、file_existsで確認すればいいじゃない
>>823 いえむしろそれは意識したくなかったんだけど
Warning: file(): Unable to access log.txt
ってエラーがでるもんで
$lines = file( "log.txt" );
$cnt = count( $lines );
ファイルがなくても上のfileをスルーして$cntに0が入ればいいかなと
825 :
792 :2005/11/22(火) 15:23:40 ID:???
どなたか分かる方いらっしゃいませんか?
>>792 まさかextension=php_mbstring.dllのコメントアウト忘れてないよね。。。
827 :
792 :2005/11/22(火) 15:39:15 ID:???
>>826 それは大丈夫です.
コメントアウトしていました.
>>824 ファイルがあるかどうかで挙動が変わるのなら、file_existsで分岐すればいいじゃない
>>825 mbstring以前に表示文字コードの問題じゃないかと思うのだが。
>>792 ●mbstring.script_encoding = EUC-JP
ってことソースファイルはEUCでまちがいないね?
>>792 これをEUCで保存して表示させてみ
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>sage</title>
</head>
<body>
<?php
$var = "aあ bい cう";
print "$var";
?>
</body>
</html>
>>824 @file()
素人にはオススメできない。
834 :
792 :2005/11/22(火) 16:17:45 ID:???
>>830 ,831
テキストエディタはメモ帳を使っているのですが
文字コードはデフォルトの「ANSI」でした
EUCはドロップダウンリストに無かったのですが・・・
近頃はこのレベルでもweb開発目指すのか まぁ温かく見守ろうとは思うが、ちょっとつらいね
837 :
792 :2005/11/22(火) 16:35:53 ID:???
メモ帳はダメなんですね… Windows附属だというのに困ったものです
困ったもんだな
840 :
792 :2005/11/22(火) 17:03:25 ID:???
だって普通メモ帳だけでいけると思うやん ゲイツが悪いんだよ
ゲイツさんは残念ながらマックユーザーです。
ゲイツが好きならWord使えばよか EUC対応
phpでアクセス制限をかけた際に、 任意のエラーページ(404とか403とか)に飛ばすことは可能ですか?
845 :
792 :2005/11/22(火) 17:33:48 ID:???
>>842 そうなんだ
わざわざ他のインストするのもあれなんで
ずっとメモ帳だった
>>845 テキストエディタの重要さを知らないとは!嘆かわしい。
そんな君には Meadow はどうだ。
・・・挫折必至
847 :
792 :2005/11/22(火) 17:56:10 ID:???
Meadowは知ってるが 別に装飾された文を作るわけでもないのに なんでそんな高機能なエディタでやるの?
>>844 HTTPヘッダーのLocationで飛ばす
メモ帳でやってたらわけわからなくならないか? そこまで複雑なもんを作らないのなら別だが。デバッグとか大変だろ。
自称「俺はPC-9800時代からバリバリコード書いてた上級者PHPしかできないお前らみたいなにわか野郎とは経験が違うんだぜ」厨の予感
if($oyako == "0") と if($oyako == 0) が別の結果になるのですが、そんなもんですか? 明確な理由があるのなら知りたいのですが、仕様ですか? バージョンは4.3.10-16です。 if($oyako == "0") だと0だけtrue if($oyako == 0) だと""(つまり$oyakoは空)と0がtrueになっているようです
>>848 レスありがとうございます。
我慢の限界を迎えたので、.htaccessで弾きました。
でもせっかくなのでphpでも弾きたいと思います。
どうもでした。
856 :
852 :2005/11/22(火) 18:22:20 ID:???
>>853 さん、
>>854 さん、ありがとうございます。
== は booleanの処理をするって事でしょうか。
単純にイコールって意味だと思ってました・・。
===って常に書いたほうが確実って事かな・・
859 :
792 :2005/11/22(火) 18:40:42 ID:???
860 :
796 :2005/11/22(火) 18:52:09 ID:xK2yLcAM
>>813 レスありがとうございます。
useraddでユーザーを作成する場合はcryptする必要があるようです
(man useraddコマンドやグーグル等で見ました)
今日もう一度色々試していたところ
$pass = crypt("hogehoge",substr($user,0,2));
このような暗号化をすれば正常にアカウントを作成し、FTPでログインできるように
なりました。
861 :
852 :2005/11/22(火) 19:06:58 ID:???
>>855 いや、Locationで飛ばせってのは
PHPでチェックして、認証で×ならLoationで
403のページ(403.htmlとか)を出して、
○なら正規の動作をさせるということ。
巷のリファラチェックでエラー出す処理と似たような感じ。
で、PHPのスクリプトの最初に認証が通ってるのか、
無いのかを頭でチェックするようにしておく。
(セッションとか)
普通の静的なhtmlや画像他のファイルへのアクセスも
ブロックしたいのなら、.htaccessでやるしかないね。
>>858 この前、くだしつ と本スレの違いについて話してたんだが、
くだしつ はマニュアル読めない人用らしいよ。
自分の質問がくだらないと思える方はコチラへ
ログファイルをアクセス不可にするって無理? パーミッション 600 とかにすると PHP の方がアクセスできなくなる…。 何か別の方法は無いもんかね?
.htaccessでも置いとけば。
つ .htlog
>>863 そうだね。マニュアル読めない人にマニュアル読めと言うスレ。
869 :
nobodyさん :2005/11/23(水) 01:39:52 ID:RB2j7g2r
携帯でも見れるサイトを作ってて、 imodeでは見れるけどauやvodaではリストボックスとか登録ボタンとか 全然出てこないんですが。←まっしろ どこのサイトに行けばやり方のってるんすかね?
>>868 違うよ。マニュアルを読めない人に「マニュアルを読む」とはどういう事かを説くスレ。
>>865 そのログファイルのオーナーをPHPが動いているユーザーと同じにする。
PHPをCGIとして利用したいのですが、 require_onceで組み込むphpファイルでも #!/usr/local/bin/php と書き加えてCGI化する必要があるのでしょうか?
875 :
nobodyさん :2005/11/23(水) 18:28:06 ID:09k62UC2
ログを吐くPHPスクリプトで、下のように記述された数値 を取得して、AAAをBBBで割るにはどうすれば良いでしょか? ■err.log AAA,6554 BBB,4882 [名前,数値]→取得→AAAをBBBで割る→結果を出力(print.php)
> [名前,数値]→取得→AAAをBBBで割る→結果を出力 これを更に関数や構文単位にまで分割してください。
877 :
875 :2005/11/23(水) 18:47:41 ID:09k62UC2
>>876 (?_?)
例えを分かりやすくするために…
<?php
header("Content-type: text/plain");
system('hostname'),;
system('uptime');
?>
■■表示結果(system.php)■■
localhost,6:45PM,4, 0.38, 0.31
これを、print.phpに表示したいと思ってます。
<table>
<tr>
<th>HOST NAME</th><th>UPTIME</th>
</tr>
<tr>
<td>localhost</td>
<td>6:45PM,4, 0.38, 0.31</td>
</tr>
</table>
どうすれば出来るのでしょうか?
878 :
875 :2005/11/23(水) 18:53:21 ID:09k62UC2
やっぱり
>>877 は取り消して…
カンマ( , ) で区切ったのを表示させる方法がわかりません。
>>875 .877.878
お前はパラノイアか?
何をしたいのかがまったく判らん。
881 :
875 :2005/11/23(水) 19:18:25 ID:09k62UC2
>>874 CGIとinclude/requireの動作原理を理解すれば、どうすればいいかわかる
つか先に試せ
HTML + DB(MySQL) をUTF-8にしようと思うんだけど なんか注意することある?
>>884 寒くなってきたから風邪に気をつけろよ。
コタツで寝たりしちゃ駄目だぞ。
>>883 CGIにしなくても問題なく動いたのですが、それが
正規な方法か判断がつきませんでした。
へるぷみー
889 :
nobodyさん :2005/11/23(水) 22:54:29 ID:gHn1+fgk
base64_encodeで、BASE64形式にエンコード出来たのですが、BASE64形式以外の 形式(%82%A8%82%DC%82%A2%82%E7%83%)にエンコードするにはどうすれば良いのでしょうか?
ヒント:URLENCODE
php4 と php5どっちがはやいの?
892 :
889 :2005/11/23(水) 23:17:19 ID:gHn1+fgk
>>890 出来ました!ありがとうございます。
##検索して来た人用のためにサンプル置いときますね!
<?php
$data = urlencode("テスト");
print($data);
?>
デコードも簡単…
$data = urldecode("%83e%83X%83g");
>>893 べ つ に ・ ・ ・
このスレの方の優しさに感激
実際890はヒントではなく答えな訳で・・・ というかヒントを出せないくらい基本的な事
ログファイルの下5行だけを処理する場合に for($i = 0; $i > count($log)-5; $i++){ } じゃ何でダメとですか?
>>897 >count($log)
毎回この部分を評価しなおすから
じゃないか?試してないけど
>>897 count($log)が5以上の時はループしないから。
900 :
897 :2005/11/24(木) 02:33:42 ID:???
何か漏れのキャパを超えているようです・・・ ・゚・(´Д`)・゚・ 誰か助けてください!
for($i=count($log)ー5;$i<count($log);$i++) ではどう?
何したいのかしらんけど array_slice($log, -5)じゃいかんのか?
forの扱い方が根本的に違う
実は$logが配列でない気もしてきた・・・
ひー ((((;゚Д゚)))ガクガクブルブル
画像の縦横比を変えずにリサイズしたいのですが、 どのような方法でリサイズすれば良いでしょうか。
漏れは面倒なのでいつもGDを使ってる
漏れは面倒なのでいつもPhotoshopを使ってる
912 :
910 :2005/11/24(木) 14:03:35 ID:???
それだけの用途にPhotoshopは高い・・・(´・ω・`)ショボーン
>>909 リサイズ、リサンプルならPHPのグラフィック関数(要するにGD)とか、ImageMagick。
それらを利用したサムネール作成のライブラリを利用してもいい。
phpThumbとか。他にもいっぱいあるから探してみな
あと「縦横比を変えずに」ってのは、算数の話だから。
以前、なんか導入するの('A`)マンドクセ、って感じだったので適当に スクリプト書いてそれで済ましちゃったから、それっきりだ
>>909 1)リサイズしたい画像の種類を調べて、それに合わせた命令で画像を開く
2)画像の縦横サイズを読み込む
3)「算数」レベルの計算をする
4)新しい画像を作る(サイズは上で計算したやつ)
5)元の画像から新しい画像へ複製サイズ変換する
6)画像を書き出す
7)元の画像と作った画像のメモリを開放する
917 :
909 :2005/11/24(木) 16:16:52 ID:???
出来ました。みなさんありがとうございました。 一度作って保存して開放という流れなんですね。 このことは一生忘れません。
918 :
軟式PHP :2005/11/24(木) 16:56:58 ID:???
熱い奴だな。
>>917 はマニュアル読んだら発火するんじゃまいか
920 :
nobodyさん :2005/11/24(木) 17:53:41 ID:C4QTlVLt
mysql_escape_stringでエスケープ処理した日本語を含むデータを ブラウザに表示すると、改行とかが\nで表示されるのは当たり前なのですが、 このエスケープした文字を直すのにはどうすればいいのでしょうか? リファレンス本に日本語を含むクエリ文字列をデコードとあったのですが そのmb_parse_str()では結果が1になってしまい、 適切な文字列が表示されませんでした。
1行テキストをどこからインクルードしてもランダムで表示するスクリプトを作成してます。
■rawords.php ram.phpが読み込むファイルです
a行
b行
c行
■ran.php インクルードさせるファイルです
<?php
$quotes = file("
http://domein/in/rawords.php ");
$quote = rand(0, sizeof($quotes)-1);
echo <<<EOM
<p>$quotes[$quote]</p>
EOM;
?>
■whatever.php なんでも。
<?php include("ran.php"); ?>
インクルードパスを指定してあるのでどこからでもこれで良いのです。
こうすると
<p>b行
</p>
のように出力結果の際、改行まで変数に格納されてしまいます。
どうにかして出力結果を
<p >b行</p>
のように一行にまとめられないでしょうか。
ただし、c行(一番したのもの)を表示するときには一行にまとまっています。
どなたかお教え下さい。
922 :
921 :2005/11/24(木) 21:44:36 ID:???
なぜか a行b行c行のところが辺に改行されてしまいましたが 実際は a行 b行 c行 の3行だけが中身です
突っ込みどころ満載なのは置いておいて・・・ その出力で改行が含まれて何か不都合でもあるの?
改行消せばえぇやん('A`)
なにが問題になっているかを突き詰めていけば、 file()で読み込んだ配列の各要素のお尻に改行文字が付いてるってことだよね? で、マニュアルのfile()を読めば分かるけど、これは正しい挙動。 なので、お尻の改行文字を削除する方法を考えればよい。 で、こういう処理をする関数がちゃんとあるわけだ。
927 :
nobodyさん :2005/11/24(木) 23:37:20 ID:N1UlY50b
delete関数ってどういうときに使うの?
929 :
nobodyさん :2005/11/25(金) 00:37:49 ID:D20eJ5kK
>>929 仕事でwebアプリケーションを作っていた人間とは思えない発言だな…
とりあえず、どの言語でも基本だろうが「マニュアル嫁」
931 :
929 :2005/11/25(金) 00:54:59 ID:???
>>930 レスありがとうございます。
>仕事でwebアプリケーションを作っていた人間とは思えない発言だな…
>とりあえず、どの言語でも基本だろうが「マニュアル嫁」
ごもっともで申し訳ないです。仕事のレベル自体は高くないので。
ただ、マニュアルは参照程度に読んでいます。
作りたいものを作る事は出来そうなのですが、
拡張しやすいもの、綺麗なもの(可読性等)といったようなコツはやはり
マニュアルだけでは分からないかなと思い質問しました。
マニュアルはもっと読むべきだと思いますんで。マジメに読む事にします。どうもです。
束縛されるのに慣れちゃってそういう仕組みが無いPHPに戸惑ってるってことじゃないかな。 フレームワークスレがあるからそっちを眺めて自分に合いそうなのを探した方がよいかも知れず。
規約はありさえすれば何でもいいじゃない 適当なフレームワークに押し付けてみて ダメならその時自分で作るとか マニュアルは言語マニュアルなんで設計の話はゼロだよ
934 :
929 :2005/11/25(金) 01:14:02 ID:???
>>932 >束縛されるのに慣れちゃってそういう仕組みが無いPHPに戸惑ってるってことじゃないかな。
そういうことなのかもしれません。
束縛されているのに慣れていると感じた事はありませんでしたが
確かに、自由すぎて1段したから考えなければ行けないのに戸惑っています。
ロジックさえちゃんと分けておけば後から別の仕組みに置き換えることも
簡単かもしれませんが、結局の所みな大事な所は独学ということなんですかね?
フレームワークスレ見てみます。
ちょと調べた感じだとsmartyでいいかなという感じではありましたが。
フレームワーク選びに時間を費やすのもなんですけどね。
>>399 そうですよね。
でもフレームワークから作っていたら完成がずっと後になりそうです。
基本的に週末だけの作業ですから早くカリカリとコーディングしたいです。
設定ファイルで使うグローバル変数の 命名規則について迷っています。 候補は以下の二つなのですが、どちらがよいでしょうか? できればPHPのスタンダードな記述方法が良いです。 あと、他にも良いのがあれば教えて下さい。 1、全て大文字で文字列の区切りはアンダーバー($FOO_BAR) 2、先頭はアンダーバー始まり、全て小文字で文字列区切りはアンダーバー($_foo_bar)
$GLOBALS['フーバー'] = '設定'; echo ${'フーバー'}; これをスタンダードにしようぜ
pearは実際には$GLOBALS使ってるな。globalではグローバってない。
941 :
nobodyさん :2005/11/25(金) 04:41:43 ID:vFK4F58j
キモッ!
>>920 mysql_escape_stringってデータをMySQLに入れるときに使う関数だよ。
今はmysql_real_escape_stringが推奨。
データベースからデータを引き出したときにはアンエスケープされてるから何もする必要はないけど。
改行が\nで表示ってmysql_escape_stringとは全然関係ないんだけど勘違いしてないか。
php.ini の short_open_tag って Off が奨励されているみたいだけど、 Off の状態で <? echo "test"; ?> と書いてブラウザでソース表示すると PHPのソースが丸見えになっちゃうんだね。 今は <?php と書く癖がついているけど、昔書いたスクリプトで <? のままのがあって アレレ〜になってしまった。 設定ミスでソースが見えてしまうのは避けたいので、防ぐ方法ってないかしらん?
>>943 古いそーすの<?を<?phpに変換する
>>943 またはshort open tagをonにする
947 :
943 :2005/11/25(金) 13:50:50 ID:???
みんなありがとね。根本的な対策ってなさげかな。
<? を修正したり、short_open_tag = On にしたりというのが正しいのだろうけど、
人間はミスするものだから、ミスでソース丸見えってのはツライな。
後は、丸見えになっても困らないように URL でアクセスできるスクリプトは
require() だけにするぐらいか。。。
>>946 CGIで動かしても同じだと思うのだけど、漏れが勘違いしてる?
>>947 根本的って……。
それが、タグの書き換えであり、short_open_tags=Onなんじゃねーのか?
いったい何を期待してたんだ?
949 :
943 :2005/11/25(金) 14:04:13 ID:???
>>948 あ〜、確かに意味が変だね。
"根本的な対策" → "ミスのしにくい対策"
って直しておきます。これで満足?
950 :
909 :2005/11/25(金) 14:06:28 ID:???
I Don't know what you're expecting of me. Put under the pressure of walking in your shoes.
誤爆ごめんね・・・。
sedなりなんなりで <? →<?php に置き換えるスクリプトでもかましてからアップすれ で、その次は、作ったタグ置き換えスクリプト通すのを忘れにくくする対策を考えるのさ
言葉面はどうでもいいけど、その2つしか方法は無いよ。
actionのurlと そのinputのnameとvalue をgetで取得して getで受け取ったのを postすることってJavaScript併用しないとできないですか? ほんとくだらなくてすみません
>>955 真面目にやるなら、fsockopen()を使ってHTTPのPOSTメソッドの仕様にしたがってPOST先にデータを渡す。
キーワード [ HTTP RFC1945 RFC2616 POST fsockopen ]
pearのHTTP_Clientを使うと楽できる。
ファイルのアップロードのやりかたをおしえてください
楽するならfile_get_contentsでPOST
>>958 php ファイル アップロード
でぐぐってみなよ。
>>929 ブログツールの本も読んでるみたいだし、ならwordpressのフォルダ構造とか参考にしてみたら?
あとは、web上で公開されてるファイル数多めのphpツールをひたすらダウンロードして自分で解析しまくる。
wpはプロシージャ系だから参考にならないよ
ものすごくくだらない質問ですみません。 GETで指定されていない場合、hogehogeを変数nameにいれたいのですが、 GETを取得していない場合という分岐ができません・・・ if(!$_GET['hoge']===TRUE){ $name="hogehoge"; }else{ $name =$_REQUEST['hoge']; } どうか教えてください・・・
if (empty($_GET['hoge'])) {} とか $name = empty($_GET['hoge']) ? 'hogehoge' : $_REQUEST['hoge'];
不特定回数繰り返された文字列を特定の文字に置換したいのですが、 できますでしょうか? [ aaaaaa.... ]を[ a ]に置換する。
>>965 とりあえず解決はしたようだが、驚かないで聞いてくれ。
var_dump($_GET) してみれば分かるが、$_GETで渡ってくるデータはstring型だったんだっ!
なので存在する$_GETに対して===を使って比較する場合は、必ずstring型にある。
971 :
965 :2005/11/25(金) 19:47:29 ID:???
>>966 ありがとうございますm(_ _)mペコリ
emptyを使うことを思いつきませんでした。
>>968 ままっまじすかっ(驚愕)
お世話になります。 pg_connect()を使って、郵便番号を郵政のデータベースから入手したいのだが Fatal error: Call to undefined function:pg_connect() in /home/userdir/www/postal/hogehoge.php on line 75 で実行不可になってしまいます(なぜに Call to undefined function になってしまうのでしょうか。。。)。 どうすれば解決できるでしょうか、お教え願います。
>pg_connect()を使って、郵便番号を郵政のデータベースから入手したいのだが ホントにこんな事が出来たらワロス
ゆうびんホームページからCSV形式の郵便番号のデータを取得してテーブルにインポートする流れです。
ポスグレ用のモジュールが入ってねーから
ポスグレって呼ぶな
978 :
nobodyさん :2005/11/25(金) 20:38:01 ID:8jBg0Ry9
初歩的なことかと思いますがよろしくお願いします。 下記のようにやるとifを全く評価してくれません。 どうしてなんでしょうか・・・? どこがおかしいのか教えてください。 ・実験用ファイル <? $fp = @fopen("list.txt", "r"); while(!feof($fp)){ list($name,$address,$num) = explode("<>", fgets($fp)); if($num == "010"){ echo "あなたの番号は010です<br>"; }else{ echo "あなたは020番以降の方ですね?<br>"; } } fclose($fp); ?> ・list.txt 名前1<>住所1<>010 名前2<>住所2<>020 名前3<>住所3<>030 名前4<>住所4<>040
ポグスかよ
>>978 おかしいと思ったらならその変数をダンプしてみろよ
改行くっついてるから
981 :
973 :2005/11/25(金) 20:45:02 ID:???
PostgreSQL設定オプションの pgsql.allow_persistent "1" pgsql.max_persistent "-1" pgsql.max_links "-1" pgsql.auto_reset_persistent "0" pgsql.ignore_notice "0" pgsql.log_notice "0" をどのように設定すれば設定を有効にできるのでしょうか たびたびすみません
982 :
973 :2005/11/25(金) 20:47:56 ID:???
pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off が抜けてました。汚しすみません・・・
984 :
nobodyさん :2005/11/25(金) 20:49:38 ID:8jBg0Ry9
>>980 ありがとうございます。
解決できました!
こういう場合、最後にも「<>」を入れないといけないんですね。
勉強になりました。
985 :
973 :2005/11/25(金) 20:53:49 ID:???
>>983 回答ありがとうございます
がっついていて、ググりませんでした・・失礼しました
さくらサーバのphp.iniファイルに extension=php_pgsql.dll を追加したのですが、変更を認識してくれないのはなぜでしょうか? スレ違いですみませんが
OSって知ってる?
レン鯖でテストキター
次スレ次スレ
993 :
978 :2005/11/25(金) 21:18:51 ID:???
>>990 trimも一番最初に思いついたんですが、
もしかしてと思い最後尾に<>を入れてみたらうまくいったんで・・・w
やっぱりtrim使う事にします!
埋めるか
たまにCSVの仕様で末尾かならずカンマ、みたいなのをもらったりするがオマイさんみたいなのが作ってたんだな…
CSV吐き出す側のルーチンが単純になるってのは利点とは言わんか…
雪が降ってきましたねぇ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。