くだすれPHP(超初心者用)4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/06/13(金) 20:32:36ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0320318
2008/09/22(月) 01:10:00ID:???これ使っていけるかな・・・・・・?
0322318
2008/09/22(月) 02:51:53ID:???どうすればよいですか?
0323nobodyさん
2008/09/22(月) 03:00:08ID:???0324318
2008/09/22(月) 03:15:17ID:???<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);
$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";
if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>
ipアドレスの文字数分引っ張り出して比較することで回避できた。
0325nobodyさん
2008/09/22(月) 03:21:01ID:???0327318
2008/09/22(月) 03:27:42ID:???処理が終われば解除されるようなかんじで。
0328nobodyさん
2008/09/22(月) 03:39:53ID:???と
212.134.32.143
0330nobodyさん
2008/09/22(月) 12:43:54ID:???0331nobodyさん
2008/09/22(月) 15:10:26ID:EKIEGJ690332nobodyさん
2008/09/22(月) 15:12:32ID:???http://www.nintendo.co.jp/ds/amcj/
0333nobodyさん
2008/09/22(月) 15:19:02ID:EKIEGJ690334nobodyさん
2008/09/22(月) 16:42:16ID:???0335nobodyさん
2008/09/22(月) 16:44:51ID:???ショッピングカートの基本はセッションを上手く扱うことだと思う
具体的なカート作成のサイトはなくてもセッションに関する記事は多いから、そこから学べば良いかと
どうせ学習目的とかでしょ?
0336nobodyさん
2008/09/23(火) 01:10:46ID:KzC+qHTkありがとうございます! 助かりました!
0337nobodyさん
2008/09/23(火) 12:55:10ID:BK/ZFWc80338nobodyさん
2008/09/23(火) 12:59:43ID:???0340nobodyさん
2008/09/23(火) 13:08:38ID:???まず何が目的で特定IP以外からのアクセスを制限したいかが不透明
内容からするに何らかの処理をしている期間は別の接続者を拒否したいって意味のようだが
その処理ってのが何度もリクエストを受けて完了するもだとしたら
---
アクセスがある
↓
閲覧者IPのデータを確認する─(IP記録なし)→閲覧者IPを記録し結果表示
↓<(IP記録がある)
IP比較─(一致)→結果表示
└(不一致)→拒否
---
こんな感じでコード書けばいいだろ
記録IPをいつ削除するかは知らんけど、この処理書くどこで詰まってるの?
もし、一回のリクエストの結果表示までにすべて処理が終わってしまうようなものだったら
ファイルロックとかの方法でも調べれれ。IPを比較する意味ない
あとどうでもいいけど改行の削除は置換を使えよ
0341nobodyさん
2008/09/23(火) 13:10:56ID:???echo(">>331\n");
echo("このサイトを見れ\n");
echo("http://www.nintendo.co.jp/ds/amcj/");
?>
つまりこういうことだな
0342nobodyさん
2008/09/23(火) 14:16:43ID:???0343nobodyさん
2008/09/23(火) 14:20:41ID:???0344nobodyさん
2008/09/23(火) 18:25:40ID:???えーこと聞いた
0345nobodyさん
2008/09/23(火) 19:38:04ID:???複数のURLに対して並列に処理を行いたいんだけど
どういう風にやればいいですかね?
最悪参考になりそうなサイト教えてください。
0346nobodyさん
2008/09/23(火) 19:52:08ID:???0347nobodyさん
2008/09/23(火) 20:59:24ID:???ブロック?とはどういうことでしょうか?
並列処理に向いているfopenに代わる関数を
教えていただけるとありがたいです。
0348nobodyさん
2008/09/23(火) 21:01:16ID:???0349nobodyさん
2008/09/23(火) 21:05:07ID:???並列処理を行うにはどうすればよいでしょうか?
というかPHPでそんなことするなってことでしょうか?
0352nobodyさん
2008/09/23(火) 22:13:13ID:???とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました
0353nobodyさん
2008/09/24(水) 23:43:55ID:???$b=9;
$c=3;
「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。
0354nobodyさん
2008/09/25(木) 00:11:02ID:???変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う
例: 連想配列
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
);
0355nobodyさん
2008/09/25(木) 00:19:45ID:???0356nobodyさん
2008/09/25(木) 00:20:07ID:???0357nobodyさん
2008/09/25(木) 05:09:05ID:???連想配列の場合、
$var = array(
'a' => 1,
'b' => 9,
'c' => 3,
'd' => 9,
);
この場合、どうなるんだろ?
0358nobodyさん
2008/09/25(木) 05:29:20ID:???$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);
0360nobodyさん
2008/09/25(木) 06:21:43ID:???0361テスト
2008/09/25(木) 23:34:41ID:???0362あ
2008/09/25(木) 23:39:24ID:???てすと
0363nobodyさん
2008/09/27(土) 20:36:51ID:Zle5Z5JOPHPのマニュアルを見てもさっぱりです
どなたかreturn文が詳しく書いてあるサイト知っていたら教えてください
0364nobodyさん
2008/09/27(土) 20:53:26ID:???returnについてなんてマニュアル以上のことが書いてあるサイトはないと思うぞ
何が分からなくて、何が知りたいんだ?言ってくれれば答えるが
0365nobodyさん
2008/09/27(土) 21:09:22ID:???0366nobodyさん
2008/09/27(土) 21:15:49ID:???0367nobodyさん
2008/09/27(土) 21:18:59ID:???0368nobodyさん
2008/09/27(土) 21:20:42ID:???0369nobodyさん
2008/09/27(土) 21:27:34ID:???0370nobodyさん
2008/09/27(土) 21:31:06ID:???0371nobodyさん
2008/09/28(日) 21:34:07ID:+UcDtbz0Not Found
The requested URL /phpinfo.php was not found on this server.
Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80
と出てしまいます。どなたか教えていただけませんか?
0372nobodyさん
2008/09/28(日) 21:37:11ID:???0374nobodyさん
2008/09/29(月) 20:16:12ID:???なにをDLしたらいいのかさっぱりぜよ・・・。
0375nobodyさん
2008/09/29(月) 20:39:55ID:???0376nobodyさん
2008/09/29(月) 22:54:33ID:ex4B3ZuI画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。
0377nobodyさん
2008/09/29(月) 23:01:53ID:???0381nobodyさん
2008/10/01(水) 05:38:30ID:ggjV1Mvyttp://www.php-labo.net/tutorial/class/pear.html
でgetMessage()が定義されてないのにエラー表示のときに表示するとありますが
どうしてなのでしょうか?
よろしくお願いします
0382nobodyさん
2008/10/01(水) 06:04:37ID:???してるから
0383nobodyさん
2008/10/01(水) 09:00:47ID:12eBxrbJこの辺のことだと思うのですが、質問させてください。
$a == $bのところで、日本語の文字を使うには、
$a == "日本語"のようにすると思うんですけど、
これは、「日本語」に等しいということですよね。
たとえば「日本」を含む文字列の条件を指定したいとき、
どうしたらいいでしょうか?
条件の分岐で、「日本語」も「日本人」も「日本古来」もその他も
一括して指定したい、という感じなのですが。よろしくお願いします。
的をはずしていたらごめんなさい。
0384nobodyさん
2008/10/01(水) 09:22:18ID:???0385nobodyさん
2008/10/01(水) 10:43:40ID:???もうひとつ合わせて質問なのですが、
完全に一致するものを、$a == "アメリカ"として
部分的に一致するのを、mb_ereg_match("[日本]",$a)として、
それぞれ処理をしようとしています。
else ifでつなげたほうがいいのですか?
別のifとして分けたほうがいいですか?
それとも、どっちでもいいですか?
0386nobodyさん
2008/10/01(水) 11:56:07ID:???分けるかどうかはやりたいことによって違うからなんともいえないけど、
今回の場合は分けなくていいでしょ。
分けちゃうと一回アメリカと完全一致したものをもう一回日本が含まれてるか
判定することになるから余計な処理になる。
0387nobodyさん
2008/10/01(水) 12:12:38ID:???では、どんどんつなげていくことにしますね。
よく判る説明で、助かりました。ありがとうございます!
0388nobodyさん
2008/10/01(水) 12:54:11ID:???注意
ヒント
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
http://jp.php.net/manual/ja/function.preg-match.php
0389nobodyさん
2008/10/01(水) 13:20:15ID:???$aに入る文字列は数十文字くらいの短いもので、それを見ています。
早さはそんなに変わらないと思うので、このままで大丈夫ですよね?
0390nobodyさん
2008/10/01(水) 22:32:30ID:HCEY5R1b基礎からのPHPorやさしいPHPを買おうか迷ってるのですが、
基礎からのPHPはアプリが動作しないと聞きました。
自分は、アプリの有無よりも文法やクラス(?)、データベースの基礎を学びたい
と思っているのですが、そのような場合はアプリの動作は気にしなくてもよいでしょうか?
その他の面(参考書としての面)では良いと聞くので。
書籍スレでの質問はナンセンスだと感じたのでこちらでさせて頂きました。
ご教授願います。
0391nobodyさん
2008/10/01(水) 22:49:30ID:???0392nobodyさん
2008/10/01(水) 22:56:32ID:???0393nobodyさん
2008/10/01(水) 23:58:01ID:???もしくは実践マスターか。
基礎からのPHPorやさしいPHPは意味がないと思います。
特に基礎からのPHPはアプリが動作しませんでした。
びっくりです。
これは捨てました。
アプリを改造していくといろいろスキルがあがってくるので、
ただ本見てもおもしろくないと思いますし。
アプリが動くやつがいいと思います。
では
0394nobodyさん
2008/10/02(木) 10:20:57ID:Qa3+G5H3<?php include('ini.php'); ?>
この、ini.phpを、別のサーバにおいて呼び出したいのですが、
<?php include('http://別のサーバ/ディレクトリ名/ini.php'); ?>
みたいにやっても、うまくいきません。
どこでつまづいていて、どうすればいいのか、教えてください。
0395nobodyさん
2008/10/02(木) 10:40:39ID:???基礎的な理解からつまづいてる
http://...をinclude = webサーバ経由でinclude
= ini.phpの「実行結果」をinclude
ini.phpの「内容」をincludeしたいなら、ftp経由にするとか、
ini.phpをincludeしたい内容の文字列を返すものにするとか。
0396nobodyさん
2008/10/02(木) 10:59:48ID:Qa3+G5H30397nobodyさん
2008/10/02(木) 18:21:25ID:???によって全く違う。
こういうのが「うまくいかない」しか書かない心理って何なの?
0398nobodyさん
2008/10/02(木) 18:25:19ID:???0399nobodyさん
2008/10/02(木) 20:57:18ID:JC9hPbTsありがとうございます。オライリーですか、参考にしてみます。
にしても、やさしいPHPのレビューってないですね。
あと基礎PHPとかはもう古いのかな‥
0400nobodyさん
2008/10/02(木) 21:31:32ID:PvYZxYkHmona.php
<?php
$a = 1;
include("giko.php");
include("fusa.php");
?>
giko.php
<?php
$b = 2+$a;
?>
ってあったときに$aがincludeされたファイル内でも利用だというのはわかったのですが
giko.phpの$bはmona.phpやfusa.phpで見れるのでしょうか?
ユーザー定義の関数の予定はないです。
0401nobodyさん
2008/10/02(木) 21:41:47ID:???0402nobodyさん
2008/10/02(木) 21:55:19ID:PvYZxYkHスコープの方を必死に検索かけてました
includeの方で調べればよかったんですね
ありがとうございます
0403nobodyさん
2008/10/06(月) 07:28:33ID:eMKnyKHTインストールの仕方が分かりません
ttp://www.php.net/manual/ja/install.phpには拡張モジュールしかないので
よく分かりませんでした
ttp://pear.php.net/manual/ja/installation.getting.php
に書いてあるように コマンドプロンプトを使えばいいのですが
コマンドプロンプトの使い方が分からないので
使い方を教えてください よろしくお願いします
0404nobodyさん
2008/10/06(月) 07:48:42ID:???> go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。
0405403
2008/10/06(月) 07:56:08ID:eMKnyKHT多分その上の行らへんでつまずいていると思います
>PHP をダウンロードしインストールが完了したら、
>バッチファイルを実行します。 というのはダブルクリックだけでいいんでしょうか?
するとコマンドプロンプトが出てくるだけですが
>インストールしたフォルダへのパスを
>PATH 環境変数に追加します。 手動で追加する
> (スタート > コントロールパネル > システム > 環境変数)
>以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。
pealパッケージとは PHPをインストールした時点で使用できるわけではないと思うので
多分ここでつまずいてます
よろしくおねがいします
0406nobodyさん
2008/10/06(月) 08:05:35ID:???go-pearの方保存して実行すればおk
0407403
2008/10/06(月) 08:13:05ID:eMKnyKHT確認させてください
go-pear.phpというファイルを作ってそこに
http://pear.php.net/go-pearのソースをコピペ
そのあと保存先はC:\phpで
コマンドプロンプトで php go-pear.php
を実行するんですよね?
実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』
と表示されます
C:\PHP\PHP-pear.phpを実行しても
エディタが起動するだけでした
よろしくお願いします
0408nobodyさん
2008/10/06(月) 08:15:52ID:???0409nobodyさん
2008/10/06(月) 08:19:25ID:???C:\Documents and Settings\username>
で実行してるので php.exe が見つからないとかそういうオチなのかな。
0410403
2008/10/06(月) 08:38:03ID:eMKnyKHTその通りです。。。
もう少しコマンドプロンプトの使い方勉強してきます
今から学校なので ありがとうございました
0411nobodyさん
2008/10/07(火) 10:08:44ID:rx4j8OHYどっちもインスコ、php.iniを書き換えるがうまくいかない。
下のように、extensionだと、phpinfo()にxDebugの項目が現れるけど、
extension=php_xdebug-2.0.3-5.2.5.dll
下のようにzend_extension_tsの指定ではうまくいかない。
[xdebug]
zend_extension_ts = c:\php\ext\php_xdebug-2.0.3-5.2.5.dll
DebugBuildはnoで、ThreadSaftyはenabledだから、後者の書き方の筈なのだが。
で、まぁ前者で行くとして、問題は、[xdebug]の中に書いた設定が全然反映されない...orz
xdebug.remote_enable=true
とかやっても、phpinfo()で見ると、offになってる。
他の設定も同じ。
なので、eclipseでブレークポイントで止まってくれない...orz
誰かお助けを〜
0412nobodyさん
2008/10/07(火) 12:08:43ID:???0413nobodyさん
2008/10/07(火) 12:35:01ID:rx4j8OHYどうもありがとうございます〜。
0414nobodyさん
2008/10/07(火) 13:15:45ID:2lCZsXeTURIにコントローラやアクションを含めるような設計ってできるんでしょうか。
PHPのインスコ状況によるのかもしれませんが、どうも情報見つかりません。
0415nobodyさん
2008/10/07(火) 13:23:31ID:???コントローラーで$this->set('test', 10);と書くと
exception 'Zend_Controller_Action_Exception' with message 'Method "set" does not exist and was not trapped in __call()' 〜
とエラーがでてしまいます。
setを使うのに宣言か何かが必要かと思い、調べたのですが何処を見てもsetを使えばできるとしか書いていません。
コントローラーで$test;や$test=3;はエラーが出なく、エラー文を見てもsetに原因がある気がするのですが、何が原因なのでしょうか?
0416nobodyさん
2008/10/07(火) 13:41:47ID:???フレームワークのこと知らないので適当だけど、
メッセージを見るとsetが未定義で、call(多分ビルトインの)で
トラップ(多分、未定義のメソッドが呼ばれたときに適当なメソッドを割り当てる)もできないと言ってる。
多分$thisはControllerクラスのことだと思うので(多分ばっかですんまそ)
要するにControllerクラスにsetが定義されてないんじゃないかと思います。
クラス定義やメソッド一覧するメソッドがあると思うので、確認してみては?
ちなみに今気づいたんですが、フレームワークを使ってると>>414の質問の答えはYesでしょうか?
0417nobodyさん
2008/10/07(火) 14:12:15ID:???「?name=value」が嫌ならmod_rewrite(Apache)で出来る
>>415
コントローラにsetがないってことじゃないか?
$thisじゃなくてビューのオブジェクトのsetを呼べばいいような気がする
ZendFWは使ったことないが、普通はそうだと思うぞ
0419415
2008/10/07(火) 14:44:42ID:???ご指摘どおり、thisはコントローラーでsetがありませんでしたので、
中身のないsetを作ってみたところエラーは出なくなりましたが、変数の受け渡しはうまくいきませんでした(空なので当たり前ですね)
これでエラーそのもの原因は分かったので次は変数が受け渡せるように頑張ります。
>>417
確かにコントローラーに無いのでthisだと自分で処理を書くか、何処かからコピーしてこないといけないようです。
何処かからコピーしてくるんならそれを使えよって話なので、まずビューからそれらしいのがないか探して見ます。
>>418
キャメルケースが何なのか分からないのでぐぐってみましたが、命名規則(camelCaps?)の事でしょうか。
とりあえず命名規則はチェックしましたが大丈夫でした。
■ このスレッドは過去ログ倉庫に格納されています