【PHP】初心者コーナー 3 Released【スローモード】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/11 06:24ID:???ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
http://pc2.2ch.net/test/read.cgi/php/1031736248/l50
でもな、ここで書きたかったらここで書き。 あとは関連な、>>2
0250221
03/06/28 16:28ID:???いやー>>220が頓珍漢な事を言ってるから
こちらも頓珍漢な答えで茶化したわけだが
何故無理してまでヒアドキュメント使おうとするのかわからん
まぁたしかにタチ悪かったねスマン
0252246
03/06/28 17:47ID:???>>250と結びつける意味がワカラン
ますますくだらねー
ただでさえジメジメしてうっとおしい時期なんだからさ
そういうジメジメしたカキコはやめようや
>>249
定数とかは分かりやすい場所に書いたほうが良いよ
ファイルの前の方とか、定数だけ書いたファイルをインクルードするとか
散在してると後で見つけにくくなるから
後、繰り返しになるけど、コードの落とし穴とかは(テスト環境で)実体験しといた方が楽だよ
ちょっとした疑問程度なら自ら動かしてみてくらはい
見聞きしただけでバグ無しコード書けるくらいに頭の回転がはやい人なら別だろうけど
0254nobodyさん
03/06/29 01:35ID:???列挙型とか。
0255nobodyさん
03/06/29 14:32ID:rZczdmH2フォームから入力したテキストに[\](バックスラッシュ)が
入ってしまうんです.
調べて[magic_quotes_gpc]の値を[ini_set]でOFFにすればいいと
いうのがわかったのですがこれでも回避されませんでした.
しかたなしに[stripslashes]で回避しているのですが
もっと根本的に直せないでしょうか?
ちなみに[magic_quotes_runtime][magic_quotes_sybase]の
値も全てOFFです.
0257255
03/06/29 15:52ID:rZczdmH2ini_set('mbstring.http_output', "EUC-JP");
を実行して[EUC-JP]に変換しています.
この辺が怪しいですか?
0260255
03/06/29 17:21ID:rZczdmH2[stripslashes]で回避はできますができれば根本から
直したいです.
0261nobodyさん
03/06/29 17:49ID:???ini_setでmagic_quote_gpcは設定できないように書いてあるようにみえる。
0262nobodyさん
03/06/29 20:30ID:???合ってるよ(一応PHP4.3.2のソースでも確認)
http://jp.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
で、PHP_INI_PERDIRとPHP_INI_SYSTEMなので
http://jp.php.net/manual/ja/function.ini-set.php
の説明どおり、スクリプトの中のini_set()では変更できない。
0263nobodyさん
03/06/29 22:53ID:???261あってるね。
0264255
03/06/30 00:28ID:8Khs5mrJ書き忘れてましたがPHP4.1.2です.
再起動しないとだめなんですね…
でも
ini_set('magic_quotes_gpc', 0);
phpinfo();
をやるとちぇんとLocal ValueではOFFに
なってるんですがこれはあくまで設定値ということなんですね…
ありがとうございました.
0265255
03/06/30 00:32ID:8Khs5mrJレンタルサーバの場合などみなさん
どうしているんでしょうか?
いちいち[stripslashes]の処理をさせてるんでしょうか?
0266nobodyさん
03/06/30 00:48ID:???俺はこんな感じのことをしてます。
---------
if (get_magic_quotes_gpc() == 1) {
switch ($_SERVER["REQUEST_METHOD"]) {
case "POST":
while (list($key, $val) = each($_POST)) {
if (! is_array($val)) {
$_POST[$key] = stripslashes($val);
}
}
break;
case "GET":
while (list($key, $val) = each($_GET)) {
if (! is_array($val)) {
$_GET[$key] = stripslashes($val);
}
}
break;
}
}
0267nobodyさん
03/06/30 01:50ID:???$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
これ最強。
0268nobodyさん
03/06/30 01:56ID:???$_GET = array_map('r_stripslashes', $_GET);
function r_stripslashes($value) {
if (is_string($value)) {
$value = stripslashes($value);
} elseif (is_array($value)) {
$value = array_map('r_stripslashes', $value);
}
return $value;
}
0269266
03/06/30 02:48ID:???0270nobodyさん
03/06/30 04:09ID:8KMUcild0271あぼーん
NGNG0273nobodyさん
03/06/30 05:11ID:OSudLwdSアカウント名に、半角英数小文字のみ
abcdefghijklmnopqrstuvwxyz0123456789_-
だけにしたいのです。
フォームから上記以外の文字を入力された場合、
駄目!って言いたいんだけど、
正規表現は難しそうなので、
if ( mb_convert_kana($account,"akh") != $account ) { echo "駄目!!"; }
で行こうと思ったんだけど、
全角の漢字とか、スペースを入力されてしまいそう・・・
記号もたくさん入力されそう・・・
なんかいい方法ありますか?
0274nobodyさん
03/06/30 06:52ID:???ちょっと分からなくても正規表現やっておくといいと思うよ。
$a がフォームから受け取った文字
ereg("^[a-z0-9_-]+$", $a)
これで期待通りの結果が得られると思うけど、意味は自分で調べるとよろし。
それよりお前ら、PHP5.0.0 Beta1なんてのが表舞台に出てきましたよ。
0275nobodyさん
03/06/30 10:12ID:aQ17FmN/EUCで書かれたファイルで作成するので
$line = mb_convert_encoding($line,"ISO-2022-JP","EUC-JP");
$subject = mb_convert_encoding($subject,"ISO-2022-JP","EUC-JP");
mail($mail,$subject,$line,"From: [email protected]\r\nReply-To: [email protected]");
としています。
送られてきたメールを見るとタイトルは文字化けしているのですが、
メッセージの方は問題無く表示されています。
なにが問題なのでしょう。
0276255
03/06/30 10:31ID:JZyVHkmBありがとうございます!
m(_ _)m
べんきょうになりますな.
0278275
03/06/30 11:00ID:???mail()の個所をmb_send_mail()と変更しただけで、
mb_send_mail()を使用しましたが、
届いたメールは件名はあるがメッセージ自体が無い状態で届いてしまいました。
これもまたなぜなんでしょう。
0280275
03/06/30 11:35ID:???操作自体も同じですし。
0282nobodyさん
03/06/30 12:26ID:???$subject = mb_convert_encoding($subject,"SJIS","EUC");
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
してから、mail関数で送信してみ
0284nobodyさん
03/06/30 16:01ID:???fileで読み込むと全行読み込むから効率が悪いと思うのです。
0285あぼーん
NGNG0286nobodyさん
03/06/30 17:43ID:???0288あぼーん
NGNG0289nobodyさん
03/06/30 22:15ID:???0290nobodyさん
03/07/01 11:51ID:???0292nobodyさん
03/07/01 21:20ID:???Shift-JISのファイルをEUCに変換できますか?
↓みたいなやつ作ったんですけど、データファイルがShift-JISだったんで読み込めない(汗
<?php
$data = file ("$file");
print $data;
?>
0293nobodyさん
03/07/01 22:15ID:???mb_convert_encoding(文字列,出力文字コード,入力文字コード)
で文字列ごとに変換しないとだめなのかも
PHPはじめて10日くらいなので詳しくは知りませんが
0295nobodyさん
03/07/01 22:26ID:???"送信"を押しても何も表示されません。
どこが悪いのか・・・
<FORM action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="POST">
なまえ:<INPUT type="text" name="yourname"><br>
<input type="submit" name="SUBMIT" value="送信"> <input type="reset" name="reset" value="リセット">
</FORM>
<?php
if ($SUBMIT != "" ) {
echo ($yourname);
}
?>
0297295
03/07/01 22:52ID:???ありがとうございます
>>295はPHP入門という本を参考にしてます
一番やさしそうだったんで買ったんですけど、たしかに内容古いかも
$_REQUESTを使うのかな?
もうちょっと試してみます
0299nobodyさん
03/07/01 23:26ID:???0301295
03/07/02 00:07ID:???echo ($_REQUEST["yourname"]);
}
でようやく出来ました
ありがとうございましたー
0303nobodyさん
03/07/02 01:52ID:???まちがっちゃーいないんだけど
$_REQUESTはGETとPOST、COOKIE、FILESを区別しないから
セキュリティーホールになりやすい。
つーかなんで>>299の優しさをふいにするかなあ。
$_POST['SUBMIT'],$_POST['yourname']にしる!
0306あぼーん
NGNG0307nobodyさん
03/07/02 07:06ID:???ごめんごめん。でも...それ...古いし。
4.1以降でも非推奨だしPHP5では使えんでしょ?(憶測
スルーしたのは素直に悪かったと思ふ。
0308nobodyさん
03/07/02 08:22ID:???PHP5では使えなくなるのか・・・
0309nobodyさん
03/07/02 15:03ID:iDV7N0wg0310309
03/07/02 15:14ID:???0311あぼーん
NGNG0312nobodyさん
03/07/02 15:39ID:???0313K
03/07/02 15:55ID:+4nJpvGg0314あぼーん
NGNG0315あぼーん
NGNG0316nobodyさん
03/07/02 20:54ID:???0317301
03/07/02 21:24ID:???あわわ・・・
ttp://search.net-newbie.com/php/language.variables.predefined.html
↑にもユーザ入力機構によりスクリプトに入力される全ての変数で、 このため、信頼することができません
ってありました。
以後、気をつけます。
0318404.HDML ◆StMXML.EXE
03/07/03 03:55ID:???if(ereg(一致条件,評価する変数,$hoge)){ # 眠いので勘弁して
die(count($hoge));
}
一致条件にマッチした箇所が配列として$hogeに入るので、
後は$hogeをcount()関数で数える、という事を思いついた。。
0320nobodyさん
03/07/04 00:29ID:WD3uwLUpPHPから、linuxの認証を使い回すことは可能でしょうか?
また、その際、パスワードの変更なども可能でしょうか?
0322nobodyさん
03/07/04 09:14ID:DNjraE66リサイズは出来たんですけど、減色の方法がわかりません・・。
0323nobodyさん
03/07/04 14:36ID:???$headers=getallheaders();
$ua = $headers['User-Agent'];
としています。
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"が欲しいのですが
"Mozilla/4.0"
までしかデータベースに入りません。どうすれば良いのでしょうか。
ローカルで試しています。PHP 4.3.2 Apache/1.3.24
ご教授願います。
0324nobodyさん
03/07/04 16:03ID:ykyCw+ELPHPからFlashに送るためには
どういう風にスクリプトを書けばいいんでしょう?
Flash側はsendAndLoadなどで送られてきた
データを受け取ることはわかっているのですが
PHPからどう出力すれぱいいのかわかりません。
(例えばecho ($hoge)などで出力するわけじゃないですよね…)
あともうひとつFlashからPHPに変数を送る際に
返り値もなにも受け取らず、ターゲットウインドウもなし
ただ単純に変数を送るだけってことはできるんでしょうか?
sendで送信後に送り先の「〜.php」が開いてしまいます。
↑板違いなFlash含んでて申し訳ないです。
0325nobodyさん
03/07/04 16:22ID:???0327nobodyさん
03/07/04 21:18ID:???$in{'FROM'} =~ s/◆/◇/g;
if ($in{'FROM'} =~ /#(.+)/){
my $key = $1;
my $salt = substr($key."H.", 1, 2);
$salt =~ s/[^\.-z]/\./g;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = ' ◆</b>' . substr(crypt($key, $salt), -8) . '<b>';
はどうすればよいでしょうか?
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
でつまってしまいました。厨な質問で申し訳ないですがよろしくお願いします
0330nobodyさん
03/07/04 22:14ID:???0331nobodyさん
03/07/04 22:15ID:2pHtYtXT駄目ならすいませんが誘導ください。
phpBBをインストールし、Global Announcement Modというものを新しくインストールしたのですが、なにも項目も追加されてませんし、「重要」トピックなどで投稿しても全てのフォーラムに反映しません。
コレはどうすれば宜しいのでしょうか?
宜しくお願いします
0332名無し
03/07/04 22:26ID:P/UD1L9mエラーが出てしまいます。下記の記述で間違っている個所があるのでしょうか?
$file="file.dat";
if(!file_exists($file)){
$fp = @fopen($file,"w") || die("error");
flock($fp,LOCK_EX);
$print="aaa";
fputs($fp,$print);
flock($fp,LOCK_UN);
fclose($fp);
}
ホントに初歩的な質問ですみません。。。
ご回答お願いします。
0334nobodyさん
03/07/04 23:11ID:???>$fp = @fopen($file,"w") || die("error");
var_dump($fp); してみてください。
これだと、たぶん $fp がリソースではなくbool型になってる。
正しくは $fp = @fopen($file,"w") or die("error");
こうすれば = が処理される前に $fp が評価されるはず。
演算子の優先順位の項目を参照のこと。
質問するときはどこでどんなエラーが出てるのかちゃんと書けって
いつも言ってるだろこのバカチンが !!
0335nobodyさん
03/07/04 23:13ID:???評価されるのは $fp に入る前の fopen(); の結果ね。
0337nobodyさん
03/07/04 23:31ID:???0338nobodyさん
03/07/04 23:49ID:???This will supress the injection of error messages into the data stream output to the web client.
0339nobodyさん
03/07/05 00:34ID:???0340336
03/07/05 00:42ID:???対象行がdelete掛けられた場合の処理(逃げ)は必要だよ
0341nobodyさん
03/07/05 04:20ID:???0342nobodyさん
03/07/05 08:20ID:???>こうすれば = が処理される前に $fp が評価されるはず。
ダメじゃん・・・。
0344nobodyさん
03/07/05 10:06ID:???$fp = @fopen($file,"w");
if ($fp) {
#処理
}else {
die ("error");
}
0347323
03/07/06 13:15ID:???フィールドのタイプはtext、文字数は設定なし、取り出してるクエリは
SELECT *
FROM `テーブル名`
です。
よろしくお願いいたします。
0348あぼーん
NGNG■ このスレッドは過去ログ倉庫に格納されています