【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2009/09/10(木) 22:52:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
姉妹スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
0910nobodyさん
2009/11/16(月) 12:41:25ID:???構文チェックはphp -lでできる。
あとはerror_log等を見る。
デバッグという事なら、PDTなどのIDEを使い、ZendDebugger/xdebugなどで
リモートデバッグが行える。
0911nobodyさん
2009/11/16(月) 13:18:43ID:???0912nobodyさん
2009/11/16(月) 13:25:41ID:???すみません、php -l って、マイナスと小文字のエルですか?
どのように使うのでしょうか?
ググってみたのですが、また、マニュアルで検索してみたのですが、出てきませんでした
0913nobodyさん
2009/11/16(月) 13:31:41ID:???http://www.php.net/manual/ja/features.commandline.php
0914nobodyさん
2009/11/16(月) 13:34:58ID:???http://www.google.co.jp/search?q=%22php+-l%22
0915nobodyさん
2009/11/16(月) 14:13:08ID:???ありがとうございます
>>914
ダブルクォーテーションを使って検索するのですね・・・
知りませんでした
そのまま検索したら、PHP自体のことしか出てこなくて・・・
ありがとうございます
0916nobodyさん
2009/11/16(月) 16:16:17ID:???これだけでいいなら誰も被害に遭わないとですよね
0917916
2009/11/16(月) 16:16:48ID:???0918nobodyさん
2009/11/16(月) 17:23:01ID:???レコード数の少ないテーブルからSELECTで抽出するようなときも
プリペアドステートメントとかで対策する必要があるの?
危険なのは
UPDATE、INSERT、REPLACEとかでデータベースを書き換えるときや
認証でパスワードを扱うときぐらいかなって思ったんだけど。
0919nobodyさん
2009/11/16(月) 17:28:29ID:???0920nobodyさん
2009/11/16(月) 17:32:13ID:???「select * from hoge ; delete 〜」のようにセミコロンで区切られて
複数クエリ実行されたらどうするの?
0922nobodyさん
2009/11/16(月) 17:44:09ID:???例えが悪かったな、すまん。
wikiのSQLインジェクションに書いてある例を使わせて貰うと
SELECT * FROM users WHERE name = '(入力値)';
というSQLがあったときに、入力値に "' OR 't' = 't" と入れると
SELECT * FROM users WHERE name = '' OR 't' = 't';
↑
こうなるとある。この場合は全件選択されるだけだが
ここで入力値を "' OR 't' = 't' ; delete from TABLE名; --"
とすると、delete文が実行されてしまう。
0923nobodyさん
2009/11/16(月) 17:50:37ID:???PHP、PEAR、Smartyと学習してきましたが、フレームワークだけは何をやればいいのか分からなくて・・・
そもそも、どういうところで使用するのですか?
0924nobodyさん
2009/11/16(月) 18:41:46ID:???0925918
2009/11/16(月) 20:49:30ID:???つまり、SQL文にユーザの入力値が含まれてるような場合が危険ってことだよね?
入力値より前の部分がどんなSQL文になってるか、ユーザに知られちゃうことってあるの?
それとも当てずっぽうで攻撃する人がいるってこと?
0926nobodyさん
2009/11/16(月) 20:51:21ID:???0927nobodyさん
2009/11/16(月) 20:53:58ID:???それっぽいのをブルートフォースであたれば寝て起きたらいくつかわかってるかもしれんな
SQL文の命令自体はもうきまってるわけだし。
0928nobodyさん
2009/11/16(月) 21:12:08ID:???PDOでプレースホルダを使ってるけど、
$q = $db->prepare("SELECT * FROM users WHERE name=:username);
$q->bindparam(":username", $_POST['username']);
$q->execute();
こんなんじゃダメ??
$q->bindparam(":username", mysql_real_escape_string($_POST['username']));
のようにエスケープ関数を使わなきゃダメなのかな?
0929nobodyさん
2009/11/16(月) 21:23:30ID:???0931nobodyさん
2009/11/16(月) 21:40:14ID:???0935nobodyさん
2009/11/16(月) 23:04:29ID:???"。" ごとに配列に入れたいのですがうまくいきません。
"、" で試したらうまくいったのですが、どうしてでしょうか。
$tags = get_meta_tags('http://sample.com');
$des = $tags['description'];
$arry = explode('。', $des);
0936nobodyさん
2009/11/17(火) 00:03:52ID:???0937nobodyさん
2009/11/17(火) 11:04:57ID:???クラスは何年も前にC++でちょっと使った経験しかないので
扱い方が正しいのか不安です。
$p = new pager(引数いろいろ);
echo $p->linkhtml(),
こうすると他ページへのリンクが出て、そのリンクをクリックすると
「?page=10」のようなクエリ文字付きで同じスクリプトに飛びます。
そうすると、リンクをクリックする度に $p = new pager(...); で何度も
インスタンス化が繰り返されることになりますが、問題ないでしょうか?
また、C++ではオブジェクトが不要になったら自分で破棄していた
記憶がありますが、PHPではガベージコレクターが自動的に
破棄してくれるのでしょうか。
0940935
2009/11/17(火) 11:55:07ID:???テキストエディタでphpのソースファイルを開いてみたら、
エンコードがなんとかかんとかって言われて
なぜか、"。"の部分が "B" になってました。
"B" を "。" に直したら解決しました。
0942nobodyさん
2009/11/17(火) 12:20:57ID:???やっぱりそうなんですか。
リンクを押して飛ぶときにスクリプトが終了してオブジェクトが破棄されて
リンク先で新たにオブジェクトが作成される
と考えれば、問題ないんでしょうか‥。
0943nobodyさん
2009/11/17(火) 12:28:07ID:???0944nobodyさん
2009/11/17(火) 12:34:06ID:???0945nobodyさん
2009/11/17(火) 12:40:58ID:???ありがとうございます。
安心しました。
>>944
クライアント−サーバ間でやり取りが終わった時ですかね。
失礼しました。
0946nobodyさん
2009/11/17(火) 20:55:41ID:???本屋でざっと読んだくらいでは理解が出来ませんでした
0947nobodyさん
2009/11/17(火) 20:57:05ID:???bake=cakePHP初心者=cakePHPを覚える者=cakePHPも使えないバカ
0948nobodyさん
2009/11/17(火) 21:42:08ID:???0949nobodyさん
2009/11/17(火) 21:49:08ID:???bakeをcakeにするんだろ
他の人が(スクリプトが勝手に)土台を作ってくれると思えばよい
あとは生クリーム塗ってデコレーションは自分でしてねと
0950nobodyさん
2009/11/17(火) 21:55:50ID:???どういうものかもわかってないんだけど。
いまテキストエディタでベタ打ちしてるんだけど、cakephpだと何か楽になるの?
今までに作ったwebアプリをcakephpに対応させる(?)ことは可能なのかな。
0951nobodyさん
2009/11/17(火) 21:56:34ID:???0952nobodyさん
2009/11/17(火) 22:08:27ID:???> フレームワークは一言で表すと、「アプリケーションの土台」と言えます。データベースへの接続、
> 認証機構の実装、データの登録・編集・削除ページの作成など、どんなWebアプリケーションにも
> 必須の機能があります。これらの開発を毎回1から行うことは非常に効率が悪いことです。
> フレームワークはこれらの機能を一つにまとめ、その組み合わせ方も提供します。言わば、コードの
> 規格書とも言えるでしょう。
ttp://www.phppro.jp/article/framework/framework.php
DBへの接続や認証の実装よりも、「コードの規格書」を新たに覚えるほうが面倒なんだけどなぁ。
個人で自分用のものを開発してるだけだったらフレームワークとか使わなくてもいいかな。
0953nobodyさん
2009/11/17(火) 22:15:59ID:???0954nobodyさん
2009/11/17(火) 22:24:03ID:???たぶん近いうちに本を読んでみる。
0956nobodyさん
2009/11/17(火) 23:57:53ID:???0957nobodyさん
2009/11/18(水) 00:43:46ID:???俺はExampleがほしいんだよ
0958nobodyさん
2009/11/18(水) 00:44:25ID:???$url=$_GET['url'];
$tug = "<img src=\"".$url."\" width=\"300\" height=\"300\">";
$tug_array=array();
array_unshift($tug_array,$tug);
どこが悪いんですかね?それともarray_unshift($tug_array,$tug);なんて不可なんでしょうか?
0959nobodyさん
2009/11/18(水) 00:56:01ID:???どこも悪くないよ
そのあとにvar_dump($tug_array);って書いてみるといいよ
あと、特に意図がないならarray_unshiftなんて使わなくても配列の追加は
$tug_array[] = $tug;
とか
$tug_array[] = "<img src=\"".$url."\" width=\"300\" height=\"300\">";
なんかでできるよ
0960nobodyさん
2009/11/18(水) 01:02:21ID:???0962nobodyさん
2009/11/18(水) 02:38:42ID:???0964nobodyさん
2009/11/18(水) 13:13:19ID:???借りてたサーバーが閉鎖するから他のサーバーに移転作業中で
設置して何回かのエラーの後、前の通り動かすことはできたんだけど
PHPから生成されるファイルの所有者が「www」になって
インターネット上から直接ファイルにアクセスすると丸見えなんだけど、これをどうにか自分の権限にすることできない?
前のサーバーではどこ変更することなく自分のIDになってた。
変える部分はここら辺かなとはおもう
/*-- メインファイル作成 --*/
function make_file1($line, $num) {
$file = LOGDIR . $num . ".dat";
$fp = fopen($file, "w");
set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $line);
fclose($fp);
chmod($file, 0666);
}
0965nobodyさん
2009/11/18(水) 13:14:30ID:???同時に生成されるこっちのファイルはちゃんと自分のIDになってる
/*-- カウントファイル作成 --*/
function make_file2($num) {
$file = LOGDIR . $num . "c.dat";
$line = "0<><>";
$fp = fopen($file, "w");
set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $line);
fclose($fp);
# chmod($file, 0666);
}
PHPはレッツPHPのI-BOARDの改造版つかってます。
よろしくおねがいします。
0966nobodyさん
2009/11/18(水) 13:40:45ID:???0967nobodyさん
2009/11/18(水) 14:59:10ID:???$line = "0<><>";
カウントファイルのchmodはエラーが出たので自分でコメントアウトした
0968nobodyさん
2009/11/18(水) 15:02:00ID:???0969nobodyさん
2009/11/18(水) 16:29:27ID:???0970nobodyさん
2009/11/19(木) 14:45:12ID:q1nxRQc4$hoge と $hoge1 に 4989 という数値を入れたい時に
$hoge = "4989";
$hoge1 = "4989";
としないといけないのですが複数を一気に入れることが出来れば教えてください。
0974nobodyさん
2009/11/19(木) 15:13:07ID:???0975nobodyさん
2009/11/19(木) 15:32:31ID:???0976nobodyさん
2009/11/19(木) 15:32:39ID:???あと、↓でも解説されてる。
http://php.net/manual/ja/language.expressions.php
>'$b = ($a = 5)' のように書くことは、 '$a = 5; $b = 5;' と書くのと 同様なのです。(セミコロンは、文の終わりを示します。)
>代入は、右から左へ実行されるため、'$b = $a = 5' と書くことも 可能です。
0978nobodyさん
2009/11/19(木) 16:24:29ID:nc7ESJS70979nobodyさん
2009/11/19(木) 16:59:07ID:???0980nobodyさん
2009/11/19(木) 17:07:26ID:???0982nobodyさん
2009/11/19(木) 18:44:46ID:???0984nobodyさん
2009/11/20(金) 10:45:33ID:???で実行すると権限がないと怒られます。
sudoで権限の設定はしたのでsudoでやれば出来ると思いますが、
これをsudoでする場合はどう記述すればいいのでしょうか?
0985nobodyさん
2009/11/20(金) 11:10:47ID:???0986nobodyさん
2009/11/20(金) 11:14:04ID:???0987984
2009/11/20(金) 11:47:31ID:???php分離してsudoからphp別ファイルで叩いて回避した
syslogも考えて見ます。
ありがとうございます。
0988nobodyさん
2009/11/20(金) 11:59:12ID:???0989nobodyさん
2009/11/20(金) 12:13:31ID:???【PHP】ID出さんでも質問OKなスレ【初心者可】3
ID出さなくても質問OKなスレです
初心者もいるので、そういう方には親切に答えてあげましょう
荒らしやあまりにも言葉使いの悪い人間は無視の方向で
PHP以外にもPEAR等のライブラリ、Smarty等のテンプレート、フレームワーク、PHPがらみのSQL等も可としますが、出来るだけ専門のスレで質問された方がいいと思います
また、出来るだけOS、PHPやApache等のバージョンも書いた方がいいと思います
◆前スレ
【PHP】ID出さんでも質問OKなスレ【初心者歓迎】2
http://pc11.2ch.net/test/read.cgi/php/1252590753/
その他、諸情報は >>2-10 辺りにて
0990nobodyさん
2009/11/20(金) 13:02:55ID:???0991nobodyさん
2009/11/20(金) 13:38:00ID:???0992nobodyさん
2009/11/20(金) 13:39:37ID:???0993nobodyさん
2009/11/20(金) 13:42:16ID:???どっちも見ていてちょっと気質が違うから
0994nobodyさん
2009/11/20(金) 13:43:20ID:???0998nobodyさん
2009/11/20(金) 14:07:08ID:???0999nobodyさん
2009/11/20(金) 14:08:24ID:???1000nobodyさん
2009/11/20(金) 14:15:38ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。