くだすれPHP(超初心者用)
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/06/12(月) 14:06:01ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
0002nobodyさん
2006/06/12(月) 14:40:47ID:???需要あったのかしらん。
0003nobodyさん
2006/06/14(水) 00:09:15ID:???0004nobodyさん
2006/06/14(水) 09:26:50ID:???0005nobodyさん
2006/06/18(日) 10:15:39ID:???そのままだと1byte目を変換し、後を無視してしまいます
0006nobodyさん
2006/06/18(日) 14:16:42ID:???>>5
おまいは何かを根本的に勘違いしている。
ord()はそもそもそういうもんですって言うか変換なんてしません。
http://jp2.php.net/manual/ja/function.ord.php
> stringの先頭文字のASCII値を返します。
2バイト文字列の一文字目を抜き取りたいのならmb_substr()でも使ってはどうですか。
http://jp2.php.net/manual/ja/function.mb-substr.php
0007nobodyさん
2006/06/18(日) 15:05:32ID:???http://jp2.php.net/manual/ja/function.pack.php
0008nobodyさん
NGNG<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV"));
$data = $str;
print(mb_convert_encording($data,"EUC-JP","Shift_JIS"));?>
出力
サーバサイド技術
Fatal error: Call to undefined function mb_convert_encording() in C:\Program Files\xampp\htdocs\4.2.php on line 8
設定が間違っているのでしょうか?
0011nobodyさん
NGNGども。
両方試してみました。
入力
<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV"));
$data = $str;
print(mb_convert_encoding($data,"EUC-JP","SJIS"));?>
出力
サーバサイド技術悉鴫写酌悉軸柴酌オサスム
mb_comvety_kana()とmb_convert_encoding()がうまく動作していない様子です。
0012nobodyさん
2006/06/18(日) 17:41:37ID:???mb_convert_kana()は$strの文字コードを明示的に指示してやると多分うまくいくよ。
http://jp2.php.net/manual/ja/function.mb-convert-kana.php
mb_convert_encoding()は上手く動作してるから文字化けしてるんじゃないの?
0013nobodyさん
NGNG文字コードをSJISに指定したら正しく表示されました。ありがとうございます。
ただ、mb_convert_encoding()がどうもうまくいきません。IEで文字コードをSJIS
にエンコードすると化けてしまいます。一方でEUC-JPにエンコードすると"サーバサイド技術"
と化けずに表示されます。よーするにmb_convert_encoding()がうまく動いてないかと。
0014nobodyさん
2006/06/18(日) 20:32:09ID:???化けるって聞いたよ。
アパチが内部で勝手に文字コードを揃えちゃうらしい。
0015nobodyさん
2006/06/18(日) 21:12:07ID:???<?php
$str = "サーバサイド技術";
print(mb_convert_kana($str,"KV")); // (1)
$data = $str;
print(mb_convert_encoding($data,"EUC-JP","SJIS")); // (2)
?>
これがちゃんとSJISで書かれているとしたら$strの文字コードはSJISだよね。
つまり(1)はSJISで出力される。
一方(2)はEUC-JPに変換してから出力している。
(1)が文字化けせずに読めている状態で(2)が化けるのは当たり前じゃん。
出力した文字コードが違うんだから。
"悉鴫写酌悉軸柴酌オサスム"つーのはEUC-JPで出力された"サーバサイド技術"を
SJISとして読んだ時に起こる文字化け。
上の出力をEUC-JPとして読んだ場合は"?T?[?o?T?C?h?Z?pサーバサイド技術"となる。
自分でSJISからEUC-JPに変換させといてうまく動いてないなんていちゃもん付けるなよ。
mb_convert_encoding()は完璧に動いてるよ。
00165
2006/06/19(月) 10:00:39ID:???わかりにくい説明ですいません。
日本語文字列のascii値?を返してほしいんです
ord("a") -> 97
ord("あ") -> 12354
ord(" ") -> 32
ord(" ") -> 12288
0017nobodyさん
2006/06/19(月) 17:01:38ID:???良く分かんないけど、要はこういう事かな。
<?php
get_ascii("a");
get_ascii("あ");
get_ascii(" ");
get_ascii(" ");
function get_ascii($str) {
print "\"{$str}\" => ";
for ($num = 0; $num < strlen($str); $num++) {
print ord(substr($str, $num, 1));
}
print "\n";
}
?>
get_ascii()はこうでも良い。
function get_ascii($str) {
print "\"{$str}\" => ";
$array = str_split($str);
foreach ($array as $value) {
print ord($value);
}
print "\n";
}
でもSJISでもEUC-JPでもUTF-8でもうちではその値にはならないんだよねえ。
0018nobodyさん
2006/06/19(月) 21:13:32ID:???ありがとうございます。
検索すると同じことをしたがっている人のMLでの質問がありましたが答えは出ていませんでした。
ordではやはり出来ないのでしょうか?
ここはJavaScriptで実現されています
http://www.eris.ais.ne.jp/~hiro/html/
参考になりますでしょうか?
0019nobodyさん
2006/06/19(月) 22:01:52ID:???PHPの下らない質問スレ行って聞いてくだちぃ。
つーかもうこのスレ落としても良いよね?
002012
NGNGすみません。逆でしたね。
mb_convert_encoding($data,"SJIS","EUC-JP"));
にしてみました。
結果は…
サーバサイド技術三舗参爪?Z
orz
0021nobodyさん
2006/06/20(火) 18:01:26ID:???おまいは俺をおちょくって遊んでいるのか?
そのスクリプトを書くのに使った文字コードと
それぞれのprint()で出力された文字列の文字コードを全部メモしてから
>>15を215万回読み直してそれでも分からなかったらもう諦めろ。
0022nobodyさん
2006/06/21(水) 13:29:40ID:???これじゃ駄目なの?
<?php
$a = unpack('h*', 'あ');
print_r($a);
print hexdec($a[1]);
?>
http://coronado.s8.xrea.com/php/function.unpack.php
0023nobodyさん
2006/06/21(水) 13:35:41ID:???まずは 21 氏の言うようにこれを。
話はそれからだ。
<?php
print '<pre>';
print_r(mb_get_info());
?>
ttp://coronado.s8.xrea.com/php/function.mb-get-info.php
0024nobodyさん
2006/06/25(日) 06:12:44ID:???文字化けを防ぐ方法を教えてくだすれ
0025nobodyさん
2006/06/25(日) 13:33:01ID:???mb_language('uni');
mb_internal_encoding('UTF-8');
ttp://coronado.s8.xrea.com/php/function.mb-language.php
ttp://coronado.s8.xrea.com/php/function.mb-send-mail.php
0027nobodyさん
2006/06/25(日) 15:10:37ID:???それに、本家だと全然関係ない関数にマッチしない?
あと、本家だと異常に重いことあるし…。
実は一番いいのは文字サイズが大きいことだけど、
アフィ厨の片棒は担ぎたくない。
0028nobodyさん
2006/06/25(日) 15:33:45ID:???ザッと見た限りアフィはなさそう。
マニュアル調べたくてググると
数年前から更新してないサイトが上位に出るから、
最新版が更新されるならいいことだと思うけどね。
0029nobodyさん
2006/06/25(日) 17:05:43ID:???| 数年前から更新してないサイトが上位に出るから、
ああ、そうだね。
ちゃんと回答してるし、ガンガレ!!
0030nobodyさん
2006/07/01(土) 17:28:58ID:???今までシフトJISを使ってきたのですが、今後はUTF-8にしようと思うのですが・・・
0031nobodyさん
2006/07/01(土) 17:57:13ID:V+Wur+Sg0032nobodyさん
2006/07/01(土) 20:32:37ID:???あるけど無視してよい古いブラウザだから UTF で OK.
Google は UTF だけど問題になってないでしょう?
>>31
ありとあらゆる場合に.
0033お助けください・・・
2006/07/01(土) 22:36:11ID:w8UJhqAk5秒くらい待ってから
Warning: mssql_connect(): Unable to connect to server:
となってしまいます。
・SQLサーバ認証+Windows認証
・構成マネージャでTCP/IPを有効化
IPアドレスを正しく変更
した上で、
mssql_connect('localhost,1433','<USERNAME>','<PASSWORD>')
mssql_connect('<IPADDRESS>,1433','<USERNAME>','<PASSWORD>')
mssql_connect('<HOSTNAME>,1433','<USERNAME>','<PASSWORD>')
mssql_connect('localhost/SQLEXPRESS','<USERNAME>','<PASSWORD>')
mssql_connect('<IPADDRESS>/SQLEXPRESS','<USERNAME>','<PASSWORD>')
mssql_connect('<HOSTNAME>/SQLEXPRESS','<USERNAME>','<PASSWORD>')
みんな失敗します。
何か他に設定がいるのでしょうか。。。
0034nobodyさん
2006/07/04(火) 10:01:43ID:q1Np2u8Uレーダーチャートのタイトルは日本語化できたのですが、
軸の項目が日本語化できません。
いい方法がありましたら教えてください。
0035nobodyさん
2006/07/04(火) 13:46:21ID:EIKaYV2N$graph->axis->SetFont(FF_MINCHO);
$graph->axis->title->SetFont(FF_MINCHO);
$graphの生成後に↑の両方が必要らしい。
試してみれ
003634
2006/07/04(火) 14:46:14ID:q1Np2u8Uできました。ありがとう〜。
Axis->Setfont〜でとまってたからできなかったようです。
003734
2006/07/05(水) 19:21:10ID:1sMbSjJr1、グラフを描画するPHPの前にタグがあるとグラフ描画PHPが文字化けする
2、ならば仕方がないのでグラフを先に表示して御託はあとから述べるスタンス
に変更するためにグラフ描画PHPの後ろにタグを置いたら、グラフしか表示されない
という不具合に当たりました。
何とか上手くやる方法がありましたら教えてください。
よろしくお願いします。
//チラ裏
ヘルプにあるようにHTMLからPHPを呼び出すとグラフが描画されないし・・・
ApacheとかPHPの不具合・・・?
//チラ裏終了
0038nobodyさん
2006/07/05(水) 21:03:19ID:iNEqShr6pdo.dsn.hoge="sqlite:ほにゃらら〜
というのを記述したいのですが、ほにゃららの部分を
どのように記述したら良いかわかりません。
FC5、PHP5.1.4です。
Windwosならc:\hoge.dbみたいにするところなのでしょうが、
/にあるhoge.dbを
pdo.dsn.hoge="sqlite:/hoge.db"
と書いてもPHPからアクセスできませんでした。
よろしくお願いいたします。
0039nobodyさん
2006/07/13(木) 05:44:51ID:???よくわかんないけど、グラフ作って画像を送信するんじゃないの?
よくある画像カウンタみたいな感じ。
だから、HTML吐くphpなスクリプトを作ってその中でグラフ出力の
phpをimgタグで呼ぶてな感じじゃね?
例
a.phpとかa.html
<html><head>........<body>
<img src="b.php?hoge=piyo">
...
b.php
<?php
ナンチャラ
$graph->Stroke();
?>
b.phpはグラフを書いて「画像」として送信するだけ。
それかa.phpでグラフをどこかに作って(例えば./hoge.jpg")
それを<img src="./hoge.jpg">とかにするとか。
#画像を送っているのなら、画像を送る前にHTMLを送るとheaderが変だし
画像の後にHTML送ってもたぶん無視じゃないか?
0040nobodyさん
2006/07/16(日) 02:16:28ID:RWw+XpFzどの板でも絶対にかけないと思ってココに書きます。
あるアップローダからDLしたファイルが「PHPファイル」ってものでした。
中身は画像だそうですが、クリックしてもメモ帳になってしまい、
更にサイズが大きくてメモ帳が固まってしまいます。
どうしたら見れるのですか?
教えてくださいおねがいします。
0042PHP男爵 ◆SWtzLesEmM
2006/07/16(日) 12:24:45ID:3GUcmNlY君は勇者だ!
(リアルの世界でも積極的に生きて欲しい。)
解説しよう!
ダウンロードして、デスクトップに「hoge.php」というファイルがあるとする。
hoge.phpのファイル名を変更して、hoge.jpgにしたり、hoge.gifにして、ペイントとかで開いて見たら、何か画像が表示されるかも!?
で、うまく開いたらその画像がどんなものだったか報告するように。
以上
0043nobodyさん
2006/07/17(月) 03:20:56ID:???rand()とかだと整数しかつかえないので、他に方法はないものかと力を貸していただきたく・・・。
※例:1.8〜2.4の間で乱数を出す。
004543
2006/07/17(月) 12:52:32ID:???割ればいいんだったw
ありがとうございます!
もひとつすみませんが、クッキーについてお聞きしていいですか?
<php
/*Cookie*/
setcookie("lv","$lv",time()+604800);/*レベルの記憶*/
setcookie("job","$radio",time()+604800);/*主職業の記憶*/
$cookie = "lv"; "job";
?>
これをHTML記述前に入れて、"lv"と"job"はフォーム名です。
ちなみにjobはドロップダウンボックスのoptionに名前をつけています。
この状態でクッキーを取得してくれません。
何度もお邪魔してすみません。
お時間許していただけましたら赤ペン先生お願いいたします・・・。
0046nobodyさん
2006/07/17(月) 13:04:05ID:???確認方法は?
004743
2006/07/17(月) 13:45:25ID:???本来ならそこだ!と記憶して欲しいのですが、checkedにもどってしまいます。
これがいけないのでしょうか。
0048nobodyさん
2006/07/17(月) 13:51:25ID:???2 1.はしてるが、取得していない
3. 2.はしてるが、利用していない
4. 3.はしてるが、利用の仕方が正しくない
確認すべきことが色々あると思うが。
0049nobodyさん
2006/07/17(月) 14:26:16ID:???<?php
setcookie('a', 1);
?>
<HTML>
<BODY>
echo $_COOKIE['a'];
</BODY>
</HTML>
という意味なら、そりゃ無理でしょ。
005043
2006/07/17(月) 15:19:15ID:???<?php
/*取得*/
$lv = $_POST["lv"];
$radio=$_POST["job"];
/*Cookie*/
setcookie("lv","$lv",time()+604800);/*レベルの記憶*/
setcookie("job","$radio",time()+604800);/*主職業の記憶*/
?>
<html>
-中略-
<body>
<input type="text" name="lv" size="4" value="<?php echo($lv) ?>">
<input type="radio" name="job" value="A" checked>A<br>
<input type="radio" name="job" value="B">B<br>
<input type="radio" name="job" value="C">C</td>
バッチリBODY内にechoかいてましたorz
ここでどうすべきか・・・
005143
2006/07/17(月) 15:20:14ID:???フォームがまっさらになってしまいました。なんでだろう
0052nobodyさん
2006/07/17(月) 17:16:17ID:???echo nl2br(print_r(%_POST, true));
echo nl2br(print_r(%_COOKIE, true));
exit();
と書いて何が表示されるかをみてみ。
005443
2006/07/17(月) 17:54:24ID:???if ($lv != "") {
setcookie("lv",$lv,time()+604800);/*レベルの記憶*/
setcookie("job",$radio,time()+604800);/*主職業の記憶*/
}
if ($lv == "") {
$lv = $_COOKIE["lv"];
$radio = $_COOKIE["job"];
}
として・・・
>>52先生。値はちゃんと残ってます^^
でもラジオボタンがcheckedに戻ってしまう理由が思い当たりません・・・。
ちなみにそれをはずして読み込んでも、ラジオ自体はまっさらorz
PHPさん!もう許して>p<;
0055nobodyさん
2006/07/17(月) 18:17:24ID:???$radioに値は入っていても使ってないでしょ?
適当だけどこういう風に使ってやらんと。
<input type="radio" name="job" value="A" <?php ($radio == 'A' ? 'checked' : ''); ?>>A<br>
<input type="radio" name="job" value="B" <?php ($radio == 'B' ? 'checked' : ''); ?>>A<br>
<input type="radio" name="job" value="C" <?php ($radio == 'C' ? 'checked' : ''); ?>>A<br>
005643
2006/07/17(月) 19:03:08ID:???「LV」とおなじechoのさせかただと、どこにvalueいれていいのかわからなかったんだった。
<?php ($radio == "A" ? "checked" : ""); ?>
このまま入れれば大丈夫でしょうか?
ちなみに「: ""」この部分の意味がわかりません。
0057nobodyさん
2006/07/17(月) 20:28:17ID:???悪いけど試してない。
三項演算子はifと同じだよ。
if ($a == true) {
echo "true";
} else {
echo "false";
}
は三項演算子を使うと以下のようにかける
echo ($a == true ? "true": "false");
""は何も出力しないって事。
開発(実験)環境あるんだから試しなさいw
005843
2006/07/17(月) 22:04:17ID:???$radio=$_POST["job"];
/*ラジオボタンにチェックつけさせるために新たに変数追加*/
$checked[0] = " checked";
$checked[1] = " checked";
$checked[2] = " checked";
-以下HTML部-
<input type="radio" name="job" value="A"<?php print $checked[0] ?>>A<br>
<input type="radio" name="job" value="B"<?php print $checked[1] ?>>B<br>
<input type="radio" name="job" value="C"<?php print $checked[2] ?>>C
これでやっとチェックつけれるようになりました・・・。
ひとまず計算機完成。
みなさんありがとうございました!いい勉強ができました;;
0059nobodyさん
2006/07/17(月) 22:19:28ID:???006143
2006/07/17(月) 23:27:28ID:???ご指摘ありがとうございました!
>>60
もっといいソースか・・・拙い頭ゆえ思い浮かばないなw
参考がありましたら、是非紹介願いたく。
以後名無しに戻りますね。
0062nobodyさん
2006/07/18(火) 16:49:54ID:eTqE8Qoy海外からの宣伝コメントがあまりにも多すぎるため、それを何とかしなければなりません。
かと言って海外からの接続を遮断すると、正常な業務にも支障が出てしまいます。
PHP未経験者です。他の言語は少しかじった程度。
「お前が一番コンピュータ詳しいから」とかいう素敵な理由で、そんなヤツに任せるなよマイ上司。
なお、PHPのバージョンは「4.4.1」らしいです。
変数 $message に、POSTメソッドで送信されたコメントの本文が保持されています。
とりあえず、WebのPHPリファレンスと睨めっこして、
if ( mb_detect_encoding ( $message ) == "ASCII" )
という方法を取ってみました。
幾つかのパターンを入力してみましたが、想定通りには動いているような気がします。
ですが、初心者ゆえこれで正しいのかすら分かりません。
もっとスマートな方法、こういう場合の定番などありましたらお願いします。
0063nobodyさん
2006/07/18(火) 17:17:58ID:???アルファベット使用圏限定でこんなのもある。
strlen($message)==mb_strlen($message)
だったら宣伝。
0065nobodyさん
2006/07/18(火) 18:24:47ID:JssOWqeV出てきて、掲示板に書いたりいろいろやった後、目次に戻るボタンを押すとメンバページ
目次に戻るプログラムを作っています。
メンバ認証後、メンバページ目次の時点ではセッションを保持しているのですが、
(セッションIDと保持しているデータを出力して確認しました)
そこから別のページに飛ぶとセッションが消えてしまいます。
(セッションIDと保持しているデータを出力しようとしたら空白になっていました)
Session_destroy等はしていないのにセッションIDが消えるということはありうるのでしょ
うか?(接続が切れたとかいうこともないはずなのですが・・・)
またこのパターンを回避する方法を御教授下さい。
そもそもSession_destroyするか接続を切断するまではセッションは保持されているものであると
いう考え方が間違っているのでしょうか?
環境は WinXP Apache2.0.54 PHP5.0.2です。
0066nobodyさん
2006/07/18(火) 18:58:56ID:???2、$_SESSION = array()しちゃった
3、別のホストにとんでる
4、気のせい
006765
2006/07/18(火) 20:01:55ID:JssOWqeV1、タイプミス>目次ではちゃんとSessionIDを表示できた部分をコピペなのでタイプミスは
ないようです。
2、$_SESSION=array()もなさそうです。
3、Localhostから出ていないのでそれもなさそうです。
4、ぶっ(笑) 気のせい違います。
Localhost内だけどリンクで飛ぶと駄目なのかな・・・。
0068nobodyさん
2006/07/18(火) 20:20:39ID:???006965
2006/07/18(火) 23:56:55ID:JssOWqeV正解orz。
1個目のPHPにSESSION_START()書いてあってセッションはサイト内のほかのページとデータが
やり取りできるようにするためにあるんだからって思って書いてなかったとです。
解決しました。ありがとう〜。
0071nobodyさん
2006/07/19(水) 11:20:53ID:IBxFZpVL現在のユーザ名とユーザ名変更用のテキストボックスがあって、変更ボタンを押すとユーザ名が
変更されるというものを作っているのですが、ボタンを押すとテキストボックスに入っている文字で
データベースは変更されるのですが、現在のユーザ名の場所が変更前のユーザ名になったままです。
HTMLの<form action〜〜>で現在のページを読み込むという処理を試したのですが、処理的には
ボタン押す>移動する>DB変更>終了
と動いているみたいでDBは変更されますが、現在のユーザ名は変更前のものになってしまいます。
望む動きは ボタン押す>DB変更>移動する=現在のユーザ名が変更後になって表示
なのですが、いい方法はないでしょうか?
007271
2006/07/19(水) 12:18:10ID:IBxFZpVL処理の一番最後にヘッダを入れたら解決できました。
・・・ヘッダの前にはほかのタグや空白があっちゃダメって書いてあったけど・・・。
0073nobodyさん
2006/07/19(水) 13:04:42ID:???007471
2006/07/19(水) 18:02:10ID:IBxFZpVL・・・不思議だ。
0075nobodyさん
2006/07/19(水) 18:37:25ID:???呼んだ直後にブラウザ側はページが変わるかも。
でも、DB変更が間に合わないって、あるのかな?
0076nobodyさん
2006/07/20(木) 18:14:20ID:sQrhvX8x国名文字列と国旗画像を生成するクラスって
PHP の標準的なライブラリに用意されていましたか?
0077nobodyさん
2006/07/20(木) 18:14:31ID:wL12H3C9入力に不備があるときはJavaScriptで警告ダイアログを出すようになっているのです
が、警告ダイアログが出た後にはちゃんと入力してあった部分が消えてしまいます。
送信ボタンを押すと入力された内容をPOSTしてその中身が空のときはダイアログを
出す仕組みなので、$_POSTからデータを書き戻してやればいいと思ったのですが、
いい方法が浮かびません。
〜mofu.php〜
<form name="inform" action="mofu.php" method="post">
<p align="left">生徒氏名(姓)
<input type="text" name="FirstName" value="">
不備があって戻ってきたときこのテキストボックスのvalie""にボタンを押す前の状
態(POSTが持ってるからそれを書き込む)方法が知りたいです。
よろしくお願いします。
0078nobodyさん
2006/07/20(木) 19:40:28ID:mpmc+iKK会員特有の情報に会員のみがアクセスできる程度のサイト)
会員制サイトを構築しようと思います。
セキュリティ
パフォーマンス
構築の容易さ
ではperlとphpはどちらがいいでしょうか?
(作成者の言語スキルは両方素人とします。)
0079nobodyさん
2006/07/20(木) 21:40:10ID:sQrhvX8xのような GET クエリのパラメータはどうやって
PHP 内で取得すればいいのでしょうか?
0082nobodyさん
2006/07/21(金) 01:48:55ID:8lmGSvy2どなたか、どこでダウンロードできるのか教えてくださいませ。
0083nobodyさん
2006/07/21(金) 06:50:49ID:???ttp://www.phpeclipse.de/ が開発元だと分かる
dowloadでページ内を検索する
0085nobodyさん
2006/07/21(金) 07:35:13ID:u9FD8hv+print $a[0];
ってやってました。
0086nobodyさん
2006/07/21(金) 10:49:35ID:qSIZRUWYカタカナの”ソ”が入っていると、”ソ”が”ソ¥”になってしまいます。
ほかの文字では大丈夫(全角のカタカナ以外の入力を拒否するようになっています)
なのですが、原因が分かりません。
どなたか分かる方がいましたら御教授ください。
0087nobodyさん
2006/07/21(金) 11:27:18ID:???仕様
if (get_magic_quotes_gpc()){
return stripslashes($message);
}
0088nobodyさん
2006/07/21(金) 12:25:52ID:u9FD8hv+標準 or PEAR で。
0089nobodyさん
2006/07/21(金) 13:32:22ID:qSIZRUWYPHP.iniの
magic_quotes_gpc = On
をOFFにしたら解決できました。
ありがとう〜
0090nobodyさん
2006/07/21(金) 15:32:15ID:sMd75oCWclass使わなくても(functionだけでも)オブジェクト指向的な部品ごとの作成ってできるように
思うんですが、やっぱり違うもんなんでしょうか?
オブジェクト脳の方、詳しくお願い致します。
0092nobodyさん
2006/07/21(金) 16:28:50ID:???class myClass {
private $生徒数
private $担任;
private $学級委員;
private $美化委員;
}
0093nobodyさん
2006/07/21(金) 16:34:25ID:???クラスが所持している function は、
そのクラスを操作する場合に便利な関数が多々用意されており、
なおかつ、そのクラス以外では使いどころがない関数が多い。
オブジェクト指向を考えるには、PHPより、JavaScript で考えてみるとよい。
009493
2006/07/21(金) 16:36:52ID:???PHP ではグローバルに substr という関数が用意されているが、
JSでは、string クラスのメンバ関数として用意されている。
009593
2006/07/21(金) 16:39:36ID:???ただの function は、
そのスクリプト全体を1つのクラスと考えてみると、そのクラスの関数ということもできるわな。
0096nobodyさん
2006/07/21(金) 16:55:01ID:???0097nobodyさん
2006/07/21(金) 17:09:14ID:u9FD8hv+0098nobodyさん
2006/07/21(金) 17:18:24ID:???0099nobodyさん
2006/07/21(金) 17:49:24ID:CoGe325Oapacheの文字コードはソース・出力共にEUC
oracleはSJISです
この環境だと、php内でoracle関数を使って何かする場合
$conn = oci_connect('id','pw','db');
$sql = mb_convert_encoding("SELECT id,name FROM emp",'SJIS','EUC-JP');
$stmt = oci_parse($conn,$sql);
oci_define_by_name($stmt,mb_convert_encoding('id','SJIS','EUC-JP'),$ret_id);
oci_define_by_name($stmt,mb_convert_encoding('name','SJIS','EUC-JP'),$ret_name);
$dbresult = oci_execute($stmt);
while(oci_fetch($stmt)){
...
と、こんな感じで一旦SJISにしてやらなきゃ駄目だと思うんですが、
↑と同じ要領で、バインド変数というものを利用しようと勉強中なのですが上手くいきません
$conn = oci_connect('id','pw','db');
$sql = mb_convert_encoding("INSERT INTO emp ('id','pw') VALUES (:wk_id,:wk_pw)",'SJIS','EUC-JP');
$stmt = oci_parse($conn,$sql);
oci_bind_by_name($stmt,mb_convert_encoding(':wk_id','SJIS','EUC-JP'),$tmp_id);
oci_bind_by_name($stmt,mb_convert_encoding(':wk_name','SJIS','EUC-JP'),$tmp_name);
$tmp_id = "testid";
$tmp_name = "testname";
$dbresult = oci_execute($stmt);
...
全部SJISで統一するか、oracle内部の文字コードをEUCに変えるくらいしか僕には解決策思いつきませんorz
アドバイスよろしくお願いします
0100nobodyさん
2006/07/21(金) 17:55:48ID:???ソース中で、「ソー」など書くとき気をつけたり、
正規表現使うときに \ かませれば大丈夫
010199
2006/07/22(土) 13:04:21ID:Fs0pSL8Xレスサンクス
ふむふむ「ソ」でのエスケープ処理云々を忘れなきゃSJISでも特に問題はなさそうですね
別のくだすれでも上がってましたが、
ソースでSJIS用いるのって公式には推奨されてないんですよね?うーん
文字コードこのままでバインド変数利用するってのは無理なんでしょうか・・・
0102nobodyさん
2006/07/22(土) 14:11:39ID:???ただ、推奨されていないのにはそれなりに理由があるわけだから
非推奨環境を使うのなら、何らかの問題を抱えることは
覚悟しておけってことだ
0103nobodyさん
2006/07/22(土) 16:51:32ID:???こんな感じでページ送りしたいのですが、参考になるソースをおいてる
サイトありますか?
0104nobodyさん
2006/07/22(土) 16:57:11ID:gk79Zqps0106nobodyさん
2006/07/22(土) 18:21:46ID:Arzj07HMそれくらい自分で考えようぜwww
中卒の俺ですら思いついたぞwwww
0107sage
2006/07/23(日) 12:56:20ID:R5nK9VH4$params=array("cacheDir"=>"./tmp/","lifeTime"=>7776000);
$MyCache= new Cache_Lite_Function($params);
$f_data=$MyCache->call("f_data",$f_cls,$f_id);
こんな感じで作成した関数キャッシュを、lifeTimeが切れる前に無効にしたい
場合はどうやるんでしょうか? remove で指定するとは思うんですが...。
0109107
2006/07/23(日) 14:20:10ID:???Cache_Lite_Function::drop() なんてのがあったのね。
自己レス御免。
011099
2006/07/24(月) 18:12:19ID:???↓見てたら結構使いそうな文字あったんでEUCに戻すことにしました。
ttp://hp.vector.co.jp/authors/VA039433/shift_jis-table.html
oracleをSJIS以外にするしかないのかなあ
内部コードがSJISのDBというのは特殊な環境なんでしょうか・・・
0111nobodyさん
2006/07/24(月) 18:25:58ID:???OracleでSJISを使ったのは何か思惑があったの?
Oracleの管理ツールのしがらみとか?
>>99で自分で書いてるように、データを取得したり挿入、更新する際に
文字コード変換かければ良いだけ。
どれくらいの負荷になるかは分からんが余分なオーバヘッドである事は
確かだから、統一できるなら統一した方が良いんじゃない?
手間に見合う効果があるかは環境しだいなんでなんとも。
0112nobodyさん
2006/07/25(火) 09:29:17ID:0Poswc1D社内の環境がすべてwindowsなんです。特に意図とかは無くてデフォルトだったというだけで(汗
EUCだと他のテスト環境と共存出来ないのが心配ですが・・・仰るとおりOracleの内部コードをEUCにする方向で
いってみまっす
0113nobodyさん
2006/07/27(木) 13:35:13ID:wCnmBkp+カンマ切りする方法を教えてください。
array_map("disp",$allArray);
function disp($str){
$string= "\"".$str."\",";
$strc=",";
rtrim($string,$strc);
echo "<br>";
print_r ($string);
}
何か上手くいかない・・・OTZ
0115nobodyさん
2006/07/27(木) 13:43:06ID:???$str = implode('","', $allArray);
この後$strの前後から2文字づつ切ればいい。
0116115
2006/07/27(木) 13:44:20ID:???$str = '"' . implode('","', $allArray) . '"';
でいいな。
011799
2006/07/28(金) 18:31:34ID:???PDO使ったら普通にいけましたコレ。
PHPソース:EUC、HTTP出力:SJIS、ORACLE:SJIS
$dsn = 'oci:dbname=hoge;charset=JA16EUC';
$user = 'hoge';
$pass = 'hoge';
$db = new PDO($dsn,$user,$pass);
$stmt = $db->prepare("SELECT empid,empname FROM emp");
$stmt->bindColumn('empid',$ret_arr['id'],PDO::PARAM_STR);
$stmt->bindColumn('empname',$ret_arr['name'],PDO::PARAM_STR);
$stmt->execute();
while($stmt->fetch(PDO::FETCH_BOUND)){
$ret_arr['id'] = $ret_arr['id'];
$ret_arr['name'] = $ret_arr['name'];
}
$stmt = null;
0119nobodyさん
2006/08/01(火) 00:31:28ID:???0120nobodyさん
2006/08/01(火) 00:32:05ID:???0121nobodyさん
2006/08/01(火) 00:43:07ID:???0122nobodyさん
2006/08/01(火) 01:32:13ID:???本当にありがとうございます。
0124nobodyさん
2006/08/01(火) 08:56:49ID:W3yf98Bx0125nobodyさん
2006/08/01(火) 16:06:50ID:E6FJ2WAYグローバル配列変数みたいなものを探しています。
0126nobodyさん
2006/08/01(火) 16:25:00ID:???0127nobodyさん
2006/08/01(火) 16:34:43ID:???グラフ表示のサンプルを見ると
<img src='graphtest.php'>
のようにグラフを表示する為に専用のPhpファイルをリンクしてありますので
本体phpからグラフphpにデータを渡す必要があると思うのですが。
0128nobodyさん
2006/08/01(火) 17:18:31ID:???メインスクリプトからPHPファイルにデータを渡すのではない。
メインスクリプトからPHPスクリプトを利用してやるのだと
0131nobodyさん
2006/08/02(水) 22:03:52ID:B9yKSglg<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
内容を書き込み送信 <br>
<form method="post" action="post.php">
<input type"text" name="contents" value="" size="50" maxlength="256">
<br><br>
<input type="submit" name="submit" value="送信">
</form>
<br>
0132nobodyさん
2006/08/02(水) 22:05:24ID:B9yKSglg$filename = "test.txt";
if(isset($_POST['submit'])){
print("投稿内容: ".$_POST['contents']);
$file = fopen($filename, "w");
flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);
fclose($file);
}
?>
</body>
</html>
0133nobodyさん
2006/08/02(水) 22:42:33ID:???0136nobodyさん
2006/08/03(木) 01:07:12ID:???0137131
2006/08/03(木) 02:32:59ID:N4ArK+AW$filename = "test.txt";
['contents'] = mb_convert_encoding(['contents'], "JIS", "UTF-8")
if(isset($_POST['submit'])){
print("投稿内容: ".$_POST['contents']);
$file = fopen($filename, "w");
flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);
fclose($file);
}
?>
としてみたのですが、できません。。。。。
どうしたらいいの・・・・・??
0138nobodyさん
2006/08/03(木) 03:09:36ID:???PHP勉強しようとして
apache_2.2.3-win32-x86-no_ssl.msi
でまずApache入れようとしたら
インストールウィザードにPlease wait.とか言われたまんま進まないんですけど。
何が問題なんでしょう。
WinXP SP2, Celeron D 341。
これじゃせっかくPHPで何か書いても動作チェックしようがない…
0139nobodyさん
2006/08/03(木) 03:40:23ID:???手元のバージョンも合わせたほうがいいですか?
普通に最新の5.1.4入れようとしてますけど。
0140nobodyさん
2006/08/03(木) 06:52:33ID:???0142nobodyさん
2006/08/03(木) 08:07:08ID:???0143138
2006/08/03(木) 11:55:57ID:???Apache HTTP Server 2.0.59 Setup is preparing the Installation
Wizard which will guide you through the program setup
process. Please wait.
でいつまで経ってもNextが押せません。
0144131
2006/08/03(木) 12:12:14ID:???ini_set("mbstring.internal_encoding","UTF-8");
って入れたらできました♪
0145nobodyさん
2006/08/03(木) 15:53:48ID:???0146nobodyさん
2006/08/03(木) 16:00:51ID:???アップローダ以外の普通の掲示板とかのスクリプトはわかるのか?
だったらフリーなPHPソースであぷろだ置いてるところあるから
そのソースを読め
0147nobodyさん
2006/08/04(金) 15:52:28ID:v3M2GCi5フォームで入力した文字を送信すると文字がHTTPプロトコルに則って
送信されるでしょ。アップローダの場合のファイルはその仕組みと同様に
ファイルを半角文字に変換して送信して受け側でもとのファイルに戻して
やるのが仕組みだ。
0148nobodyさん
2006/08/04(金) 16:18:39ID:???ファイルアップロードの処理
http://coronado.s8.xrea.com/php/features.file-upload.php
0149nobodyさん
2006/08/04(金) 17:11:46ID:???0151nobodyさん
2006/08/04(金) 17:46:53ID:???IE 使ってない?
文字コードを UTF とかにすると見れるね。
先月かな、WindowsUpdate してから IE の
文字コード判定がおかしくなってない?
0152nobodyさん
2006/08/04(金) 19:19:20ID:IwZUdvMW0153nobodyさん
2006/08/05(土) 00:30:49ID:???最後を1にしる
携帯ではセッションの「SID」は使用できないんでしょうか?
1・ログインフォーム(login.php)でIDとパス入力
↓
2・フォームの値を同ファイル(login.php)に送信、検証
↓
3・OKならセッション値に代入、別ファイルに飛ばす
header("Location:./nextfail.php?SID");
↓
4・以降、セッションでID・パス持ち回し。
ウェブサーバに載せて、パソコンからなら問題なく動作するのですが、
携帯(FOMA)からだとセッション値が持ち運べていないようです。
上記の2の同一ファイルへの送信は
・フォームアクションでSID付加
$login = "./login.php?SID";
<FORM ACTION="<?=$login?>" METHOD=POST>
・HIDDENでセッションID送信
$ssna = session_name();
$ssid = session_id();
<INPUT TYPE=hidden NAME="<?=$ssna?>" value="<?=$ssid?>">
の両方を試してみましたがダメでした。
セッションを使用する場合は全てのファイルでセッションIDを
GET(POST)受け取りをするしかないんでしょうか?
尚、クッキー・register_global共にOffでも、パソコンからは動作しました。
0155nobodyさん
2006/08/05(土) 04:28:33ID:???use_trans_sid でぐぐって吉。
use_cookieはon、
use_only_cookieの欄はなし。
なのに
header("Location:./nextfail.php?SID");
の文末SIDを受け取ってくれない・・・。
echo SID;
で表示するとちゃんとPHPSESSID=IDの形で収まってるし、
HIDDEN属性のは受け取ってくれてる。
どうやらSIDが展開されないのが問題みたいです・・・。
0157nobodyさん
2006/08/05(土) 06:08:06ID:???因みにLocationは絶対パスを指定するのがHTTPのスペック
)ヽ、_,,,..._ ヽ、_, げえッ───────!!!
iー-、::_: `、ゝ_,,- ノ ( ) 、 )
ノ::`ー_-_ノ ノ ノ_,-"イ / ` 、ノ `i ( l
,-、 |::::.ヽ _。ヽ:: /_。フ' |ノ ヽ、 i、 ノ
|6`i/:::. ,,-.―'' /i|.ー-、. |
ヽ ::: i :: ⌒ : |
ヽ`l | :: /ニ`i /
`|:. ヽ、 i_,,,、/ / ,へ___
,|:::._ヽ___/ _//`ー--、ニ=--―,
| ̄ ̄ ̄ ̄||| ̄| / / / __  ̄ ̄`¬
 ̄ ̄ ̄ ̄ ̄○ ̄ ̄ヽ | // / /「""の中で定数が展開されるわけないだろ 」
6時間悩んだ結果が・・・。
>>155様
>>157様
大変お世話になりました。
PHPファイル計300個全修正してきます・・・。
0159nobodyさん
2006/08/05(土) 10:29:32ID:hzy3ErJp今度からは関数化しとけよ
0160nobodyさん
2006/08/05(土) 11:03:07ID:???$hoge = ""; とやっても、($hoge == null) はtrueとなるようですが。
0161nobodyさん
2006/08/05(土) 11:24:09ID:???0163160
2006/08/05(土) 12:17:40ID:???is_null()をつかって、nullか空文字どっちでも条件trueで良い場合は
if ($hoge == null) もしくは if ($hoge == "")
で判定しちゃって大丈夫ですか?
0165nobodyさん
2006/08/05(土) 13:53:22ID:???0166nobodyさん
2006/08/05(土) 14:31:27ID:???さすがに標準ではないぞ
$_SEVER['HTTP_USER_AGENT'] の文字列を解析するのがいいのではないだろうか
半角文字以外すべて「?」になる文字化けしてしまいます。
phpファイル自体はsift_jisです。
mb_convert_variablesでsift_jis()
で変換しても同じ文字化けでした。
日本語化する
mb_language("ja");
を外すと「・」に変換されます。
何が原因なのでしょう?
0170161
2006/08/07(月) 08:19:36ID:???(「210.153.84.12」なら最後の「.12」を削って210.153.84という値を取得したい)
場合によって1〜3桁になるので桁指定で削れません。
$end_ip = strrchr($_SERVER["REMOTE_ADDR"],".");
$end_ip_num = strlen($end_ip);
$ip3 = substr_replace($_SERVER["REMOTE_ADDR"],"",-1,$end_ip_num);
こんな感じで、非常に周りくどいですが
strrchrで文字列を抜き出し、桁を数えてから削ろうとしてみました。
しかしstrrchrの戻り値が、echoなどで表示は出来るのですが変数に収めることがでいません。
何かいい方法はありませんか?
0172nobodyさん
2006/08/07(月) 12:27:36ID:???正規表現は?
正規表現 IP - Google 検索
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-18,GGGL:ja&q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+IP
0175nobodyさん
2006/08/07(月) 13:41:46ID:???0176nobodyさん
2006/08/07(月) 13:46:33ID:???ちなみにそういうのをやるときは、関数を作った方が便利だぞ。
function my_addr_cut ($addr){
$ar = explode('.' $addr);
if (count($ar) > 3){
return $ar[0].'.'.$ar[1].'.'.$ar[2];
}
}
とやっておいて、
$ip3 = my_addr_cut( $_SERVER['REMOTE_ADDR'] );
0177nobodyさん
2006/08/07(月) 20:38:09ID:OuBXfFXq0179nobodyさん
2006/08/08(火) 02:03:26ID:???0180nobodyさん
2006/08/08(火) 23:54:31ID:???0182nobodyさん
2006/08/09(水) 09:58:34ID:???0184nobodyさん
2006/08/09(水) 10:40:30ID:???0185nobodyさん
2006/08/09(水) 10:50:53ID:???わかりやすく説明してください。
0186nobodyさん
2006/08/09(水) 10:54:11ID:???0187nobodyさん
2006/08/09(水) 11:02:15ID:???よほど、テクニカルなことをしない限りは違いはあまりない
ただ、ある状態になった後の処理を一箇所にまとめられるという
利点が try catch にはある
if (!$this->foo()) {
$this->printError();
return false;
}
if (!$this->bar()) {
$this->printError();
return false;
}
こんなのが、
try {
$this->foo();
$this->bar();
} catch (Exception $e) {
$this->printError();
return false;
}
になる
これ以上の使い方をしたいなら、自分で使って慣れるほうがいい
0188185
2006/08/09(水) 11:10:53ID:???そんなに褒められると照れますよ。
>>187
if文で書くよりもすっきりした感じになりますね。でも、それ以外には
例外処理の利点がいまいちはっきりしないので、慣れるまでもっと自分
で使ってみることにします。
レスありがとうございました。
0189nobodyさん
2006/08/10(木) 16:02:56ID:???例えば実数のルート(平方根)を求める関数を作ることを考えてみろ。
引数はdouble, 返値もdoubleにしたいはずだ。
しかしその関数に-5とか入れたらどうなる?エラーを起こしたことを知らせるしかない。
下手にdoubleで答えも返せないし、しょうがなく投げるのが例外で、
それを捉えるのがtry catchだ。
つまり、if elseとtry catchはまったくの別物。
0190nobodyさん
2006/08/10(木) 16:14:34ID:???float sqrt ( float arg )
なんてのがあったな。
if ($foo >= 0){
$bar = sqrt($foo);
}else{
$bar = 0;
echo "error";
}
とするか
try{
$bar = sqrt($foo);
}catch(Exception $e){
$bar = 0;
echo "error";
}
だな。見た目は似てるけどtry catchの方は一回2行目でエラーが発生してて
それを無理矢理正常なふりをしようってのがcatch文。
0191185
2006/08/10(木) 23:24:47ID:???つまりは、あらかじめ値を検査して値が正しい場合に実行するとき
に用いるのがif文。値が正しいかはわからないけど、とりあえず実
行して、うまくいかないときの処理を用意しておくのが例外処理。
・・・というように理解しました。多分これでいいはず。
おふたりとも、レスありがとうございました。
0192nobodyさん
2006/08/11(金) 10:09:32ID:???>とりあえず実行して、うまくいかないときの処理を用意しておくのが例外処理
ちょっと補足。
例外はあくまで例外が起きたときに使うもの。 異常が発生したときに起きるのが例外。
ファイルやらネットワーク関係の処理では、機械やユーザや相手の都合次第で
正常終了したり異常終了になったりするわけで、そういった異常を拾うもの。
書きやすいからって多用してると、想定内のエラーなのか、予期しないエラーなのか
判別できなくなるから止めたほうがいい。 普通、例外の復帰って重いし。 (phpの実装はしらんが)
まーphpだったらそんなに気にする必要は出てこないだろうが、他人にソース見られたときに
「うわーこいつアホだな」 と思われないように、頭の片隅に入れといて。
0193_
2006/08/11(金) 18:12:39ID:abMDzR7z×時間後にプログラムを実行したり
×時から×時間ごとにプログラムを実行する方法
ってあるでしょうか?
Imageタグを呼び出す方法が良いかと思うのですが
その先が分かりません
0194nobodyさん
2006/08/11(金) 18:40:15ID:???それは、phpの範疇ではありません。
それぞれの環境が持っている、スケジューラーやデーモンを利用するしか
ありません。
linux 系の場合は crontab というデーモンでできます。
0195_
2006/08/11(金) 19:10:07ID:abMDzR7z一応
http://www.bitfolge.de/pseudocron-en.html
という所にあるのが使えるかなと思ったんですが
PHPに関して初心者中の初心者でどのように利用するかわかりません
英語なので翻訳ソフト使ってり読んだりしましたが
具体的に書いてなかったような気がします。
もしこれがcronと同じ役割を果たせるのであれば使い方
大まかでもいいので教えて欲しいです。
0196nobodyさん
2006/08/11(金) 19:15:30ID:???crontab 自体は設定にそって実行ファイルを動かすだけ
まずは、crontab 自体の設定の仕方を覚えた方がいい
そのサイトにあるようなものは別にいらない
普通に crontab を使えばいい
0197_
2006/08/11(金) 19:19:46ID:abMDzR7z良くわからないのですが
contrab の使用を禁止しているレンタルサーバーも結構あるようなので
できれば使いたくなかったのですが
現実としてどうなんでしょうか?
教えてください
0198_
2006/08/11(金) 19:21:28ID:abMDzR7z良くわからないのですが
contrab の使用を禁止しているレンタルサーバーも結構あるようなので
できれば使いたくなかったのですが
現実としてどうなんでしょうか?
教えてください
0199_
2006/08/11(金) 19:22:52ID:abMDzR7z表示がでて二重投稿になってしまいました
すみません
0200nobodyさん
2006/08/11(金) 19:32:10ID:???現実としては、PHP単体では無理
>>195 のやつは、誰かがアクセスするたびに実行されるだけなので
特定の時間後にきっちに動かすというのは無理
かなり、アバウトでいいなら pseudo-cron でもいいけど
0201nobodyさん
2006/08/11(金) 19:36:58ID:???簡単な使い方ならここに乗っている
とりあえず、使ってみろ
このサイトに書かれていることも分からないのなら、
もっとはじめから学んだほうが良い
http://phpspot.org/blog/archives/2005/11/croncronphp_pse.html
0202_
2006/08/11(金) 20:01:50ID:abMDzR7z>>200
イメージタグで呼び出してやるので実際に時間のずれがあるのはわかります
>>201
PHPSPOTにも載ってたんですね
そこに書いてある流れはだいたい分かるんですが
/*config section*/
以外の部分で何を設定すればいいのかなどわかりません
もしかしたら具体的な内容になってきたかもしれません。すみませn
0204_
2006/08/12(土) 23:27:19ID:wVHES/N8そこのサイトに書かれてる事はわかっても、
そこのサイトに書かれてる内容だけで
全部理解できなかったと言うことです
0205nobodyさん
2006/08/16(水) 23:13:07ID:???ちょっとパニクってきました。
アドバイスいただければ嬉しいです。
・流れ
入力画面→確認画面→完了画面と遷移します。
入力画面で入力したデータをPOSTで確認画面に、確認画面から完了画面へは
hiddenフィールドで渡します。(完了画面でDB登録)
入力修正のときは、確認画面のhiddenフィールドに入力データを入れ、入力画面にデータを戻します。
(入力画面では、そのデータを受け、初期表示に利用)
良く分からないのは、
・hiddenフィールドにもhtmlspecialcharsをかました方が良いんでしょうか?
例えば、<input type="hidden" name="memo" value="<?=htmlspecialchars($memo)?>">
phpのマニュアルでは、セキュリティ上、hiddenにかましているようなのですが。。。
・その場合、hiddenから受け取ったデータはhtmlエンティティ化されますが、
そのデータをそのままDBに登録するのはどうなんでしょうか?
例えば、&などは「&」の形で登録されちゃいますが。。。
いろいろ調べてみましたが、DB登録時には、なるべく素のデータを登録するのが、
望ましいという記事もあり、迷っています。
それとも、hiddenでデータ受け渡しするんでなく、セッションを使うべきなのでしょうか?
0206205
2006/08/16(水) 23:20:10ID:???&などは「&」の形で登録されちゃいます・・・のところは、
&などは「アンド記号amp;」
という意味です。
0208205
2006/08/17(木) 00:44:43ID:???どうもありがとございます。
簡単なプログラムで確認したところ、何事もなく復元されていました。
どうも、頭の中でごちゃごちゃ考えすぎていたようです。
恥ずかしい。。。
ありがとうございました。
しかし、PHPマニュアルのそれらしいところを見たのですが
POST送信時に復号される話は見つかりませんでした。
私の探し方が悪いのでしょうか?
0210nobodyさん
2006/08/17(木) 21:15:19ID:???PHP+MySQLを使用し、登録者以外からの書込み拒否する為
名前とパスワードが一致すれば、書込みできるようにしたいのですが、
名前とパスが正しくても、書込みできません。
現在の設定は
MySQLのテーブルに、投稿者の名前を記録するフィールド名=name
投稿者のパスワードを記録するフィールド名=pass と設定した状態で
投稿者の名前=NAME、投稿者のパスワード=PASS、としてPOST属性で送信し
以下を受取側のファイルの一部にしてパスワード確認しています。
//↓から
extract($_POST);
mysql_connect('localhost','root','HOSTPASS');
mysql_select_db('TABLE');
$sql= "select * from FIELD where name = $NAME";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$PASS = $row[pass];
if($pass != $PASS){
echo "パスワードが違います。";
}
else{
以下書込みプログラムが続く
//ここまでが受取側の一部
どこがが間違っているのでしょうか?
ご指導宜しくお願いします <(_ _)>
0211nobodyさん
2006/08/17(木) 22:18:29ID:???すばらしく、ザルなスクリプトだが、サンプルという好意的に解釈しよう
まずは、問題を切り分けろ
1.$PASS には期待している文字列が入っているか
2.$row['pass'] には本当に期待している文字列が格納されているか?
3.仮に $row['pass'] = $PASS; として書き込みプログラムが動くか
1.が駄目なときは前の入力画面がおかしい
パラメータ名などを確認
2.DB に本当にレコードが存在するか確認
ない場合は SQL 文が間違っている可能性がある
直接 MySQL のクライアントを立ち上げて試してみる
3.分岐がちゃんと動いているか確認
動いているときは、書き込みプログラムがおかしい
このどれもが期待通りに動いているのなら
もう一度書き込んで見てくれ
そのときは、本当に使っているソースを貼って
DB の接続に必要なパラメータは消していいから
0212nobodyさん
2006/08/17(木) 22:20:04ID:U0Bacn/nあ、悪い。間違えた
誤)
3.仮に $row['pass'] = $PASS; として書き込みプログラムが動くか
正)
3.仮に $row['pass'] = $pass; として書き込みプログラムが動くか
0213nobodyさん
2006/08/18(金) 06:54:21ID:???nameって予約語じゃなかったっけ、予約語ならバッククォート
あと値もクォートしましょう
where `name` = '$NAME'
0214210
2006/08/18(金) 10:20:32ID:???詳しい説明ありがとうございました。
誤作動の原因としては、
1のパラメータの送信値が間違っていたことです。( ´,_ゝ`)フッ
nameを送るつもりがidを送信していました・・・orz
ここを手直ししたら、自分的には思った通り動きました。
ところで、ベテランの方に質問なんですが、
スクリプト作成の経験がまだ半月位なので、
今回のようにデバックでメチャメチャ頭抱えてます。
問題発生時の解決法ののポイントとしては、
>まずは、問題を切り分けろ
とありましたが、その他に「コレに気をつけろ!!」ってのありますか?
ありましたら、またご指導お願いします <(_ _)>
>>213
レスありがとうございます。
0215nobodyさん
2006/08/18(金) 10:52:18ID:???気をつけろというのは、たくさんあるが、
ある程度までは try and error で慣れるほうがいい
デバッグで使えるのは
var_dump();
print_r();
など、特に var_dump() は型も一緒に表示するから初心者は特に重宝するだろう
机上デバッグの癖を付けるのはいいことだとは思うが、
それは最低限の知識と経験がないと、不必要に時間をかけるだけだろう
そこそこ慣れて xdebug というような PHP のデバッガーを使うようになると
さらに楽になる
0216nobodyさん
2006/08/18(金) 13:03:44ID:???結論としては、
「細かいこと考えずにhiddenにもエスケープ関数かましといててOK!」
ってこと??
それを書かないと他の初心者の参考にならないよ。
0217nobodyさん
2006/08/18(金) 19:33:30ID:???これらはどこで処理されているのですか??
0218_
2006/08/18(金) 21:36:53ID:qJB64gmdPHPやPerlはサーバーで処理され
Javascriptは簡単に言うとあなたのPCで処理されるので
Javascriptを利用する場合はPC(携帯)の環境により実行結果が異なります
0219nobodyさん
2006/08/18(金) 21:42:42ID:???わかりやすく説明していただけませんか??
0222nobodyさん
2006/08/18(金) 22:25:23ID:0rSuveavクライアントサイドは、ユーザー側がブラウザやマシンの機能で処理する情報って
ことだとオレは、思いこんでるけどまっがってるかな?
JAVA,CGI,PHPとかは、サーバーサイド。
html,JavaScript,Flashアクションスクリプトとかは、クライアントサイド。
0223nobodyさん
2006/08/18(金) 22:42:39ID:???Javascriptは簡単に言うとあなたのPCで処理されるので
Javascriptを利用する場合はPC(携帯)の環境により実行結果が異なります
0224210
2006/08/19(土) 08:46:56ID:???少しレス遅くなり、スマソ
var_dump();は初めて見た関数だったので、PHPエディター早速でF1しました。
便利そうですね
でも、print_r();がF1で出てこなかったのはなぜだろう?
デバッガーとかの存在も初めて知ったよwww
xdebugもメチャ便利そう!!
いい情報に感謝します。
0225nobodyさん
2006/08/19(土) 09:40:45ID:???http://pc8.2ch.net/test/read.cgi/php/1144504375/224,227,228 とかで釣りしてるんで
真面目に答えなくてもいいよ
0226nobodyさん
2006/08/19(土) 19:52:08ID:rwxCztmBfunction host_chk(){
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host == $addr){
$host = @gethostbyaddr($addr);
}
$deny = split(",", deny);
while(list(,$value) = each($deny)){
$value = str_replace("*",".*",$value);
if(eregi($value,$host) || eregi($value,$addr)){
error("アクセス不可");
}
}
}
0227nobodyさん
2006/08/19(土) 20:19:51ID:???0228nobodyさん
2006/08/19(土) 20:32:09ID:???それで制限らしきところから弄れるかなと思いまして
0229208
2006/08/19(土) 22:14:54ID:???すみません。仕事でバタバタしていました。
結論としては、
「こまかいこと考えずに、hiddenにもエスケープ関数かませてOK」
だと思います。(むしろかませるべき。)
遷移先にて、$_POSTで受けた値を確認しましたが、
htmlspecialcharsでエスケープした値が、自動的にもとの値に
復元されていました。
209さんが言うように、PHPの仕様だと思います。
(マニュアルの「第 56章PHP と HTML」の「1. フォームから、もしくは URL から値を渡す場合には・・・」を
読むと、そういうニュアンスのことが少し書かれていました。)
0230nobodyさん
2006/08/20(日) 02:52:02ID:???phpがやってくれるのは%26→&の変換
0231nobodyさん
2006/08/20(日) 09:31:17ID:???印刷用ページ編集機能をPHPで実現するにはどのように書いたら良いでしょうか?
HTMLのフォームでデータの受け渡しをして、PHPファイルでデータを蓄積するイメージです。
考え方でも良いのでヒント頂けないでしょうか・・。
0233nobodyさん
2006/08/20(日) 12:09:22ID:???0234nobodyさん
2006/08/21(月) 00:14:46ID:OxXNX8LDつまりe-WordsみたいにWeb表示用と印刷用の2種類の表示がしたいってこと?
ただ単に内容(説明文等)をなんでもいいからファイルに記述して、
Web表示用と印刷表示用の二つのPHPファイルから読み出せるようにすればいいんじゃないの?
0235nobodyさん
2006/08/21(月) 01:04:26ID:???0236nobodyさん
2006/08/21(月) 01:17:51ID:???Web表示用は別のデータベース関係のCGIで処理を行っているので、その内部にFORMタグを設置、
それを印刷表示用のPHPでデータを受け取る形にしたいんです。
受け取った時の、クッキーを用いてデータを蓄積させていく方法をご教授いただけないでしょうか?
内容が書き換えられてしまうんです。
<form action="test.php">
<input type="hidden" name="data1" value="$data[1]">
<input type="hidden" name="data2" value="$data[2]">
<input type="submit" name="submit" value="追加">
</form>
↑$data[1],[2]の部分はCGIの処理でデータが入ります。
↓PHP側はデータを受け取るのですが、クッキー&蓄積で戸惑ってます。
<?php print $data1; ?>
0237231
2006/08/21(月) 01:20:44ID:???http://cgiroom.nu/list/database/index.html
こちらの検索専用データベースを使っています。
0238nobodyさん
2006/08/21(月) 10:54:05ID:OxXNX8LDフォームでデータ受け渡しして表示するだけじゃないの?
0239nobodyさん
2006/08/21(月) 11:19:41ID:???if($a != ""){以下を実行する}
と
if($a <> ""){以下を実行する}
この2つは、「$aが空白ならば、以下を実行する」でいいよね?
あと、
if($a != $b){以下を実行する}
コレは、「$aの値と$bの値が同じならば、以下を実行する」だよね?
上の分岐文が3つとも、オレの期待した分岐になってくれないんで
誰か助けて下さい。
ちなみに、「$a、$b、$c、$dの値が全部Eとなっている時」に
$a = $c;
$b = $d;
echo "$a";
echo "$b";
if($a != $b){
echo "$a";
echo "$b";
echo "以下を実行する";
}
とテストしたら
「EEEE以下を実行する」
と表示されてしまう
オレ間違ってるのかな???
0241nobodyさん
2006/08/21(月) 12:44:31ID:???>この2つは、「$aが空白ならば、以下を実行する」
アホ。真逆だ。「$aが空白ではないならば」だ。
>$aの値と$bの値が同じならば、
これも真逆。同じ「でない」ならば、だ。
基礎から勉強し直せウンコくん。
0242nobodyさん
2006/08/21(月) 12:52:42ID:???でもはさんでみたらw
0243239
2006/08/21(月) 13:38:29ID:???MySQLから読み込んだデータなんだけど、
MySQLの場合も改行がくっつく事あるのですか?
データ記録の仕方では、改行がついてないとは思うのですが・・・
>>241
>アホ。真逆だ。「$aが空白ではないならば」だ。
まったくその通り・・・orz
239での書き込みがミスですwww
糞まみれのオレだけど
「$aが空白ではないならば」に読み替えて、
教えてくれ〜
0244239
2006/08/21(月) 13:39:11ID:???もう少しだけ、239を補足
239のスクリプトは、パスワード識別の為の部分なんですが、
$cはフォームで書込みされ、POST属性で受け取ったパスの値、
$dはMySQLに記録されいた値を呼び出したパスの値として
「$c、$dの値が両方Eとなっている時」に
$a = $c;
$b = $d;
if($a == ""){
echo "パスを入力して下さい。"
exit;
}
echo "$a";
echo "$b";
if($a != $b){
echo "$a";
echo "$b";
echo "パスが違います。";
exit;
}
以下、パスが認証されたとして、メインプログラム実行
とテストすると「EEEEパスが違います。」と表示され、
「EEEE」と表示されてる事から、
if($a != $b)が機能してないと推測したんだけど
何故???誰か助けてぇぇぇぇ
0245nobodyさん
2006/08/21(月) 13:48:34ID:???0247nobodyさん
2006/08/21(月) 13:53:33ID:???0248nobodyさん
2006/08/21(月) 16:09:31ID:???>と表示されてしまう
そのプログラムなら、その動作結果で正しいわけだが。
つまりお前が間違っている。
0249nobodyさん
2006/08/21(月) 16:58:14ID:OxXNX8LD0250239
2006/08/21(月) 18:13:38ID:???オレが間違っているっていう事は、認識しているのだが
どう間違っているのかがわかっていないオレ・・・orz
オレの頭の中の思考もコメントで付け足しするので
どこでオレの思考回路が間違っているのか教えて欲しい
$cはフォームで書込みされ、POST属性で受け取ったパスの値、
$dはMySQLに記録されいた値を呼び出したパスの値として
「$c、$dの値が両方Eとなっている時」に
$a = $c; //$cはEなので、$aの値はEになる
$b = $d; //$dはEなので、$bの値はEになる
if($a == ""){ //$aの値はEだから、空白ではない
echo "パスを入力して下さい。" //だからここは回避される
exit; //ここは今は関係ない
} //ここも今は関係ない
echo "$a"; //間違ってるみたいだから$aを表示、$aはEになってる
echo "$b"; //間違ってるみたいだから$bを表示、$bはEになってる
if($a != $b){ //$a、$bの値は共にEだから、ここから回避されるはず
echo "$a"; //Eと表示された・・・工エエェ(´Д`)ェエエ工
echo "$b"; //Eと表示された・・・工エエェ(´Д`)ェエエ工
echo "パスが違います。"; //表示された・・・工エエェ(´Д`)ェエエ工
exit; //直前の3行がEと表示されたから、メインプログラムに行かないのは分かる
}
以下、パスが認証されたとして、メインプログラム実行 //本当はここになるはずなのに・・・ショボン
実行結果は「EEEEパスが違います。」となる。
上のスクリプトでオレが期待しているのは
「EEメインプログラムを実行」と表示されることなのに・・・
0251nobodyさん
2006/08/21(月) 18:25:53ID:???もしそのコードでそういう結果になるのなら、
$aと$bの中身が違うとしか考えられないわけだが。
if($a != $b)
を
if($a !== $b)
にして試してみれば?
0252nobodyさん
2006/08/21(月) 18:31:48ID:???0253nobodyさん
2006/08/21(月) 19:41:21ID:OxXNX8LD0254239
2006/08/21(月) 20:10:01ID:???レス遅くなってスマソ、
243の後でPHPマニュアル見たけれど、初心者なので
var_dump()の解説見たけど、理解できなかったんだよ・・・orz
それで後回しにしてしまったら、忘れてた。
今から他のサイトも見て検証してみる。
0256nobodyさん
2006/08/21(月) 20:34:32ID:LbhS4bpH広告を出してきているのでしょうか。
恐らくJavascriptだけでは、不可能だと思うので、PHPなども使用していると思うのですが、PHPが動かない
フリーサーバー等でも
サイトテーマにあった広告を出せるのが不思議でしょうがいないです。
ご存知の方いらっしゃいましたら教えてください。お願いします。
0257nobodyさん
2006/08/21(月) 20:39:58ID:???GoogleAdsense(に限らず配信型広告は大方)JavaScriptで、Googleのサーバにある広告データをもらってきている。
つまりプログラムはGoogleのサーバで動いているということだ。
0258239
2006/08/21(月) 20:57:00ID:???一部オレの勘違いがあった^^;
250では、$a = $c と置き換えていたが、$cをそのまま、突っ込んでいたよ
でも、影響はないと思われたので
var_dump($b, $c, $d);
とやってみたら
string(4) "0000" string(4) "0000" string(4) "0000"
と出たよ
よくわからんけどどう?
0260nobodyさん
2006/08/21(月) 21:29:56ID:???var_dump($b, $c, $d);
なんで$aが無いのか・・素直じゃないねぇ
てかプログラムやるの無理じゃない?
0261nobodyさん
2006/08/21(月) 21:48:21ID:LbhS4bpHありがとーです^^
見てもわからないんですよね。グーグル側のjsファイルを見てもjsスクリプトしか
記述してないんです。
こちら側のJSファイル(グーグルから貼り付けるように言われたJSファイル)を ME.js
グーグル側のjsファイルを Google.js と仮定します。
ME.js は Google.js を読み込むものである。
Google.js には DBと連携させる何かしらのPHPが書かれている。
ME.jsを読み込んだこちらのファイルは、もしPHPが動かないサーバーでも、
結局はグーグル側でPHPを動作させてこちら側のJSに結果を渡しているから
動くんですよ
と言う解釈で宜しいでしょうか。
0264nobodyさん
2006/08/22(火) 19:19:23ID:???PHP5の入門書で勉強し始めたんだけど、本番環境がPHP4だから恐ろしい。
気をつけるべき事とかあれば教えてください。
0265nobodyさん
2006/08/22(火) 20:16:12ID:???オブジェクト指向構文はPHP5から追加されたものが非常に多い
関数の引数が違うこともある
とりあえず、いきなり本番環境は止めてくれ。
ローカルでPHPのテスト出来る環境作って、そこでテストしろ
0266nobodyさん
2006/08/22(火) 20:33:37ID:???ありがとー。
引数の違いがあるのは痛いorz
テスト環境は自宅鯖で他人の作ったPHP動かす為に5.04が入ってるので大丈夫?です。
それ以降だと動かないモノがあるんで・・・
4と5って両方いれるの無理そうだし入れ替えるわけにもいかないし
困ったもんだ。
0267nobodyさん
2006/08/22(火) 23:48:12ID:???5メインにしたいけどなかなかそうもいかないのが辛い。
0268nobodyさん
2006/08/23(水) 16:09:55ID:???0269nobodyさん
2006/08/23(水) 22:31:52ID:???027042歳
2006/08/31(木) 03:53:00ID:Z0sApiUaを使って予定表を作りました。便利でキレイなんですが、
これのデータである
/data/200608.dat
を読み込み 今日の内容だけを表示する 超簡単(そうな)プログラムがかけません。
openfile();を使ったらいいというのだけがわかるんです。
dat の中身は
ちなみに
$maxno,$ctgno,$stamp,$putm,$putd,$week,$puthou,$putmin,$tit,$com,$timeflag,$settim,
となっており、
4,1,-1,08,16,3,,,お盆休み,,1,1150783667,
というようになっています。
最初がIDで、カテゴリーナンバー、次はログ並べ替え用スタンプ で、月、日、曜日、時間、分、タイトル、内容、というのはわかるんです。
日付とタイトルだけを抜き出して表示するにはどう書いたらいいんでしょうか?
絶対できそうだと思ったけど、脳がパンクしました。
027242歳
2006/08/31(木) 04:07:33ID:Z0sApiUaありがとうございます。
http://www.scollabo.com/banban/php/php_05.html#explode
とか見てみましたが、まったくわからないというか…。
どっかに参考になるようなサイトだけでもあったら教えていただけたら。
お金払います!って気持ちなんですけど。
027342歳
2006/08/31(木) 04:14:09ID:Z0sApiUafopen() でした。
027442歳
2006/08/31(木) 04:37:09ID:???お礼は少しですが必ずさせていただきます。
0276nobodyさん
2006/08/31(木) 07:21:44ID:at/JVgVZ,をキーにsplitで区切った配列の該当要素を使うだけ
http://から始まる絶対パスを抽出する方法ってないですか?
realpathだとhttpからは無理ですし・・・。
explodeでケツから/で割って頭をhttp://と交換する方法も考えたんですが、
どんな階層のディレクトリに置かれても機能するようにしたいので、
出来ればそれ以外で何かあればお願いします。
027842歳
2006/08/31(木) 12:41:18ID:???http://jp.php.net/split
ですが、これの例文みたいなのはどっかにないですか?
重ね重ねすみません。 このPHPのサイトは私にとってほとんど意味がわからないのです。
簡単なはずなんですけど。
0279nobodyさん
2006/08/31(木) 13:45:55ID:???0280nobodyさん
2006/08/31(木) 13:53:23ID:???$data = "a,b,c,";
$line = explode(",", $data);
foreach($line as $key => $value) print('$line['.$key.'] == '.$value.'<br>');
これで分かる?分かったら今凄く貧乏なのでお金ください。
028242歳
2006/08/31(木) 14:20:51ID:???なんてのがあるんですか? でもデータは /data/200608.dat なので
Loadtextfile()
とかで呼び出して、
if($today==date());
で検索をかけて… というようなことを考えて
すみません。 ムリです。 誰かメールください。 マジに払います(そんな大金は払えないが)。
これがわかったら、今後やっていけるような気がする。
ムリか。
028442歳
2006/08/31(木) 14:56:50ID:???で、最初に date() で日にちを 2006 と8に分けて、そのデータがあって、
しかも 15日だったら 今日のが表示される… って
そういう条件が2つあると無理って感じで・
あきらめたほうがいいだろうか。
0285nobodyさん
2006/08/31(木) 15:00:45ID:???028642歳
2006/08/31(木) 15:01:18ID:???については ゲットしました!! わかった〜 うれし〜。というのがあります。
ありがとうございます。 ゴミと言われてもしかたない。
028742歳
2006/08/31(木) 15:04:48ID:???0288nobodyさん
2006/08/31(木) 15:05:18ID:???ファイルから読み込んで変数にぶちこむ部分を分かりやすいように改変してるだけでしょうw
0289nobodyさん
2006/08/31(木) 15:06:04ID:???奇遇だな、俺も知ってるが42歳じゃない
好きだったんだけど苗字かわっちゃった
>>284 >>286
何を言いたいのか理解に苦しむ
とりあえず
> 日付とタイトルだけを抜き出して表示するにはどう書いたらいいんでしょうか?
これはできたってことか?
029042歳>>271
2006/08/31(木) 15:08:12ID:???そうです。それはできそうだなと思いましたが…。
誰か全部書いてください。 というか、自分でやりたいような気もするが、
ここで挫折したら、全部挫折しそうだ。
そもそもムリだったんだろうか。
0291nobodyさん
2006/08/31(木) 15:10:29ID:???それを挫折とは呼ばないのか?w
029242歳>>271
2006/08/31(木) 15:11:42ID:???0293nobodyさん
2006/08/31(木) 15:12:23ID:???とってもプラス思考なんですね。
029542歳>>271
2006/08/31(木) 15:26:02ID:???気になってたまりません。 このスレが。 仕事手につかん。
0296nobodyさん
2006/08/31(木) 15:26:51ID:???1) まずdate()から年と月を取得する
2) 該当するファイル(例:dat/200608.dat)が存在するかチェックする
3) あったらfgetcsv()でも使って配列$dataにでもぶち込む
4) $dataをループ処理でもして日付とタイトルを書き出す
5) ループしてる最中に今日の日付にマッチするのがあったら
他の変数($todayData)にでも格納しておく
6) 格納しておいた今日のデータ($todayData)を書き出す
やりたいことはこういうことか?
一つずつクリアしてゆけ、さもなくば好きなだけ挫折しれ
あとは知らない
029742歳>>271
2006/08/31(木) 15:31:46ID:???そういうことです。 意味は完全にわかるけど、書けるだろうか。
こんな簡単なサンプルプログラムがない。 サンプル命できたもので、基本的にはわかってないなと昨日から実感しとります。
1)の date() から年と月を取得するところから、
$Month=date(M); とかでいいんでしょうか?
そういうレベルなんですけど。
これは私にはムリだと思います。
0298nobodyさん
2006/08/31(木) 15:37:16ID:???だからそれを一つずつ試しながらクリアしていけばいいじゃん
>これは私にはムリだと思います。
そう思うならあきらめなさい
029942歳>>271
2006/08/31(木) 15:38:24ID:???0300nobodyさん
2006/08/31(木) 15:51:02ID:ntBbHdNQhttp://www.cgis.biz/script_web_cart/
ここで配布されているショッピングカートのphpを改造中で、
販売データをcsvに書き出す処理があるのですが、
購入商品の数だけcsvの行が増える仕様になっています。
1度の注文につき、どれだけの数の商品を購入しようが、
1行だけにしたいのです。
(販売商品データはcsvでは必要がないため、書き出さないようにしています)
多分この辺が怪しいと思うのですが...
「data_sell.php」のダウンロードcsvヘッダーの設定のあとの行から
$csv_head = mb_convert_encoding($csv_head,'SJIS','EUC-JP');
echo $csv_head;
for($i = 0; $i < count($log_all); $i++){
$log_array = split(",",$log_all[$i]);
for($j = 0; $j < count($log_all_i); $j++){
$log_i_array = split(",",$log_all_i[$j]);
if($log_array[0] == $log_i_array[0]){
$log_all[$i] = rtrim($log_all[$i]);
$log = $log_all[$i] . $log_all_i[$j];
$log = mb_convert_encoding($log,'SJIS','EUC-JP');
echo $log;
}
このどれかをいじればいいのじゃないかと思っているのですがどうでしょうか。
そんな単純じゃないだろうとは思うのですが、誰かお願いします。
030142歳>>271
2006/08/31(木) 16:10:34ID:???私だったらCSVデータをアクセスかなんかで引っ張って加工したらいいんじゃないかと思うんですけど。
エクセルでもいいけど。
ごめん。超初心者が何を言う。
0302nobodyさん
2006/08/31(木) 16:17:38ID:ikYjbt78PHPをインストールしてapacheを起動するとエラーになってしまいます。
Cannot load C:/php/sapi/php4apache2.dll into server: \x8ew\x92\xe8
\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa
\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B
C:/php/sapi/の下にphp4apache2.dll はあるんですがなんででしょうか?
ちなみに windowsXP apache2.2.3 PHP4.4.4 です。
すいませんが、わかる方おしえてください。
0303nobodyさん
2006/08/31(木) 16:36:05ID:???このスレで質問してる部分だけでいいならアルバイトって形で代行しても良いですよ^ω^
というか金ないのでやりたいですw
0305nobodyさん
2006/08/31(木) 16:44:15ID:ikYjbt78すいません。解決しました。
PHP5 に変更して、apache2.2 用のDLLをダウンロードして解決しました。
apache2.2 用のDLLをダウンロードしていれないとだめみたいです。
1日、なーんにもできなかった・・・・
0307nobodyさん
2006/08/31(木) 17:30:49ID:???031042歳 >>271
2006/08/31(木) 18:20:05ID:???0311nobodyさん
2006/08/31(木) 20:07:16ID:???これ以上ログ流すのやめてもらえませんか?^^
それとこれだけいろんな人が教えてくれたのに「自分でやるのか…。」は失礼だと思いますよ
0312nobodyさん
2006/08/31(木) 20:49:23ID:???0314nobodyさん
2006/08/31(木) 22:19:00ID:???031542歳 >>271
2006/08/31(木) 22:34:27ID:Z0sApiUa031742歳
2006/09/01(金) 00:24:57ID:+wXqiG2uまた教えてください。 こちらのログも決してムダにせず、私の血となり肉となります。
早速今夜も眠れない。
0318nobodyさん
2006/09/01(金) 00:58:26ID:???0319nobodyさん
2006/09/01(金) 03:17:12ID:???慌ててメアド欄を消してももう遅いよwww
お前は警察に逮捕されるだろう。
まあ、しょぼいストーカーか、陰湿な嫌がらせか、とにかくタイーホだねwww
もしタイーホされたくなければ、今すぐ自分の実名を名乗って謝罪しといたほうがいいんじゃない?
0320nobodyさん
2006/09/01(金) 03:36:54ID:???どうでもいいからもう42関係のレスやめろよ。
032142歳
2006/09/01(金) 14:17:34ID:+wXqiG2uですか? 知りませんでした。 これも役立ちそうです。 ありがとうございます。
0323nobodyさん
2006/09/05(火) 18:19:25ID:???$myURL=str_replace($_SERVER['DOCUMENT_ROOT'],"http://".$_SERVER['HTTP_HOST'],$_SERVER['SCRIPT_FILENAME']);
こうゆうこと?
外してるかもしれんし、もっとスマートな道がある気もする
0324nobodyさん
2006/09/05(火) 20:56:32ID:???define('SCRIPT_URL', (empty($_SERVER['HTTPS']) ? 'http' : 'https').'://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);
0325nobodyさん
2006/09/06(水) 19:26:47ID:???SESSIONが保持できません。
SELFで自分に戻るとSESSIONの中身は取れているのですが、
何が考えられるでしょうか?
ちなみにSESSIONをセーブして中身をみていたら、
別のページに移動したときに2個目のセッションが作成されていました。
0327nobodyさん
2006/09/07(木) 10:28:51ID:fMyB6iZLfor($i = 0 ; $i < 5; $i++){
for($ii = 0 ; $ii < 5; $ii++){
$arr[$i][$ii]=1;
}}
print "$arr[3][3]";
の様な事をしたいのですが、出力される値がArrayしか出なくて困っています。
2次元配列を簡単に組めるにはどうしたらいいのですか?
0331nobodyさん
2006/09/09(土) 02:41:28ID:C6V07CE/要素[1]さんの状態は[2]
要素[3]さんの状態は[4]
要素[5]さんの状態は[6]
[配列ary]
array ( [0] => ココカラ [1] => Aさん [2] => 元気 [3] => Bさん [4] => まあまあ [5] => Cさん [6] => 空元気 )
ここからCさんの状態を調べるスクリプトを書いてみたのですが
for( $i=1; $i<5; $i+2)
{
if(strpos($ary[$i], 'Cさん')==false)
{
}
else
{
$j = ++$i;
$status = $ary[$j];
}
}
何故かこうすると動かず、for文の$i+2を$i++に変更すると正常に動きます。
そもそも$i+2という記述はおかしいのでしょうか?教えてください。
0332nobodyさん
2006/09/09(土) 03:18:23ID:???とりあえず他は知らんけど、 $i+2 は $i+=2とか
名前と状態に等しいものが無いという前提でarray_search()
$j = array_search("Cさん",$ary);
if ($j != false) {
echo $ary[++$j];
}
な感じ
0333nobodyさん
2006/09/09(土) 03:53:04ID:???感じで記述するのでは負荷等は変わってくるのでしょうか?
0334nobodyさん
2006/09/09(土) 03:53:32ID:???若干ズレた答えだけど
Array(
[Aさん] => 元気
[Bさん] => まあまあ
[Cさん] => 空元気
)
とか
Array(
[0] => Array( [name] => Aさん [status] => 元気 )
[1] => Array( [name] => Aさん [status] => そこそこ )
[2] => Array( [name] => Bさん [status] => 空元気 )
)
にしたほうがわかりやすいかもしれないね、うん
0335331
2006/09/09(土) 05:53:34ID:C6V07CE/ありがとうございました。
+=2で美味くいきました。
アドバイス頂いてからマニュアル見直してみたんですけど、$i+2だけだと代入しないんですね。
試しに
for( $i=1; $i<7; ($i=$i+2))
こうしてみたところ、これでも期待通りの結果が得られました。
あ、あとarray_serchという関数ありがとうございました。初めて聞く関数だったので今後の参考にします。
#只、今回は状態に同一の値が入る可能性があるので、やめときました。
>>334
そうですね。Array[0]に不必要な値もある事ですし、ちょっと綺麗にしようと思います。
何はともあれ、これで眠れそうです。ありがとうございました。
0336nobodyさん
2006/09/09(土) 06:16:44ID:PgI2vPCagoogle mapに反映させたいのですが、
うまくgoogle mapに反映できません。
多分、PHPで読み出したデータをjava script側にうまく
渡せていないと思うのですが、よくわかりません。
すみませんが、ご教授お願いします。
ソースの主要部分を抜き出します。
<?php
$handle = fopen ("lat.txt", "r");
$lat = fgets($handle, 1024);
fclose($handle);
$handle = fopen ("lon.txt", "r");
$lon = fgets($handle, 1024);
fclose($handle);
?>
function onLoad() {
map.setCenter(new GLatLng( $lat , $lon ),4);
marker = new GMarker(new GPoint( $lat , $lon ), markeropts);
}
0337nobodyさん
2006/09/09(土) 06:20:58ID:???まあ、よっぽど大きなサイズでない限り、どちらの方式でも
無視できる程度の負荷の差しかないと思うけど。
ただ、ソースの見通しの良さとか考えると、前者のほうがオススメ。
0338nobodyさん
2006/09/09(土) 07:01:23ID:???function onLoad() {
map.setCenter(new GLatLng( <?php echo $lat ?> , <?php echo $lon ?> ),4);
marker = new GMarker(new GPoint( <?php echo $lat ?> , <?php echo $lon ?> ), markeropts);
}
かな
0339nobodyさん
2006/09/09(土) 10:38:32ID:/+q9xMfeアパッチはインストールできたけどPHPがうまくいかない。発狂しそう。
0341nobodyさん
2006/09/09(土) 10:48:47ID:/+q9xMfeそれは追加しました。
でも「LoadModule php5_module c:/php/php5apache.dll」を書くと
アパッチが再起動できなくなってしまいます。
バージョンは
PHP-5.1.6
Apache-2.2.3
を使ってるんですが、
これよりも前(といってもPHP5)の解説サイトを見ながら設定しても上手くいかないもんなんでしょうか。
0342339
2006/09/09(土) 10:51:23ID:???あとsage忘れてました、すみません。
寝ずにやってて頭に血が上りつつあるので
耳鼻科行ってクールダウンしてきます。。。
0343nobodyさん
2006/09/09(土) 10:52:14ID:???apache2.2.x を使っているなら Apache2.0.5x に変える
どうしてもapache2.2.xを使いたいならPHP5.2.xをさがす
0344nobodyさん
2006/09/09(土) 11:32:26ID:38GEQ8NEphp5apache.dllはApache1.3用のdllだ
でPHP5.1.6(Win32)にはApache2.2用のdllは同梱されていない
0347339
2006/09/09(土) 13:09:02ID:???耳鼻科が思いのほか混雑していて返事遅れてしまいました。
原因はまさにそれですね!
Apacheを変えたらできました。
素早い正確な本当にどうもありがとうございました。
0348nobodyさん
2006/09/09(土) 18:29:08ID:???ひどい日本語だな・・・
0349nobodyさん
2006/09/09(土) 21:32:07ID:???A[=aaa]BC[=bbb]DEF[/=bbb]GH[/=aaa]IJK
などと言う文字を
A<span class="aaa">BC<span class="bbb">DEF</span>GH</span>IJK
という風に正規表現で置換したいんですけれども、
$text = eregi_replace('\[(.+?)\]','<span class="\\1">', $text);
としてもうまく出来ません・・・
どうしたらよいでしょうか。よろしくお願いします。
0351nobodyさん
2006/09/09(土) 23:39:20ID:???マニュアルにも書いてあるだろうに。
0352nobodyさん
2006/09/10(日) 01:01:26ID:???あらやる面でeregに勝っているようなので、使ってみることにします。
・・・でもうまく動かないorz
0354nobodyさん
2006/09/10(日) 12:10:48ID:???0355nobodyさん
2006/09/10(日) 14:05:09ID:???言っているようですが書いてるし原因が分かりません。
ご指摘をお願いしますorz
PHPのバージョンは 5.1.6 です。
<?php
class Hoge
{
public function __construct( $path = NULL )
{
if( !is_null( $path ) )
{
read( $path );
}
return;
}
public function read( $path = NULL )
{
/*!
ファイル読み込み処理を実装する予定。
*/
return;
}
}
$hoge = new Hoge( 'test.txt' );
?>
エラー内容
Fatal error: Call to undefined function read() in N:\sample.php on line 8
0356355
2006/09/10(日) 14:08:22ID:???read( $path );の行がline8です。
0357355
2006/09/10(日) 14:09:33ID:???0358nobodyさん
2006/09/10(日) 14:09:52ID:???0359nobodyさん
2006/09/10(日) 14:10:34ID:???0362nobodyさん
2006/09/10(日) 15:01:09ID:???どっちが良いのか、どちらにすべきかは知らないけど。
誰か詳しい人教えてくれ。
0363355
2006/09/10(日) 18:49:47ID:???>メンバ変数を作ってそれを使えばいいんじゃないか?
ファイルパス(メンバ変数)をglobalにする必要がないと思ったので
newもしくはread時に渡すようにしています。
0365363
2006/09/10(日) 22:43:21ID:???class Hoge
{
public $filePath;
/*コンストラクタは省略*/
public function read()
{
/*$this->filePathのファイルを読む*/
return;
}
}
$hoge = new Hoge();
$hoge->filePath = 'data.txt';
$hoge->read();
メンバ変数=$filePathのことで、パブリックな$filePathにパスをセットして
read()を呼べば引数にパス渡さなくてすむって意味だと思った。。
0366363
2006/09/10(日) 22:47:54ID:???globalじゃない…publicですたorz
0367nobodyさん
2006/09/10(日) 23:49:52ID:???んじゃprivateにすれば?
・・・というのは置いといて、
コンストラクタで引数で渡してメンバ変数に代入したり
あるいはファイル名登録用のメソッドを作ったりしてもいいよね。
というか355の方法じゃクラスにしてる意味が全く無くない?
0368366
2006/09/11(月) 00:35:35ID:???>んじゃprivateにすれば?
情報の後出しのようでもうしわけありません。
エラーの確認用のHogeクラスでは省略していますが実際使おうとしている
クラスではprivate $filePathを持たせています。
引数無しでread()を呼んだ場合に$this->filePathのファイルを読み直します。
>コンストラクタで引数で渡してメンバ変数に代入したり
コンストラクタのなかでreadまでやるからreadのなかでメンバ変数に
代入するようにしているのですが、、コンストラクタ(ファイルパスのセット)と
read()は分けた方がいいのでしょうか。
>あるいはファイル名登録用のメソッドを作ったりしてもいいよね。
read()とファイルパスのセットを分けた方が良いのであればそうします。
どちらがよいのでしょうか。
0369nobodyさん
2006/09/11(月) 15:31:35ID:9vOMCYca$_POST["hoge"]=$_SESSION["mofu"]; みたいに直接代入という
方法ってプログラム上アリですか?無しですか?
この方法で確かにちゃんと動くけど明らかに使い方は間違ってるような
気がする($_POSTはformからのデータを貰う為のものと思っているから)
のです。
なぜこんなことをしたのかと言うと、前画面で入力したデータを
ターゲットのフォームに初めから入れておきたいが、ターゲット画面で
入力エラーを検知した場合は、そのエラーの箇所を空白にし、他の入力
箇所は保持したいのです。
ターゲット画面でsubmitをしたとき、呼び出される画面はターゲット画面で、
入力にエラーが無い場合はHeaderで次画面に飛ばすのです。
分かりにくい表現で恐縮ですが皆様の考えを教えてください。
0370nobodyさん
2006/09/11(月) 16:05:42ID:???0371nobodyさん
2006/09/11(月) 17:08:12ID:???$_POSTに代入っていうのは気持ち悪いね
動くんだろうけど確かに使い方は間違ってる
他の変数に代入するんじゃだめなの?
どうせサニタイズするんだったら$_POSTそのまま使うんじゃないし
0372nobodyさん
2006/09/11(月) 18:08:47ID:qCpJYXXZ$img = file_get_contents('画像のURL.jpg');
echo imagesx($img);
としてもエラーが出てしまいます。
0373nobodyさん
2006/09/11(月) 18:30:00ID:???0374nobodyさん
2006/09/11(月) 21:31:19ID:9vOMCYcaif(ereg("[^0-9ア-ンー0-9]",$_POST["kanaName"])){
echo "全角カタカナと数字以外禁止";
}
しかしこれだとヤ以降(50音順)がカタカナと認識されません。
よい方法があったら御教授願います。
0375nobodyさん
2006/09/11(月) 22:12:57ID:???0376nobodyさん
2006/09/12(火) 07:22:51ID:???設計を根本的に見直そう。
$_POSTで受け取った値は必ずスクリプト内で
別の変数に代入してから計算なりアウトプットなりするクセをつける。
そんで、エラーを検知した場合は、最初の画面に戻して、
どういうエラーがあったのかを表示して再入力させるべき。
もちろんこの時、エラーがなかった項目については値を保持して、
フォームに既に入力されてる状態にしてあげること。
0377374
2006/09/12(火) 14:25:02ID:FIxGk3KG何か問題でも?
教授=プロフェッサーだけじゃなくて知識等を与える事って意味もあるはず
だから知識を与えて欲しいと願うのはダメ?
それはさておき正規表現の問題が解決できません。
ア-ンーとしてあるのにガ等の濁点やァ等の拗音(だっけ)がマッチしたりしてます。
どうやったら解決できるでしょうか?
0378nobodyさん
2006/09/12(火) 14:50:15ID:???自分のレベルが糞より低い位置にあるんだから、バカに徹して頭を垂れているべきだ。
それが世渡りつーものだ。
で、そんなもん正規表現じゃねー!!恥ずかし過ぎ!つか、笑った。
もし、sjisなら片仮名文字は
\x83[\x40-\x96]
バカだから文字コードの事も考えていないよね?
仮名文字を使って正規表現とか言うのだから。
0380nobodyさん
2006/09/12(火) 15:07:49ID:???そこでmb_eregですよ!
0381374
2006/09/12(火) 15:10:12ID:FIxGk3KGなるほど サンクス 今度からそうするよ。
0382nobodyさん
2006/09/12(火) 15:19:09ID:???0384374
2006/09/12(火) 15:57:14ID:FIxGk3KG実際に組むとき\x83[\x40-\x96]はカタカナだから
if(!(ereg("^\x83[\x40-\x96]",$_POST["kanaName"]))){
echo "全角カタカナと数字以外禁止";
}
としてみました。
全角カタカナ以外はこれで入力できなくなりました(数字も入らなくなっちゃったけど)
その後mb_eregを使ってみました。
if(!(mb_ereg("^[0-9ア-ンー0-9]",$_POST["kanaName"]))){
echo "全角カタカナと数字以外禁止";
}
こうすると数字も弾かれないので後者を使うことにしましたがァィゥェォとヴが弾かれるので
if(!(mb_ereg("^[0-9ア-ンーヴァ-ォ0-9]",$_POST["kanaName"]))){
echo "全角カタカナと数字以外禁止";
}
これでテストした結果、今のところは期待通りになっていると思います。
ありがとうございました。
>>382 手ぇ遅いので試すまで待って・・・
>>383 正解。
0386nobodyさん
2006/09/12(火) 16:18:19ID:???オマエ、本物のバカだな基礎とか基本とか全部飛ばしているな
仮名文字を使うなつーてるのにバカだから使うし
$baka = $_POST["kanaName"];
if(!ereg("\x83[\x40-\x96]",$baka) || !ereg("\x82[\x4F-\x58]",$baka)|| !ereg("[0-9]",$baka)) echo '全角カタカナと数字以外禁止';
0387nobodyさん
2006/09/12(火) 16:30:22ID:???> 仮名文字を使うなつーてるのにバカだから使うし
http://www.php.net/manual/ja/function.mb-ereg.php
調べもしないで偉そうだなおい
0389nobodyさん
2006/09/12(火) 16:35:02ID:???俺も宗教的な理由で仮名文字は使わないな
別におかしくないし、sjis環境なら使わないほうがいいし
それ以前にmbって・・・まーいいや。
0391nobodyさん
2006/09/12(火) 17:26:25ID:???そこが大事だろ!
おれみたいな初心者に教えてくれよ
0392nobodyさん
2006/09/12(火) 17:45:06ID:???本当に宗教的な理由としか言い表せないだろう
mdで仮名文字(2バイト文字)が使えるからと安易にいたければ使えばいいかと
もし、自分が宗教的な物に気付けばどこかで仮名文字は捨て去る事となるから
但し、生涯教えて君や初心者を通すなら気付かず使うことととなるだろう
それはそれで良いと思う。
0393nobodyさん
2006/09/12(火) 17:47:41ID:???0394391
2006/09/12(火) 17:59:17ID:???プログラムコードには極力日本語を含まないようにしてる
理由は単純に気持ち悪いからだ
でも実際にどんな問題がはらんでるかが知りたい
・「マルチバイト」そのものがあまり信用できないからアスキーコードを使う
・PHPのmbまわりが信用ならない
・環境設定によって左右されるようなコードを書くべきでない
いろいろ考えてみた あたってたらそう言ってくれ
あたってなかったら調べてみたりするから
0395nobodyさん
2006/09/12(火) 23:13:17ID:???日本語を含んだパスを指定して「ファイルが読めない。」と悩む私が昔
いました。
0396nobodyさん
2006/09/13(水) 02:23:45ID:???RFCとかが統一すりゃいいんだ!
そしたら「宗教的」なヲタたちが啓蒙普及活動をしてくれる。
そしてプログラミングにおける日本語の問題も全て解決する。
0397nobodyさん
2006/09/13(水) 04:18:32ID:???0398nobodyさん
2006/09/13(水) 14:35:51ID:???0399nobodyさん
2006/09/13(水) 18:06:28ID:fd+xBvUi参考にしたサイト
http://www.y2sunlight.com/ground/?PHP5.0%2F6.PEAR%A4%CE%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB
OSはWindowsXP Pro PHPは5
このサイトに従ってインストールしていたらpearのバージョンが1.3.1になっていました。
しかしサイトの画像で見るとバージョンは1.4.6、最新は1.4.11なので、
pear install pear としてみるとインストール済と言うことでスキップされました。
アンインストールしてからならインストールできるだろうと思い、
pear uninstall pear としたら、pear.bat自体がなくなってしまいました。
最新バージョンの1.4.11をインストールする方法を教えてください。
//pear download-allとするとXML error at line 1, check URL
Invalid return payload: enabling debugging to examine incoming payloadと出るのは仕様ですか?
0400399
2006/09/13(水) 18:40:21ID:fd+xBvUi騒がせて巣万個
0401nobodyさん
2006/09/13(水) 19:37:08ID:ny0rhUNk0402nobodyさん
2006/09/13(水) 19:38:45ID:???0403nobodyさん
2006/09/13(水) 19:40:07ID:???0404nobodyさん
2006/09/13(水) 20:15:13ID:qvwVE6Hq例えば
$a が 2ちゃんねる だったら、
あいうえお
かきくけこ
さしすせそ
$b が 3ちゃんねる だったら
いろはに
ほへと
ちりぬる
って表示するようにして、
$a=2ちゃんねる $b=3ちゃんねる だったら
あいうえお いろはに
かきくけこ ほへと
さしすせそ ちりぬる
と表示するようにしたいんですが、
どのようにすればいいでしょうか?
0405nobodyさん
2006/09/13(水) 20:47:12ID:???if ($a == "2ちゃんねる" && $b == "3ちゃんねる") {
echo "あいうえお いろはに" . "<br />\n";
echo "かきくけこ ほへと" . "<br />\n";
echo "さしすせそ ちりぬる" . "<br />\n";
} elseif ($a == "2ちゃんねる") { // A
echo "あいうえお" . "<br />\n";
echo "かきくけこ" . "<br />\n";
echo "さしすせそ" . "<br />\n";
} elseif ($b == "3ちゃんねる") { // B
echo "いろはに" . "<br />\n";
echo "ほへと" . "<br />\n";
echo "ちりぬる" . "<br />\n";
}
こうではなくてAの出力とBの出力を合成して表示したいという意味であれば、
$str['a'] = array("あいうえお", "かきくけこ", "さしすせそ");
$str['b'] = array("いろはに", "ほへと", "ちりぬる");
if ($a == "2ちゃんねる" && $b == "3ちゃんねる") {
for ($n = 0; $n < 3; $n++) { echo $str['a'][$n] . " " . $str['b'][$n] . "<br />\n"; }
} elseif ($a == "2ちゃんねる") {
for ($n = 0; $n < 3; $n++) { echo $str['b'][$n] . "<br />\n"; }
} elseif ($b == "3ちゃんねる") {
for ($n = 0; $n < 3; $n++) { echo $str['a'][$n] . "<br />\n"; }
}
といった感じに配列でも使わないと多少メンドイことになる。
0406nobodyさん
2006/09/14(木) 04:55:29ID:w1P9D6Nk0407nobodyさん
2006/09/14(木) 13:39:34ID:RcWvZ0xRPHP5.0.2
pear1.3.1を使っています。
<?
include_once "Mail.php";
echo "メール送信テスト<br>";
$recipients = 'XXX@XXX.jp';
$headers['From'] = 'test@test.test';
$headers['To'] = 'XXXa@XXX.jp';
$headers['Subject'] = 'テストサブジェクト';
$body = "ようこそバーボンハウスへ\n この1杯は奢りだからまず飲んで落ち着いて欲しい\n ごめん、またなんだ。\n";
$mail_object =& Mail::factory('mail');
$result = $mail_object->send($recipients, $headers, $body);
if (PEAR::isError($result)) {
echo"DEAD END";
die($result->getMessage());
}
echo $result;
?>
としたところ、メールは送受信できるのですが、$headers['From']と$headers['Subject']の内容が表示
されません。
メール送信が出来るならPEARやPHP、Apacheの設定ではないと思うのですが・・・。
どうやったら$headers['From']と$headers['Subject']の内容が表示できるでしょうか?
0408nobodyさん
2006/09/14(木) 13:41:58ID:RcWvZ0xR$bodyは表示できます。
PHP5.1だとちゃんと表示できるのですがPHP.iniのExtensionのMySQLコメントアウトをはずしても
PHP.infoでMySQLが使えるようになってないので断念しました。
0409nobodyさん
2006/09/14(木) 13:46:31ID:???探しているのですが、見あたらなくて
0410nobodyさん
2006/09/14(木) 17:45:56ID:pPxPgU+d<?php
$cmd=$_POST['cmd'];
if($cmd!=null)
echo $cmd;
?>
こんなPHPのソースがあって、
ここにtelnetで接続し
POST /index.php HTTP/1.0
Content-Length: 5
cmd=1
と言うテキストファイルを送信しました。
確かに200OKと正常にヘッダが返ってきたのですが、
帰ってきて欲しいのは、1と言う文字です。
それが帰ってこないのですが、どうしてでしょうか?
HTTP関連も調べたのですが、何が原因かわかりません。
0411nobodyさん
2006/09/14(木) 17:59:41ID:iFbFyD2f自動的にSQL文を組み立ててくれる機能はありますか?
0412nobodyさん
2006/09/14(木) 20:07:25ID:???if($cmd!==null)
0413nobodyさん
2006/09/14(木) 21:18:02ID:???PEAR::Mailを使ったことがないので内部で処理してないとは言い切れないけど、
マルチバイト文字列(日本語とか)突っ込むときは、エンコーディングが必要なのでは?
あと、PEARに関する質問は
【PHP】PEAR Part2
http://pc8.2ch.net/test/read.cgi/php/1122899232/
がいいかな。
0416nobodyさん
2006/09/15(金) 18:42:11ID:???ちなみに、それは、
Lengthだけじゃなくて
ContentType: application/x-www-form-urlencoded
を送信してないから。
これで、とりあえずは1と帰ってくるよ。
0418帰ってきた42歳
2006/09/16(土) 01:15:26ID:yXjwnh9nm01 => array(label => 'お名前', formtype => 'text', opt => array('size' => '40', 'maxlength' => '220', 'style' => 'ime-mode:inactive')),
という感じであるのですが、ここを自動的に日本語入力に指定することはできないものですか?
テンプレートでいじるのでしょうか?
0419帰ってきた42歳
2006/09/16(土) 01:16:27ID:yXjwnh9n今、冷静に見て… すみません。 ime-mode が i-modeに見えていました
0420nobodyさん
2006/09/16(土) 19:47:58ID:???うまくアップロードできません。
$handle = fopen ("fugahoge.tgz", "r");
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$dataf.= $buffer;
}
fclose ($handle);
$curl = curl_init ($posturl);
curl_setopt ($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS,"&filename=".urlencode($dataf));
curl_exec ($curl);
curl_close ($curl);
0421nobodyさん
2006/09/16(土) 19:56:59ID:???こう書いたのですがうまくいきません。
おしえてください
0423nobodyさん
2006/09/17(日) 04:45:08ID:7OIeS9Or$fp = fopen('aaa.txt','w');
fwrite($fp,$f_raw);
fclose($fp);
こんな単純な書き込みなのですが、
何故かaaa.txtと言うファイルが書き出されません。
ルートディレクトリにもカレントディレクトリにもありません。
なにかphp.iniに設定すべき所があるのでしょうか?
それとも、プログラムミスなのでしょうか?
0424nobodyさん
2006/09/17(日) 04:56:14ID:???0425nobodyさん
2006/09/17(日) 05:48:32ID:???とある理由でPOSTで数M(10M以下)のデータを送り
fopen、fwriteで書き出しするプログラムなんですが・・・。
完了に2分以上掛かる上、UNIXマシンでtopコマンドうつとCPUは80%くらいを食っています。。。
こんなもんなんでしょうか?
転送自体はローカルでテストしてるんで、問題ないんですが・・・・。
それとも、メモリが少ない設定になってる為等でしょうか?
どちらにせよ。POSTされた数Mのデータを高速にファイルに書き出す方法を探しています。
よろしくお願いします。
0426nobodyさん
2006/09/17(日) 06:07:51ID:???確かにたまにこういう書き込みを見る。
PHPのfopen()やfwrite()が遅いのは、やっぱしょうがないのかな・・・
#にしても、遅すぎだとは思うけど
0427えがみボンバイエイ
2006/09/17(日) 07:08:51ID:???require_once("XML/RSS.php");
$rss=new XML_RSS("http://manabekawori.cocolog-nifty.com/blog/index.rdf");
$rss->parse();
?>
<h2><?php print(mb_convert_encoding( $rss->channels['title'],"EUC-JP","auto")); ?>
</h2>
<?php foreach($rss->items as $item){ ?>
<?php print(date(($item['dc:date']))) ?> <a href="<?php print($item['link']); ?>" target="_blank">
<?php print(mb_convert_encoding($item['title'],"EUC-JP","auto")); ?>
</a><br>
<?php }
?>
と書くと
2006-09-17JST00:41:11+09:00 夫婦別姓制度はまだなのか
2006-09-13JST22:46:23+09:00 おやすみ投稿か
2006-09-08JST00:08:49+09:00 カッチカチやぞ
2006-08-31JST22:40:11+09:00 エロかわ…?
言う風に表示されるのですが、
JST00:41:11+09:00の部分を削りたいのですが、
どうすれば宜しいか分かる方いらっしゃいましたら宜しければ教えていただけると幸いです。
0428nobodyさん
2006/09/17(日) 13:55:08ID:???0429nobodyさん
2006/09/17(日) 15:59:12ID:X/s21ZZr行頭に#!/usr/bin/php5を一括挿入するスクリプトを
作成したいと思いますが、どのように書けばよろしいでしょうか?
--スクリプト(パイプで渡せばいいと考えましたがこの先はどうした方がよいでしょうか?)
find * -name *.php |
0430nobodyさん
2006/09/17(日) 17:19:12ID:???出来なかったらゴメン
% php < `find * name php `
0431nobodyさん
2006/09/18(月) 02:05:26ID:???ギガとかになるので、バイト単位だと
1073741824B=1Gなので、INTEGERだと格納出来ません。
こういう用途だと、どうすればいいのでしょうか?
SQiteは型非依存だと聞いたのですが、型を指定しなければ良いと言う事でしょうか?
0432nobodyさん
2006/09/18(月) 02:18:16ID:???バイト単位でだと、扱うのはあまり好ましくないから。
どうせギガレベルなら、メガ単位で管理すれば?
0433nobodyさん
2006/09/18(月) 03:03:17ID:???class DataSize{
private digitGigaByte;
private digitMegaByte;
private digitKiloByte;
private digitByte;
/* 以下メソッド定義 */
};
とかやって自前のクラスと操作メソッド作ったほうがいいんでない?
0434nobodyさん
2006/09/18(月) 05:50:35ID:0wioqDk7mkdir('dir', '0600');
など、パーミッションを指定できるメソッドで作成したファイルやディレクトリが、この設定が反映されません。
具体的には、上の例の場合、411のパーミッションのdirと言うディレクトリが出来上がります。
何か設定すべきところがあるのでしょうか?
一切の書き込みが出来ないので、何も出来ません。。。
0435nobodyさん
2006/09/18(月) 14:19:10ID:???だめだったらごめんね
0436nobodyさん
2006/09/19(火) 01:37:52ID:???$fi = file("aaa.dat");
で読み込んでから、
空行を抜いて表示したりしたいのですが、
やりかたがわかりません。
for ($i=0;$i<9;$i++) {
if ($fi[$i] != "" ) { print "$fi[$i]<br>";}
}
「""」のところを「\n」で試したりしましたがだめでした。
どうすれば良いのでしょうか。
0437nobodyさん
2006/09/19(火) 01:51:17ID:???$fi = array_map('rtrim',file('aaa.dat'));
for ($i=0;$i<9;$i++) {
if ($fi[$i] != "" ) { print "$fi[$i]<br>";}
}
0438nobodyさん
2006/09/19(火) 05:24:38ID:???0439nobodyさん
2006/09/19(火) 05:45:57ID:???$fi = file('aaa.dat');
foreach($fi as $value){
if(trim($fi) == '') continue;
出力処理
}
>>438
一々突っ込むほどのことではないかも知らんが、メソッドは一般にクラスのメンバ関数のことだと思うぞ。
0440nobodyさん
2006/09/19(火) 05:46:44ID:???な、勿論。
0441nobodyさん
2006/09/20(水) 09:19:03ID:HL0PU+OlMySQLに予め登録したテキストを呼び出してmb_send_mailで配信というのを
やりたいんですが、改行なしになってしまいます。
改行を入れたい所に\nを入れてDBに登録したんですが、うまくいきません。
何を使えば改行が入るでしょうか?
0443nobodyさん
2006/09/20(水) 14:42:19ID:HL0PU+OlPHPスクリプトの改行コードはLFに統一してるんですが、MySQLにも何か改行コードを
指定するんでしょうか?
0444442
2006/09/20(水) 15:00:36ID:???以下のコードをmb_send_mailの直前に入れて試してごらん。
$bodyってのはメール本文ね。MySQLから取り出したテキストを$bodyに入れて。
$body = str_replace("\r\n", "\n", $body);
$body = str_replace("\r", "\n", $body);
0445nobodyさん
2006/09/21(木) 14:53:07ID:???掲示板を作るとして書き込むときに fwrite($datafile, "<pre>".$_POST['message']."</pre>");
としてみたらJAVASCRIPTも無効化されてるしいいような気がするんですが、<pre>で囲んだ程度ではやはり駄目でしょうか?
0446nobodyさん
2006/09/21(木) 17:29:08ID:JVGPXujgsession_start();
と宣言しているページがあります。
ユーザにデータを入力させ、action=""としています。
$_POSTの内容は保持されて$_SESSIONの内容だけ削除というのは
標準の動きなのでしょうか?
確かに$_POSTの内容は残り、$_SESSIONの内容はクリアされているような
挙動はしているのですが、別の環境(作成はWinで稼動はLunuxとか)に持っていっても
同じように動くのでしょうか?
日本語が不自由っぽくて恐縮ですが教えてください。
0448nobodyさん
2006/09/21(木) 23:39:17ID:???XSSというのは実際にHTMLとして出力するときに問題になるのであって、
fwriteにはまったく関係ない。
そして専用の関数(htmlspecialcharsなど)があるんだからそれを使え。
0449nobodyさん
2006/09/22(金) 00:25:57ID:???環境変えても問題ないと思う
(Lunuxでググったら10,300件・・みんなtypoしまくってるんだなぁ・・・。)
0450nobodyさん
2006/09/22(金) 00:35:07ID:7CvFXbdSsqlite_escape_stringで"などクエリの作成時に問題の出る文字を\"に置き換えられているのですが
文字列をSQLiteで取り出す時も残ったままなので、\"の文字が表示されてしまいます。(出力先はブラウザではないので・・・)
これを戻そうと$res=str_replace('\"', '"', $res);こんな事をやりましたが、うまく行きません。
残ったままです。
どうにか戻す方法はないのでしょうか?
0452nobodyさん
2006/09/22(金) 00:47:03ID:???以下のエラーが出ています。
Fatal error: Call to undefined function mysql_connect() in /usr/local/www/data-dist/index.php on line 9
このエラーは、おそらくmysqlで提供しているphp向けの関数mysql_connnectが
認識できていないのではないかと考えていまして、
おそらく、php側の設定の追加が必要だと思うのですが、
具体的に何をやればいいのでしょうか?
ちなみに環境は以下の通りです。
■OS
FreeBSD 5.4
■phpのバージョン
$ pkg_info | grep php
php5-5.0.3_2 PHP Scripting Language (Apache Module and CLI)
■mysqlのバージョン
$ pkg_info | grep mysql
mysql-client-4.1.10a Multithreaded SQL database (client)
mysql-server-4.1.10a Multithreaded SQL database (server)
よろしくお願い致します。
0454nobodyさん
2006/09/22(金) 05:28:38ID:???PHPのmail関数使うのに、ポート空ける必要ないよね?
昔Linuxでやった時は要らなかったはず・・・
何故か外部にメール遅れない・・・
ググったらその手の質問は多いのに、どこも解決策が書いてませんでした・・・。
0455nobodyさん
2006/09/22(金) 05:30:35ID:???あるあるwww
横槍ばっかになるんだよな、mail使うヤツだとおせっかいが沸くからw
ちなみに、ググったなら気づいてると思うがsendmailの問題であってPHPの問題じゃないから
解決したいなら、該当スレ当たれ。
あと、メールサーバーへ接続しての送信なんだからポート開放は不要
厳密にはサーバーといっても、サーバークライアントモデルのクライアントの相当する機能だから。
0456nobodyさん
2006/09/23(土) 01:39:07ID:???その後、送信ボタンでメール送信します。
確認ページでは、$_postデータにforeachでhtmlspecialchrasをかませ、
&などの文字がエンティティ化されるのはいいのですが、
メールで送った文字も&と表示されてしまいます。
メールでは&に戻して送りたいのですがどうすればよろしいでしょうか?
0457nobodyさん
2006/09/23(土) 02:02:39ID:???0458nobodyさん
2006/09/23(土) 06:26:47ID:???バカかお前は。
$_POST変数をそのまま丸ごとforeachでエスケープかけてるんなら
メールでもエスケープされたままになるのは当たり前だろ。
HTML表示用変数とメール原稿用変数を分けて、それぞれ$_POSTから格納しろ。
そしてそれぞれ適切な処理を施せ。
0459nobodyさん
2006/09/23(土) 11:27:14ID:???同じスペック、同じバージョンのサーバーなのに、レンタルサーバーでは8Mのファイルの受信に8秒
一方自宅やその他の自分の設定したサーバーでは1分の状況です。
ローカルホストで実験しているので、回線の速度の問題ではないと思うので、何か設定でもあるのかと疑っています。
ApacheやLighttpdなど色んなサーバーに変えたりしても同じなので、PHP側の設定を疑っています。
0460nobodyさん
2006/09/23(土) 11:30:56ID:???ちなみにfopen()などファイルオープンではなく、POSTである。
ためしにPHP4にしてみ。
多分片方の速いってサーバーは4だろ。
うちもファイルのアップロード数十倍伸びて唖然としたクチ
0462nobodyさん
2006/09/23(土) 19:49:02ID:???POSTで、次のページに送って表示させると文字化けが。
両方のページをEUC-JPで保存してるのに何でですか?
mb_detect_encodingで、その送られた値を見ると、SJISになってしまっています。
教えてください。
0463nobodyさん
2006/09/23(土) 19:59:48ID:???formで、enctype="multipart/form-data"で上記の値を送信しているのですが、
このenctypeを外すと、普通にEUCで表示されます。
ファイルをアップするとSJISに勝手に変わってしまうのでしょうか?
どうすればいいのでしょうか、教えてください。
0464nobodyさん
2006/09/23(土) 20:10:35ID:???0465nobodyさん
2006/09/23(土) 22:45:21ID:???何でだ?
$ext = array("JPG","GIF","PNG");
if(is_uploaded_file($_FILES["uploadfile"]["tmp_name"])){
$fileinfo = pathinfo($_FILES["uploadedfile"]["name"]);
$fileext = strtoupper($fileinfo["extension"]);
if(!in_array($fileext, $ext)){
$errors[] = "JPG、PNG、GIF形式以外の写真ファイルは登録できません";
}
0466nobodyさん
2006/09/23(土) 22:49:40ID:???if(in_array($fileext, $ext)){
print "aaa!";
}else{
$errors[] = "JPG、PNG、GIF形式以外の写真ファイルは登録できません";}
0467nobodyさん
2006/09/23(土) 23:08:12ID:???しかし、タイプミスほど腹が立つものねぇ。
0468nobodyさん
2006/09/23(土) 23:09:03ID:???0469nobodyさん
2006/09/23(土) 23:45:41ID:???0470nobodyさん
2006/09/24(日) 00:17:27ID:???$query="INSERT INTO user_uniq (mail,pass,uniq) VALUES('$_mail','$_pass','$uniq')";
こんな感じにすると、メールの@マークで怒られます。
Warning: sqlite_query() [function.sqlite-query]: unrecognized token: "@"
今まで、これでやって、普通に動いてきたし
今も別のコードで、この方法で動いているのですが、何か特別な変化があると、挙動が変わるのでしょうか?
0471nobodyさん
2006/09/24(日) 00:39:32ID:???単なるミs
0472nobodyさん
2006/09/24(日) 16:57:26ID:???/usr/local/www/data-dist/index.phpと絶対パスが見えてしまうのとmysql使ってるってのを隠したいが、エラーに成っても隠せる方法無いの?
このままじゃ運用につかえない。orz
0473nobodyさん
2006/09/24(日) 17:03:52ID:???0474nobodyさん
2006/09/24(日) 20:04:14ID:???XXXII. エラー処理およびログ記録関数
ttp://www.php.net/manual/ja/ref.errorfunc.php
スクリプトの先頭で、
ini_set('display_errors', 0);
error_reporting(0);
してみたが、パースエラーには効かないのかよ。orz
PHP-users 26772によれば、スクリプトが実行されないと効力が無いらしい。orz
0475nobodyさん
2006/09/24(日) 20:17:58ID:???でもFatal Errorは無理だったような気が。
0477nobodyさん
2006/09/25(月) 00:51:05ID:???パースエラーが出ない保証なんて無いよ。
複数台で負荷分散してたりすると、phpスクリプトがダウンロードできたりして楽しい状況。
まあ上場したミクシもパールスクリプトがダウンロードできるミスをやらかしたけど。
0478nobodyさん
2006/09/25(月) 00:51:52ID:???0479nobodyさん
2006/09/25(月) 01:01:40ID:???0480nobodyさん
2006/09/25(月) 01:02:40ID:???ちょっと見てみたい。
0481nobodyさん
2006/09/25(月) 01:38:01ID:???>複数台で負荷分散してたりすると、phpスクリプトがダウンロードできたりして
どうして負荷分散するとスクリプトがダウンロード可になるの?
負荷分散と直接関係あるの?
0482nobodyさん
2006/09/25(月) 02:02:08ID:???0483483
2006/09/25(月) 15:10:08ID:???yasuda→キーワードが入った配列
Function Search_Pattern($tanaka,$yasuda)
{
for($loop = 0;$loooop < count($yasuda);$loooop++) {
if($yasuda[$loooop] == "") continue;
if(!ereg($yasuda[$loooop],$tanaka)) return 0;
}
return 1;
}
yasudaさんはフォームに入力されたキーワードなんだけど、
「ー」をフォームに入力すると、
>Warning: ereg() [function.ereg]: REG_EBRACK in /xxx/xxx/xxx/xxx.php on line xx
て、エラーが出てしまう。調べてみると、
「Shift-JISじゃだめだEUCにしろ」みたいなことらしいのだけど、
意味がよく分からないです。
HTMLのヘッダー部分を直しても、何も起きないし、
<meta http-equiv="content-type" content="text/html; charset=EUC">
ファイルをEUCにして保存して、アップしたら文字化けしました。
CSVのデータ内容の都合上「ー」は避けて通れないので、
どうしたら良いか教えてください。よろしくお願いします。
0484nobodyさん
2006/09/25(月) 16:03:14ID:zOMXhHPD動画をアップロードして、その動画のサムネイルも
ウェブ上に表示される方法に関して、
詳しく書かれた専門書があればお勧めいただければありがたいです。
0485nobodyさん
2006/09/25(月) 17:48:42ID:???そんな本は無い。
それくらい自分で実装方法が思いつかない&調べられない、という
レベルなら、諦めたほうがいい。
0486nobodyさん
2006/09/25(月) 18:06:15ID:???0487nobodyさん
2006/09/25(月) 18:20:53ID:???0488nobodyさん
2006/09/25(月) 19:48:15ID:???0489nobodyさん
2006/09/25(月) 21:45:43ID:???やったことないから俺は分からない。だからちょっと面白い。
よし、やってみよう。
0490nobodyさん
2006/09/25(月) 22:05:02ID:???ffmpegってエクステンションがあるみたいね。
わりと分かりやすいドキュメントもあるし。
調べるってことをしないのかね・・・
0491483
2006/09/25(月) 22:30:14ID:???むむむ……??
0493491
2006/09/25(月) 22:40:59ID:???指摘箇所を修正したのですが文字化けしました。
「そこを直すだけ」だとだめなんでしょうか・・。
0494nobodyさん
2006/09/25(月) 22:48:31ID:???[ php.ini ]
mbstring.language = Japanese
mbstring.http_input = auto
mbstring.http_output = EUC-JP
っていうか今483のコード目通したけど、明らかにおかしいから文字コード以前にそれを直すべき。
for文の変数がおかしい。eregの使い方間違ってると思われる。あと、一般的にFunctionはfunctionで。
0495nobodyさん
2006/09/25(月) 22:52:46ID:???ですが、回答の内容が理解できません。(頑張って調べてみますが)
明らかにおかしいとのことですが、
取り敢えず「ー」を検索キーワードにしなければ正しく動作してます。
0496nobodyさん
2006/09/25(月) 22:59:55ID:???0497nobodyさん
2006/09/25(月) 23:03:12ID:???tanaka と yasuda にする意味が分からん。
どうせ意味を持たない名前の変数なら hoge とかにした方が分かりやすい
function Search_Pattern($key, $csv)
{
foreach ($csv as $line) {
if($line == "") continue;
if(!mb_ereg(mb_convert_encoding($line,"EUC","SJIS"), $key)) return 0;
}
return 1;
}
まぁあれだ、エスパー的に考えると多分POSTされたデータがSJISだからEUCに変換すれば通るんじゃないか
2バイト目が\x5Cな文字を受け取ると失敗する
0498nobodyさん
2006/09/25(月) 23:05:34ID:???それは、間違いです。
実際は、全部$loooopです。
0499nobodyさん
2006/09/25(月) 23:09:28ID:???$tanakaって分割されたCSVの一行なのに、$lineって変だな
0500483
2006/09/25(月) 23:24:18ID:???CSVファイルがShift-JISになってたので、ECUにしたら、
「ー」の検索結果が上手く表示されました。感動!
普段使ってるHTMLエディターがそういう設定ないので、
あんまり気に止めてなかったことでした。
mb_convert_encodingとか見たことないこと書いていただいたので、
それも参考にしてみたいと思います。
それでは、皆さん、ご迷惑お掛けしました。
頑張りまーす。
0501nobodyさん
2006/09/26(火) 00:38:00ID:???PHP/4.3.11
PHP /5.1.6
で、両方Apache/2.0.53で動かした。
ソースは
$file=$_POST['FILE'];
$fp = fopen('testfile', 'w');
var_dump(fwrite($fp, $file));
fclose($fp);
echo "OK";
こんな単純な処理、
んで、5Mちょうどに作ったランダムな文字を埋め込んだテキストデータを送ってみた。
PHP5側が32秒、PHP4側は3秒
…なんだろう、この差は('A`)
ちなみに、php.iniは新たに排除された物以外同じ。
POSTに関連するような項目は無いはず。
0502nobodyさん
2006/09/26(火) 00:49:08ID:???0503nobodyさん
2006/09/26(火) 01:45:38ID:???バッファーオーバーフロー対策だけでもかなりのオーバーヘッドが発生して処理速度が落ちると思う。いちいちサイズチェックしてる訳だし。
プロファイル取って精査してみると原因が分かるかもね。
0504501
2006/09/26(火) 02:12:00ID:???magic_quotes_gpcだろうけど
これを無効にしても変わらんね。
まぁ、チェックはこれだけではないと思うので、オプションでいじれない範囲になるのかな
0505nobodyさん
2006/09/27(水) 06:20:17ID:???最初ファイルの書き出しの所でオーバーヘッド起きてるんだと信じ込んでたが
$file=$_POST['FILE'];
の直後に、echo 'OK';exit();
やっても、OKが返るまでに相当時間がかかる。
さらに、$file=直前の一行目に書いても同じ。
ちなみに、俺はWindows版のPHPで試したが、その場合PHP4/5ともに30秒くらいかかった。
んで、FreeBSDマシンもあるので、>>501とほぼ同じマシンで試したら、4/5ともにほぼ同じ30秒くらい。
ところがどっこい、xreaのPHP5採用鯖とPHP4採用鯖で試したら、2秒で完了した。
同じく外部で借りてる鯖で試してもそんなもん。
この2つの共通点はLinuxって事だな。
俺の結論としては、4/5の差じゃなくて、OSの何かの差だと思うんだが・・・。
PHP.iniファイルは当然あわせてるし、他に考えられん。
0506nobodyさん
2006/09/27(水) 06:23:50ID:???Windows版はGUI立ち上がってるからCPUパワーが一段階下がる。
何となくお前のFreeBSDマシンはメインマシン下がりの1世代か二世代前のマシンな希ガス
POST処理って何気にCPU食うからな。URLエンコードやmagic_quotes_gpcの有無に限らず結構チェックが多いから
0507nobodyさん
2006/09/27(水) 12:43:34ID:???xreaはRAID搭載ジーオン鯖だったりしないか?
0508nobodyさん
2006/09/27(水) 13:13:40ID:???if(getimagesize($_FILES["upfile"]["tmp_name"])){
$errors = "画像形式のファイル以外は登録できません";
}
空のjpgをアップすると、警告と$errorが表示されます。
でも、テキスト形式のファイルをjpgにして、アップすると、
$errorは表示されるのですが、警告は表示されません。
マニュアルには、
filename のイメージにアクセスできない場合、もしくは有効な画像でない場合、getimagesize() は FALSE を返し、E_WARNING レベルのエラーを発生させます
と書いてあるのですが、どうしてでしょうか?
もし、よろしければ、教えてください。
0512nobodyさん
2006/09/28(木) 05:09:14ID:???通常どのようにするのでしょうか?
0513nobodyさん
2006/09/28(木) 09:24:11ID:???0514nobodyさん
2006/09/28(木) 09:41:40ID:vmB3T9I4文字コード何にして送ってる?
FreeBSDは、EUC/ECU-JPだから
その変換作業がオーバーヘッドになってると思われ。OSの差が本当に原因なら
0515nobodyさん
2006/09/28(木) 09:44:55ID:???0516nobodyさん
2006/09/28(木) 11:09:55ID:???OSレベルで差が出るとは思えんが・・・
>>501が同一マシンで実行したのなら、何かOSの差異に問題があるんだろうな。
でも、PHP4と5だろ・・・、うちじゃ差は無かったよ。FreeBSDマシンだがどっちも同じくローカルで30秒ほど
本当に一桁で完了なんてすんの?
流石にこのマシンLinux入れるわけにはいかないので試せないけど、もしそういう結果が出るなら乗り換えてしまいたいかも・・・
0517nobodyさん
2006/09/28(木) 11:47:29ID:la8GqmPx0518nobodyさん
2006/09/28(木) 12:51:26ID:???ただし、どちらかに統一するように!
void echo ( string arg1 [, string ...] )
int print ( string arg )
>戻り値
・echo は戻り値がない
NG : echo echo echo echo "hoge";
・print は常に1を返す
OK : print print print print "hoge";
→ hoge111
>引数
・echo は「,」(コロン)で区切った文字列を連結して出力する事ができる
echo "hoge", "hage", "hige";
→ hogehagehige
(普通にドットで文字列連結できるからあんまり意味ないけど、違いって事で)
0519nobodyさん
2006/09/28(木) 12:53:18ID:???0521nobodyさん
2006/09/28(木) 17:51:44ID:???ming居れたいんだけどコパーイルエラーでちゃう。
dbl2png.c:31: error: 文法エラー が "png_uint_32" の前にあります
等のエラー
make[2]: *** [dbl2png] エラー 1
make[2]: Leaving directory `/usr/local/src/ming-0.3.0/util'
make[1]: *** [utils] エラー 2
make[1]: Leaving directory `/usr/local/src/ming-0.3.0'
make: *** [all] エラー 2
ming のアーカイブをダウンロードし、展開して
ming-0.3.0.tar.gzとming-php-0.3.0.tar.gz 他にも居れないとダメん?
make
エラー
糸冬
OS:CentOS4.2
Apache1.3.3+modssl
PHP4.3.11
Postgres7.2.2
色々調べたがイマイチグット来るものが中田・・・。
0522nobodyさん
2006/09/28(木) 18:13:15ID:ESgbH1eMmofu.phpにはチェックボックスに月〜土まであり、submitすると、mofu.phpで判定を行います。
<input name="ShopOpenW[]" type="checkbox" id="ShopOpenW[]" value="月" <? if(in_array("月",$_POST['ShopOpenW'],TRUE)){echo "checked"; } ?>>月
としたのですが、チェックが入っていない状態でsubmitすると、
Warning: in_array() [function.in-array]: Wrong datatype for second argument と怒られます。
でもチェックを入れた状態でsubmitするとWarningも出ないし、期待通りチェックボックスにチェックが
ついたままの状態になります。
このWarningをつぶす方法を教えてください。
0524522
2006/09/28(木) 18:28:24ID:ESgbH1eMつまり配列じゃないぞゴルァというエラーであると思ったので、
if($_POST["ShopOpenW"]==""){
$_POST["ShopOpenW"]=array();
}
として空白のときは空の配列になるようにしました。
期待通りの動作にはなりましたがなんか正統な方法じゃないような
気がするのでもっといいアイデアがあればお願いします。
>>523
あえてエラーレヴェルは下げない方向で・・・
ヘタレなので別の部分で対処すべき不具合も見えなくなっちゃうかも
なので・・・。
0525長文ですいません。
2006/09/28(木) 18:35:24ID:???これはセキュリティ的にやはり危ないのでしょうか?
というのも、現在、パスワードなどの認証後、$_SESSION["userid"]= $userid みたいな感じで、
値をいれ、各ページでその値が空でなければ、$_SESSION["userid"]の値を元に、
個々のユーザーのデータを抽出して、表示させています。
ただ、$useridはDBからそのまま持ってきた値を使っています。
だから、会員ナンバー1の人はその$useridが1となってます。
これは、すごい危険ですかね?
もし、よろしければ、どういった管理をすれば良いのかアドバイスをください。
宜しくお願いします。
0526nobodyさん
2006/09/28(木) 18:47:04ID:???<? if($_POST['ShopOpenW']){echo "checked"; } ?>
じゃ、ダメ?
0527nobodyさん
2006/09/28(木) 18:49:07ID:???login_idっていうの作って見れば?
わたしはUserId.liginIdでハッシュをつくってるけど
まぁ、ログイン時にDBを更新しないといけないけどね・・・
0528522
2006/09/28(木) 19:06:14ID:ESgbH1eM配列に入ってるから無理やり引きずり出さないと使えないと思ってたのに、
こんなにスマートに使えるなんて・・・。
知りませんでした、勉強になります。
0529長文ですいません。
2006/09/28(木) 19:11:09ID:???ありがとうございます。なるほど、そうしたほうが良さそうですね。
でも、初心者の自分にはちょっと面倒そう。。
でも、そんなこと言ってられないっすよね!
ありがとうございます。
でも、普通はそんな感じで管理するのですかね?
0530522
2006/09/28(木) 19:12:13ID:ESgbH1eM1個だけチェックのときは上手くいったけど
全部同じように処理したら1個チェックをつけただけで
全部のボックスにチェックが付いちゃった。
びっくり〜(●o●)
0532nobodyさん
2006/09/28(木) 19:20:27ID:???めんどくさかったら
login_idだけでもいいんじゃない?
さっきからオレ一人しか答えてないような気がするが。
0534530=522
2006/09/28(木) 19:38:21ID:ESgbH1eMお店が開いてる曜日をチェックするセクションを作ってます。
ただ営業時間とかお店の名前(読み方をカタカナで)とかいろいろ
あって、お店の名前のカタカナ項目にカタカナ以外が入ってたりとか
しないかをチェックしています。
で、カタカナ項目にエラーがあるのにチェックした曜日が消えちゃダメ
なので、前に入力された情報を保持する方法を考えています
やっぱり曜日はセットで保持するべきだと思って、チェックボックスの
項目を配列でまとめています。
0535長文ですいません。
2006/09/28(木) 19:42:22ID:???もっとめんどくさがって、$useridに数回、endodeした値を
セッションに入れるじゃ、セキュリティはダメですかね!?
すいません、質問ばっかして><
0536nobodyさん
2006/09/28(木) 20:01:49ID:???でけた。
表示。
$day_arr=array("dummy","月","火","水","木","金","土");
for($i=1;$i<count($day_arr);++$i){
echo '<input name="ShopOpenW['.$i.']" type="checkbox" id="ShopOpenW['.$i.']" value="'.$day_arr[$i].'"';
echo "> ".$day_arr[$i];
}
受取
$post_data = $_POST['ShopOpenW'];
$day_arr=array("dummy","月","火","水","木","金","土");
for($i=1;$i<count($day_arr);++$i){
echo '<input name="ShopOpenW['.$i.']" type="checkbox" id="ShopOpenW['.$i.']" value="'.$day_arr[$i].'"';
if(array_search("$day_arr[$i]",$post_data)) echo "checked";
echo "> ".$day_arr[$i];
}
これでDo?
0538530=522
2006/09/28(木) 20:13:59ID:ESgbH1eMすごいのきたー。
これ使わせてもらいまっす。
ありがとうございました〜。
0539530=522
2006/09/28(木) 20:17:18ID:ESgbH1eM自分はユーザIDをセッションで保持することには余り抵抗が無いです
(単にドヘタレなだけだけど)。
ユーザIDとパスワードの両方を持ってるとまずいけどユーザIDだけなら
いいのでは?
あとはSQLインジェクションとかに気をつけて仮にユーザIDがばれても
悪さされないようにするのがいいと思います。
スレ汚しすまんとです。
0540長文ですいません。
2006/09/28(木) 20:21:03ID:???ありがとうございます!!!
じゃあ、当面は大丈夫だろうと、数回encodeして頑張ってみます。
もっと、勉強してからlogin用のフィールドを作り、ハッシュ化したりします。
本当にありがとうございます。
0541nobodyさん
2006/09/28(木) 21:59:01ID:???0542521=523=524=527=531=532=533=536
2006/09/28(木) 22:13:37ID:???ぅぉーがんばれー
そして、俺のMingに対しては誰も突っ込んでくれないんだな;;
もうちょっと文献探して見るかー。
0543長文ですいません。
2006/09/28(木) 22:22:41ID:???Ming、頑張ってください。
mingでflash作るなら、普通にflashで作ったほうが自分には早いので!笑
0544nobodyさん
2006/09/29(金) 01:33:21ID:???その処理のどこが危険なのか、サッパリ意味がわからん。
$useridはPOSTされた値じゃなくて、DBから取った値なんでしょ?
だったら、それをセッション変数に入れて使っても、何の危険も無い。
SQLインジェクション云々などと頓珍漢なことを言ってるヤツもいるけど、
セッション変数とSQLインジェクションは全く関係ないし。
>>541なんてかなりバカで、$useridを総当りとか言ってるけど、
セッション変数を総当りする(総当りに任意の値を格納していく)ことなんて出来ないし。
0546521......536=542
2006/09/29(金) 03:36:38ID:???勘違いしても、まぁ、しかないなかなぁ と思ったり思わなかったり。
でだ、そうなってくるとセッションって見れるん?とか不安を持ったりするんじゃないかな。
だとすると。ああ言う心配がでるのかと。
まぁ、レベルを下げた視野をで物事見ないと難しいよね。
>>541
に関してはナンセンス・・・。
0547nobodyさん
2006/09/29(金) 03:41:24ID:???そうか!
>>525はセッションとクッキーを混同してんのか!
セッション変数も、クッキーに格納した値と同じように
ユーザが中身を覗いたり改ざんしたり出来る…などと思い込んでるのかな?
0548長文ですいません。
2006/09/29(金) 08:10:44ID:???クッキーはブラウザ?、ユーザーのほうに保存されるって感じの認識かな。
$useridが簡単な値だと、セッションハイジャック、CSRFが簡単にされたり、
されたときが危険、なのかなぁって思って。
0550nobodyさん
2006/09/29(金) 11:37:32ID:???「$useridが簡単な値 → セッションハイジャック、CSRFが簡単にされる」
…などという無茶苦茶な論理構造をどうにかしろボケ。
どういう根拠でそんな100%間違ったこと言ってんだお前は。
スクリプト内の変数$useridに入れる値が簡単だろうが複雑だろうが、
セッションハイジャックやCSRFが発生する可能性とは全く関係ないことだぞ。
それからお前はIDを出せと言ってるだろうがチンカス。
0551nobodyさん
2006/09/29(金) 13:23:49ID:???セッションハイジャックされた時点でおわり
idが簡単とかいう問題じゃない
パスワードを暗号化してても認証後にハイジャックされたらパスワード関係ないし
0552nobodyさん
2006/09/29(金) 17:46:04ID:???ちゃんと説明しといて貶す!
やるねぇ
セキュリティに関して考える事はいい事じゃないかーヽ( ´ー`)ノ
がんばれー(*・ω・)
ヒント:CVS
私もコンパイルうまくいかなかったっけど、CVSの落としてきてCent3.7上で成功してるよ。
dependは、re2cとflex(GNUのやつ)だけだったはず。[@うちのLinux]
ちょっとまえにCent3.7でコンパイルさせたののSPECの該当部分。
BuildRequires: zlib-devel, perl,bison,libungif-devel,libpng-devel
Requires: libungif,libpng
0554nobodyさん
2006/09/29(金) 23:24:26ID:???鯖の負荷が高くてサービス不能攻撃が先に成立するけど。
0555nobodyさん
2006/09/30(土) 01:54:35ID:???3階間違えたら、画像の文字列を入力させられるよ。
0557nobodyさん
2006/09/30(土) 03:01:52ID:???ログイン時の失敗回数をカウントして画像の文字列入力などをさせることと、
セッションID総当り攻撃を防ぐこととは何の関係もないぞ。
総当りってのはログイン通過後のセッションIDを探る攻撃なわけで、
ログイン通過「前」の認証部分における制御は全く関係ない。
ところで、セッションID総当りって、パスワード(通常8〜12文字程度)総当りよりも
確率の低い(時間のかかる)攻撃であって、実際にはありえないだろう。
0558nobodyさん
2006/09/30(土) 11:13:19ID:???0559nobodyさん
2006/09/30(土) 12:04:04ID:???確率は低いと逝っても0じゃない以上、時間をかければ突破できる悪寒。
ログチェックとかで頻繁に検出して対処するしか無いと思う。
0560nobodyさん
2006/09/30(土) 13:42:55ID:???PHP標準のセッション使ってれば、まず通常考えうる時間内では無理。
さらに言えば、セッションIDをこまめに変更する仕組みをスクリプトに組み込めば良い。
>>559
そんなアホな攻撃、別の段階で検知されるだろう。っていうか検知すべきだろう。
0561nobodyさん
2006/10/01(日) 09:36:47ID:???変更する仕組みのデバッグが大変で、ほぼ固定が現実だと思う。
0562nobodyさん
2006/10/01(日) 12:25:20ID:???0563nobodyさん
2006/10/01(日) 12:38:56ID:???>変更する仕組みのデバッグが大変
大変じゃないよ。PHPにはセッションID再生成専用の関数があるんだから。
だからセッションIDとあるフィンガープリントを結びつけておいて、
フィンガープリントが異なったらセッションハイジャックが起きたものと見なし、
その時点でセッションIDを再生成し、異なるフィンガープリントでやってきた訪問者(おそらくクラッカー)の
IPを一定時間拒否すればよい。
0565nobodyさん
2006/10/01(日) 13:33:14ID:???どこが使いにくいのか具体的に指摘してみろっつーのボケ。
お前ずっと難癖つけてばっかりだけど、何も具体的なことが言えないんだな。
フィンガープリントには通常のブラウズでは変更されないような値を元に設定しておくので、
無駄にクラッカー認定されることはありえない。
お前のようなバカ頭で考えると、無駄に認定されまくり…の方法しか思いつかないんだろうな。
0566nobodyさん
2006/10/01(日) 14:18:02ID:DeMI3pkc$date1=date("Y年n月j日",$timestamp);
$date2=date("j,n,Y",$timestamp);
print($date1);
print($date2);
?>
このprintの部分、反映されると$date1と$date2が改行されず
くっ付いてしまうんですが、どうしたら改行できますか?
0567nobodyさん
2006/10/01(日) 14:28:03ID:???自分で改行を付けるヨロシ
・テキストとして -> \n を追加
・HTMLとして -> <br>を追加
0568nobodyさん
2006/10/01(日) 14:47:59ID:???この意味の違いは教えてください。
0569nobodyさん
2006/10/01(日) 15:31:12ID:DeMI3pkcprint($date1);<br>
print($date2);
?>
こういう感じですか?それだとエラーが出てしまうんですが。
0570nobodyさん
2006/10/01(日) 16:07:08ID:???・・・?!
まさかそう来るとは思わなかったわ・・
そりゃPHPの中に<br>書いちゃったら構文エラー吐くに決まってる。
print($date1 . "<br>");
>>568
最近似たようなの見たな
0571570
2006/10/01(日) 16:22:50ID:???ん、どうやら前スレぽいな
>>568
例えば
$a = 1; // 数値
$b = "1"; // 文字列
// 暗黙の型変換を許容した比較
$a == $b // true (暗黙の型変換で文字列が数値に変換され比較される)←暗黙の型変換
$a != $b // true ($a と $b は等しくない)
!$a == $b // false (演算子の優先順位により、先に!$aが評価され「0」になる)←演算子の優先順位
// 型変換を行わないより厳密な比較
$a === $b // false (型も比較する。この場合、文字列と数値なのでfalse)←型を含めた比較
$a !== $b // false (↑に同じ)
0572570
2006/10/01(日) 16:26:49ID:???0573nobodyさん
2006/10/01(日) 17:14:54ID:???error_reporting(E_ALL);を使っても
$hege = 2;//hogeのタイプミス
みたいなのは駄目ですよね?
0575nobodyさん
2006/10/01(日) 17:22:57ID:???なるほど。
でも、
$hoge = 3;
何かの処理。
$hege = 2;//hogeのタイプミス
みたいな感じで$hogeも使ってると、エラーも出ないですよね。
これはもうPHPはこうだ。って感じでなれるしかない感じですかね。
0576nobodyさん
2006/10/01(日) 17:28:35ID:???PHP5ならE_ALL | E_STRICTで使われていない旨の警告をしてくれるかもしれん。
が、そもそもPHPは変数の宣言は出来ないからどうしようもないというのが実情。
0577nobodyさん
2006/10/01(日) 17:36:33ID:???なるほど。とりあえず、PHP5の環境ではE_STRICT試してみます。
いまんとこPHP4使ってるので、気をつける。って感じで頑張ります。
0579nobodyさん
2006/10/01(日) 18:59:55ID:???っていうかそれが宣言に相当するのね
0580nobodyさん
2006/10/01(日) 20:20:13ID:???どこかのログにエラーとか出てくれないのですか?
0581nobodyさん
2006/10/01(日) 20:21:16ID:???0583nobodyさん
2006/10/01(日) 21:26:55ID:DeMI3pkc>print($date1 . "<br>");
あの、これもエラーになってしまうんですが。
0584nobodyさん
2006/10/01(日) 21:41:18ID:DeMI3pkc0585nobodyさん
2006/10/01(日) 23:22:23ID:???0587nobodyさん
2006/10/02(月) 00:09:50ID:???0588nobodyさん
2006/10/02(月) 07:16:11ID:???0589nobodyさん
2006/10/02(月) 08:09:50ID:???0590nobodyさん
2006/10/02(月) 15:51:11ID:???このたびは息子が覚えたての言葉を使いたいがあまり、
生半可な知識で余計な書き込みをしてしまいました。
>>585にはきつく言っておきますので、みなさんお許しください。
0591nobodyさん
2006/10/03(火) 21:24:34ID:nl5vMJY+ぱっと見、ちゃんと動いているように見えたのですが、
カタカナとマッチングしない文字の組み合わせで入力すると、
マッチングしないにもかかわらず、処理が通ってしまいました。
$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";
if(!(mb_ereg("^[0-9ア-ンーヴァ-ォヵヶ0-9]",$_POST["hoge"]))){
echo "カタカナと数字以外禁止";
}
$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";
これが通ってしまいます。
今はpreg_match_allを使っているのですが、これは上手く通す処理が記述できません
if(!($y=preg_match_all("/0-9/",$_POST["ShopNameKana"]))){
とすると数字だけ通す処理になりません。最終的には全角カタカナと半角数字、全角数字
以外を弾く処理にしたいのですが、どうしたらいいか御教jもといご教示下さい。
0592nobodyさん
2006/10/03(火) 21:33:25ID:???0593nobodyさん
2006/10/03(火) 22:48:58ID:???0594nobodyさん
2006/10/03(火) 23:11:44ID:???0595nobodyさん
2006/10/04(水) 00:50:49ID:???load data local infile "./new_data.csv" into table my_table(以下略
を実行すると、
fail sql: The used command is not allowed with this MySQL version
と表示されるけど、これってphpの問題?、それともmysqlの問題?
mysqlコマンドから問題無く読み込めるのでmysqlは無実っぽいけど?
0596nobodyさん
2006/10/04(水) 01:01:08ID:???0597nobodyさん
2006/10/04(水) 02:09:37ID:???phpからは load data local infileコマンドが実行できないのはなぜかってことだろ。
同じ鯖でバージョンが違うってことも無いし、コマンド実行権が違うことも無い。
0598nobodyさん
2006/10/04(水) 07:30:33ID:???これは関係あるのかな
http://dev.mysql.com/doc/refman/4.1/ja/load-data-local.html
PHPで可能なら他人のファイルも読み込めるということになるからな
0599591@携帯で改行ずれてそう
2006/10/04(水) 09:17:36ID:b45YYBRXサーバはLinuxだけど、PHPもHTTPDもシフトJISにしてあります。
日本語をプログラム内に含めるなとの指摘は自分がまだそれに違和感を覚えるほど
テクがないのと、mb_使えばいいって発想でとりあえず保留
(ソースにはコメントアウトして記載してあるけど
通すべき文字列まで弾かれるので保留が正しい理由)。
0600nobodyさん
2006/10/04(水) 09:31:36ID:???preg_matchにてsjis文字コードを指定振り分けして通す
だが、sjisを使う限り確実とは言えない
これはmbに関して振り分けしても同じ事が言える
どちらにしろ、一般利用ならば気にする事でも無いが
つか、アンタに言っても自我を通して文字指定を頑なに通すから無駄なんでしょうが
0601599
2006/10/04(水) 09:52:57ID:WY3OniKcSJISにしとけばとりあえずいいんじゃない?っていう初学者的発想です。
mbとSJISがダメなのか・・・。
ありがとうございます。ちょっと調べながら考えてみます。
0602nobodyさん
2006/10/04(水) 10:09:30ID:???phpじゃなくてmysqlがエラー出すのが変だが。
phpのバイナリ入れ替えるしか。
0603nobodyさん
2006/10/04(水) 10:21:08ID:???頭膿んでないか?
どう斜め読みしても、そんな理屈にはならんと思うが
2chじゃない他の駆け込み寺を探して聞く方が良い
レベルとかそういう事ではなく、意固地で柔軟な考えができない奴はトラブルを起こし
2chのような場で質問をするには不向きなタイプではないと思われ
0605nobodyさん
2006/10/04(水) 15:01:03ID:???0606nobodyさん
2006/10/04(水) 15:14:03ID:???0607nobodyさん
2006/10/04(水) 16:25:40ID:WY3OniKc配列$Aarrayを作る方法を教えてください。
例:
$A="ABCDE"だったら$A[0]"=A " $A[1]="B" $A[2]="C"みたいな
感じになるようにしたいです。
0608nobodyさん
2006/10/04(水) 16:36:08ID:???$A = 'ashitaha harerutoiina';
$Aarray = array();
for ($i = 0; $i < strlen($A); $i++)
{
$Aarray[] = $A[$i];
}
0609nobodyさん
2006/10/04(水) 16:40:48ID:???0612nobodyさん
2006/10/04(水) 16:49:56ID:???http://jp.php.net/manual/ja/function.preg-split.php
例 2. 文字列を文字要素に分割
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
0614nobodyさん
2006/10/04(水) 16:51:03ID:???608じゃなくて611
0615nobodyさん
2006/10/04(水) 16:52:02ID:???0616nobodyさん
2006/10/04(水) 16:55:19ID:WY3OniKcありがとう。マニュアルに書いてあるとは知らなかったです。
ぐぐっててなんか違うのばっかり出てきたからテクニカルなこと
しなきゃだめなのかと思ってました。
//マニュアルよりグーぐるっていうのがダメなのかしらん・・・。
0618nobodyさん
2006/10/04(水) 16:59:20ID:???0619nobodyさん
2006/10/04(水) 17:16:40ID:???echo $str[2];
結果: s
これ出来るの知らなかった・・・。でもあまり使うときないかなぁ。
0620nobodyさん
2006/10/04(水) 17:20:04ID:???検索をすると、一部の語(猫とだけ検索すると)だけが、?となります。
print_rなどで見ると↓のようになります。
Array ( [0] => ? )
Array ( [0] => 犬 )
ただ、複数の語で検索すると、正常に動作します。
Array ( [0] => 猫 [1] => 犬 )
Array ( [0] => 犬 [1] => 猫 )
これはどういったら直るでしょか?
phpもdbも全てEUCで書いてます。
どうか教えてください。
0622nobodyさん
2006/10/04(水) 17:39:04ID:???わかりずらくてすいません。php5、mysql5で、検索でdbからデータを抽出して
検索結果を表示させようとしているのですが、「猫」というキーワードで
検索すると、DBには猫というキーワードが入っているのに「該当するものは無い」と
表示されてしまいます。ただ、and検索で、「猫」と「犬」で検索すると、
それに当てはまるのもが表示されます。
これで、解りますかね??説明下手ですいません><
0624nobodyさん
2006/10/04(水) 17:54:17ID:???とりあえず、↓のようにデータを取得してます。
$keyword = trim(stripslashes($_GET['keyword']));
$keyword = mb_convert_kana($keyword, 's');
$arraykey = explode(" ", $keyword);
$where = " WHERE (tag LIKE '%$arraykey[0]%')";
for($i=1; $i < sizeof($arraykey); $i++){
$where.= " AND";
$where.= " (tag LIKE '%$arraykey[$i]%')";
}
$sql = "SELECT * FROM table1 ".$where." ORDER BY date DESC
LIMIT ".$PAGESIZE*($page-1).", $PAGESIZE";
これにmysql_fetch_arrayでデータを取得して、表示させてます。
0626nobodyさん
2006/10/04(水) 18:05:15ID:???ああ、「犬」は出るんだね。
0627nobodyさん
2006/10/04(水) 18:07:55ID:???はい。犬や魚は普通に検索できるんです。
猫が何故か、ダメで、<!-- 美乳 -->を書くと直るようなことも
聞いたので書いてみても、変わらなかったです。
0628nobodyさん
2006/10/04(水) 18:09:15ID:???最初から化けてる?
0629nobodyさん
2006/10/04(水) 18:13:31ID:???でも、複数(犬と猫)で検索だと、最初から文字化けしてません。
0630nobodyさん
2006/10/04(水) 18:24:18ID:???shift-jisからeucへの変更で直らんかねぇ
mbstringの設定ってeuc読み込みSJIS吐き出しなん?
0631nobodyさん
2006/10/04(水) 18:39:53ID:???mbstring.func_overload 0 0
直らなかったです。。
phpの設定は↓のようになってます。
mbstring.http_input auto
mbstring.http_output EUC-JP
mbstring.internal_encoding EUC-JP
mbstring.language Japanese
0632nobodyさん
2006/10/04(水) 18:41:00ID:???0633nobodyさん
2006/10/04(水) 18:56:23ID:???mbstring.http_output EUC-JP か・・・。
default_charsetもEUCなのかい?・・・。
0634nobodyさん
2006/10/04(水) 19:15:30ID:???前に、文字化けで大分悩んで、DBのほうもujisにちゃんと設定して
あるんですよね。
何故、「猫」だけ化ける><
0635nobodyさん
2006/10/04(水) 19:19:58ID:???euc読み込みsjis吐き出しだからなぁ・・・
0638nobodyさん
2006/10/04(水) 19:48:24ID:???0640591=374
2006/10/04(水) 20:14:40ID:???ありがとうございました。
//なぜSJISで作ってはダメなのか(はじめてのPHP5プログラミングには
PHP.iniにSJISを指定って書いてあったのでそれが当然と思ってたので)、
いろいろ調べてみようと思います。
また正規表現も言葉は聴いたことがあるけど、意味も知らなかったし、
使ったことも無かったのでいい勉強になりました。
最後に>>386
クソミソボロカス叩き煽るような書き方だったけどこれはきっとLinuxで言うところの
タコってやつですよね。
よく分からないけどドチクショー!!って感じで(思いっきり)空回りしたけど、
あなた(とこのスレの全員)のおかげで解決できました。
ありがとう。
0641nobodyさん
2006/10/04(水) 22:29:29ID:???「猫」で検索したときブラウザのアドレスバーにはどういう風にでる?
hogehoge.php?keyword=%C7%AD
ってでてるか?
0642nobodyさん
2006/10/04(水) 22:36:36ID:???出てる!全く同じだな。
解決策が全くわからんぞ。
「猫」のあとに空白入れても、普通に検索できるのに。
一単語だと絶対、化ける・
0643641
2006/10/04(水) 23:11:14ID:???つーことは...ブラウザからは間違いなくEUC-JPで送信されてきてて、
$_GETで取り出した直後でもう化けてる(違うものになってる)ってことだな。
php.iniを>>631と同じにいったん設定してから、
ちょっといじって実験してみた。
結論から言うと、
mbstring.encoding_translation On → 化け猫
mbstring.encoding_translation Off → 化けない猫
となるな。
mbstring.encoding_translationって送信されてきたデータとスクリプトの
文字コードが違うときに自動変換させるってやつだよな?(確か...うるおぼえだから違ってたら言ってくれ)
だから、この場合はOffにしちゃっていいんじゃね?
0644643
2006/10/04(水) 23:26:56ID:???でも、フォームに↓を追加すると化けなくなった。
<input type="hidden" name="dummy" value="美乳巨乳桃尻">
phpが文字コードを勘違いしない程度の情報があればOnで変換さしてもいいらしい。
GETでリクエストするとアドレスバーがアレになるけど。
0645nobodyさん
2006/10/04(水) 23:52:13ID:???やふーが!--京--をHTMLに埋め込んでるのと同じ理屈。
PHP4ってforでいちいちsplitしないといけないのか間抜けだ。
だからphp5にしろってことでsplitでサポートだろうけど。
0646642
2006/10/04(水) 23:58:11ID:???なるほど!すげー!!ありがとう!
ちなみに、美乳だけでも、文字化けしなかった!
あと、これでもできた→「龠」
mbstring.encoding_translationは
入力される HTTP クエリに関して、 文字エンコーディング検出および内部文字
エンコーディングへの変換を行う 透過的な文字エンコーディングフィルタを有効にします。
(参考:http://www.php.net/manual/ja/ref.mbstring.php)
0648nobodyさん
2006/10/05(木) 00:25:38ID:???この板にはこんなスレがあるのだよ。(10で止まってるけど
美乳テーブルから熟語を見つけるスレ
http://pc8.2ch.net/test/read.cgi/php/1153806009/
0649nobodyさん
2006/10/05(木) 00:37:07ID:???0650642
2006/10/05(木) 00:39:17ID:???多分、これはHTMLで最初に出力をさせるときに文字を判別するのには
役立っても、GETの値に対しては効果が無いように思われます。
ただ、643に書いてあるあるように、コメントとしてではなく
hiddenで埋め込めば、効果はありました。
0651nobodyさん
2006/10/05(木) 01:06:23ID:???同じような効果はあるけど、クライアント側とサーバ側で根本的に違う。
コメントで埋め込むと、ブラウザの文字コード判別の際に参考にされる。
hidden で埋め込むと、PHP側で送信されたデータの(ry
(mbstring.http_inputでEUC-JPを上位に持ってくれば解決したような気はする)
0652nobodyさん
2006/10/05(木) 01:43:51ID:???最近のIEは常にutfで返す仕様だったかも(未検証)。
0653nobodyさん
2006/10/05(木) 06:44:57ID:???ヘッダ部分じゃ効果ないのかな?
0654nobodyさん
2006/10/05(木) 08:13:16ID:???0655635
2006/10/06(金) 17:37:29ID:???文字認識用コードっていうstringを飛ばしてた時もあったけど。
いまでは、あんまり化けたっていう事聞かないのでそういうのは忘れちまったなぁ
EUC読み込みSJIS吐き出しでなんとかなったからなぁ;
多分、ブラウザの文字判定になぞらせないといみないっしょ?
IEの場合は殆どの部分で文字をなぞって判定してるからなぁ
0656nobodyさん
2006/10/06(金) 17:44:23ID:???>ブラウザの文字判定になぞらせないといみないっしょ
これってどうゆうことっすかね!?
意味とか方法教えてください。
0657nobodyさん
2006/10/07(土) 01:39:05ID:???ホームページビルダー9のバグで、既存の(正常な)EUCファイルをいじって
一文字でも入力したり削除したりなどの編集作業をすると、
勝手にUTF-8になってしまって文字化けのオンパレード、ってのがある。
ファイルを保存しなくとも、編集したその瞬間から、プレビュー画面で確認すると化けてる。
しかもIBMは公式にこのバグを認識してないらしく、対応パッチも出てない。
だけど同じ現象になってるユーザーは一定数いるようで、ググると同症例がいくつか見つかる。
とりあえずIBM氏ね、と言いたい。
0658nobodyさん
2006/10/07(土) 10:22:40ID:???0659nobodyさん
2006/10/07(土) 17:46:28ID:???EUCなんかで作るな禿。
0660nobodyさん
2006/10/07(土) 19:34:30ID:???誰かが書いた文章を、DBに保存して、DBから値を取り出して、htmlに出力するときは
htmlspecialcharsを使った方がいいのですよね?
あと、alt属性にその文章を持ってくる場合も、htmlspecialcharsを
使って出力したほうがいいのでしょうか?
初心者質問ですいませんが、宜しくお願いします。
0661nobodyさん
2006/10/07(土) 20:32:32ID:???"><script>alert("hoge");</script><img alt="
を入れられたらどうなるの?
0662nobodyさん
2006/10/07(土) 20:53:06ID:???それをDBに入れて、altのところに入れて見て見るってことですよね?
普通にマウスで、その画像のところに持っていっても普通に文字が表示される
だけです。
DBに入れるときはmysql_real_escape_stringを使って入れてます。
0663nobodyさん
2006/10/07(土) 21:21:54ID:???つまり、使えって言ってるんだと思うが?
0665nobodyさん
2006/10/07(土) 23:14:04ID:???0666nobodyさん
2006/10/07(土) 23:39:56ID:???0668nobodyさん
2006/10/08(日) 01:02:36ID:???いや、それがさぁ、それまでEUCでも何も問題なかったのに、
ある日突然、>>657で書いたような症状が発生したのよ。
だから原因不明で気持ち悪い。
むろん、アップデートとか一切やってない。
(ただし、Windowsアップデートは逐次行なっているので、その影響をビルダーが受けた可能性はある)
0669nobodyさん
2006/10/08(日) 01:16:09ID:???EUCなんて使ってるウィンドウズは無いよ。昔はsjis。
これから勉強し始めると困ることが起きると思うから、このスレを1から一度読んで始めた方が良いよ。
0670nobodyさん
2006/10/08(日) 01:27:31ID:???ところで
> しかもIBMは公式にこのバグを認識してないらしく、
って、何でさっさとサポートに電話して聞かないん?
あとホームページビルダー10ではツール→オプション→何たらで
入力エンコーディングと出力エンコーディングの設定ができるみたいだが、
これは9ではどうなっとるん?
0672nobodyさん
2006/10/08(日) 01:54:06ID:???ホームページビルダーでPHPを書いてんの?
0673nobodyさん
2006/10/08(日) 03:28:32ID:???たぶんホームページビルダー使えって規約なってんだよ。
0674nobodyさん
2006/10/08(日) 03:31:20ID:???0676nobodyさん
2006/10/08(日) 11:20:55ID:???ドリームウェーバでphp書くようなノリなんだろうね。
メモ帳でphp書いてる香具師も居るだろうしあり得る話し。
ワードとかビジュアルスタジオで書いてる香具師も居そうな悪寒。
0677nobodyさん
2006/10/08(日) 13:18:11ID:???びじゅあるすたじおには
PHPを書く為のプラグインがあるから
まだ良いとは思うが・・・
>>675
不正アクセス入門の入門とか
PHPサイバーテロの技法
って本を読めば書いてあるから読むと良い
0679657
2006/10/08(日) 13:41:46ID:???>>670 電話したけど、「再インストールしろ」の一点張り。
エンコーディングの設定は関係ない。だってそれを何もいじってなくてそれまで1年以上普通に使えてたのに、
ある日突然症状が出たからね。(でももちろん、一応その設定をいろいろ変更してみたけど、結果は変わらず)
>>672 いや、UIのデザインだけビルダー使って、出来たソースをPHPエディタにコピーしてる。
>>673 そんな規定ないよ。っていうか一人でやってるし。
>>676 だから問い合わせたってば。割れなんか使ったことない。しかもこんな安いソフトで割れ使うと逆にリスク。
0680nobodyさん
2006/10/08(日) 15:20:21ID:???ふせいあくせすにゅうもんのにゅうもんとか
ぴーえいちぴーさいばーてろのぎほう
ってほんをよめばかいてあるからよむといいよ!^^
>>679
> 電話したけど、「再インストールしろ」の一点張り。
しろよw
> だってそれを何もいじってなくてそれまで1年以上普通に使えてたのに、
ある日突然動かなくなるプログラムなんて狙ってそう作りでもしなければできやしないのに
原因をなすりつけられて死ねとまで言われるIBMカワイソス…(´・ω・)
どう考えてもお前が不用意に入れた他の何かが原因です。本当に(ry
0681nobodyさん
2006/10/08(日) 16:46:32ID:???>UIのデザインだけビルダー使って、出来たソースをPHPエディタにコピーしてる。
ここらへんに問題があるような気がするな。
別のツールつかって吐き出すソースと見比べてみる、とかしてみればいいんでね?
0685nobodyさん
2006/10/08(日) 19:22:32ID:???なんでこんなバカがこの板にいるんだよwwwwwwwwwwwwwwwwwww
0686nobodyさん
2006/10/08(日) 21:05:04ID:???0688657
2006/10/09(月) 00:27:28ID:???>>681 それは全く関係ない。ビルダー用のファイルは、それはそれで別に保存してあるから。PHPエディタでの保存や変更には影響されないようにしてる。
>>685 ビルダーで何か問題ある? お前はHTML組む時に何使ってんの?
0689nobodyさん
2006/10/09(月) 01:42:26ID:???PHPと何の関係もないくだらない話をするお前は、ビルダースレに行け
無能なお前の事だ、どうせビルダースレがどこにあるか分かってないのだろう。だから、親切な俺が教えてやる。
【Web製作】ホームページビルダースレッドその29♪(・ω・)ノ
http://pc8.2ch.net/test/read.cgi/hp/1156599775/
0690nobodyさん
2006/10/09(月) 01:44:04ID:???0691657
2006/10/09(月) 03:25:01ID:???http://72.14.235.104/search?q=cache:dtA7ZjmgQ_MJ:www.pchajime.com/cgi-bin/situmon/
thread.cgi%3Fnumber%3D168307+%E3%83%9B%E3%83%BC%E3%83%A0%E3%83%9A%E3%83%BC%E3%82%B
8%E3%80%80%E3%83%93%E3%83%AB%E3%83%80%E3%83%BC%E3%80%80%E5%8B%9D%E6%89%8B%E3%81%AB%E3%80%80UTF-8&hl=ja&gl=jp&ct=clnk&cd=16
↑俺と全く同じ症状。回答者の人たちの気持ちは分かるし、一般的には正しいアドバイスだと思うが、
この件に関しては的外れ。まあ、実際にこのトラブルに遭遇してみないと分からないだろう。(このスレで俺を罵倒してる人たちも同じ)
http://www.hamusuta.net/hushigi/modules/xfsection/article.php?articleid=10
> 一度、EUCコードで保存すると、以後、上書き保存では、EUCコードで保存されるはずだと思うのですが、何度か保存していると、異なるコードで保存されてしまうことがあります
http://hpbuilder.net/style.html
http://72.14.235.104/search?q=cache:wgxG3g1G9ccJ:pc8.2ch.net/test/read.cgi/hp/
1156599775/+UTF%E3%80%80%E5%8B%9D%E6%89%8B%E3%80%80%E3%80%80%E3%83%93%E3%83%AB%E3%83%80%E3%83%BC&hl=ja&gl=jp&ct=clnk&cd=7
http://72.14.235.104/search?q=cache:C9n3u2OGjOgJ:ooeyama.exblog.jp/3325185/
+%E3%83%93%E3%83%AB%E3%83%80%E3%83%BC%E3%80%80utf%E3%80%80%E5%8B%9D%E6%89%8B
%E3%81%AB%E3%80%80%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91&hl=ja&gl=jp&ct=clnk&cd=15
0692nobodyさん
2006/10/09(月) 03:36:56ID:???0693nobodyさん
2006/10/09(月) 04:32:32ID:???その書き込みを丸ごとコピーしてIBMにメール送れば??
まあどうせソフト会社のサポートなんてどこも糞だから
マトモな返事は返ってこないだろうけどwww
0694nobodyさん
2006/10/09(月) 06:09:29ID:???検索ワードが「ビルダー 勝手に文字化け」とか「utf 勝手 ビルダー ビルダ」とかなんて・・もう爆笑wwww
おいおい、ホントにネット覚えたての小・中学生なのか?www
ビルダーを窓から投げ捨ててDWでも買えばいいじゃないかと言おうと思ったが、お小遣いで買うには高いな。
0695nobodyさん
2006/10/09(月) 06:37:24ID:???まあホームページまわりはテキストエディタひとつあれば全部余裕の
俺や他の大多数のスレ住人からすれば唐突にホームページビルダーが出てきた時から
ずっと理解に苦しみ続けているわけだが。
0696nobodyさん
2006/10/09(月) 16:42:41ID:???バカはお前。
それ以外に適切な検索ワードないっしょ。
>>695
再インストールしてもダメだったんだが。
話題というのは常に展開していくものだ。自治厨ほどつまらないものはない。
0697nobodyさん
2006/10/09(月) 16:51:33ID:???0698nobodyさん
2006/10/09(月) 17:17:02ID:???馬鹿と言いつつ反応してるwww
>>679で言ったのに>>696ではもう忘れてるのかwww記憶力ねぇなwwwww
> それ以外に適切な検索ワードないっしょ。
ぅゎぁ・・この人言い切っちゃったよ。頭悪いねー
お前は本当に馬鹿だ、どうしようもなく低脳だ。
おk、俺が解決してやろう。慈善事業ってやつだ
お前が書く奇怪な文章ではエスパーしか理解できん。
「ビルダーの全設定ファイル」と「関連するレジストリ」と「文字化けした状態のサンプルファイルを数個」をどこかにうpれ
0699nobodyさん
2006/10/09(月) 17:25:09ID:???0700nobodyさん
2006/10/09(月) 17:25:43ID:???0701nobodyさん
2006/10/09(月) 17:31:10ID:???0702nobodyさん
2006/10/09(月) 19:18:51ID:???/root/mgkboard.phpにIDとPASSと音楽ファイル番号をGETで与える事でで初めて
ストリーミング再生できるようにしたいのです。
ストリーミング再生は
<?php
header('Content-Type: audio/x-mpegurl');
echo 'http://hoge/root/music/'.$_GET['NUM'].".mp3";
?>
こんな感じで考えてるんですが、これだとphp経由じゃなくても、直接musicディレクトリにアクセスしてダイレクトでナンバー指定してファイルを聴けてしまいます。
musicディレクトりにindex.html等でディレクトリ内が見えないようにしても、これは防げないので
phpのスクリプト経由でないと聴けないようにしたいのですが、どのようにすればいいのでしょうか?
想定してるのは、WMPに直接PHPスクリプトのURLを指定して、ストリーミングする方式です。
0703nobodyさん
2006/10/09(月) 19:32:35ID:???0706nobodyさん
2006/10/09(月) 22:58:38ID:???あくまでURL渡してるだけなんだから
それやったら、アクセス出来ないじゃん。
php→ファイルと言う手順を踏ませるには
リファラを見るしか無いと思うんだが・・・
0707nobodyさん
2006/10/10(火) 00:31:07ID:???>リファラを見るしか無い
なんかすごく見当違いなこと言ってるな。
そんなことはストリーミングの方法には全く関係ない話だぞ。
0708nobodyさん
2006/10/10(火) 00:37:35ID:???URLを入力してアクセスする事とほぼ同じだったりする。
0709nobodyさん
2006/10/10(火) 02:10:00ID:???ストリーミングはやってないが
俺が実際作ったプログラムで似たようなのがある
元ファイル名とダウンロード対象の名前をDBかなんかで管理して
DLする時だけ元ファイル名でDLさせてやれば良いかも
元の名前 : hogehoge.mp3
アップ時 : ajs90D8das2309dfasj.tmp
こういうのを管理しておいて
スクリプトを叩いた時に
hogehoge.mp3でDLできるようにヘッダを吐いてやればいい
0710nobodyさん
2006/10/10(火) 15:33:47ID:???fp関数、fopen関数等は、同一ファイル内で複数記述してはいけないもの
なのか、お教えいただけないでしょうか。宜しくお願いします。
$fp = fopen(URL,"r"); これで始まるやつです。
外部ファイルを読み込んで、whileでループさせるやつですが、
単体ではちゃんと機能するfopen関数を複数ヶ所に記述させると、白画面に
黒い字のエラーメッセージを返してきます。
複数ヶ所に記述できる回避策をご存知の方、知恵を貸していただけないでしょうか。
よろしくお願いします。
0711nobodyさん
2006/10/10(火) 15:37:15ID:???0712nobodyさん
2006/10/10(火) 15:59:13ID:???単一ファイルに対しては、一個しかfpを開く必要はないわな。
で、複数ファイルの場合は、デッドロックがかからないように注意する。
0713710
2006/10/10(火) 16:04:24ID:???「Parse error: syntax error, unexpected $end in 〜 on line 585(終端です)」
とだけ出ます。宜しくお願いします。
0714nobodyさん
2006/10/10(火) 16:07:15ID:???多分どこかに}とか)とか;が抜けてる。
0715nobodyさん
2006/10/10(火) 16:07:41ID:???単なる文法エラー。
どっかで行末に セミコロン ; が抜けているとか、 ダブルクォーテーションが閉じられてないとか、
そんなヒューマンエラー
0716710
2006/10/10(火) 16:09:16ID:???単一ファイルです。シロートデザなので、プログラミングは全く経験はないです。
周りにプログラマーも居なくて、あっちこっちググってみましたが、コレという
回答に未だお目にかかれず状態です。
0717nobodyさん
2006/10/10(火) 16:09:51ID:X5aWB0Eu簡単な、phpinfo 関数を使った簡単なスクリプトを作成してみたんですが、
白画面に黒い字のエラーメッセージを返してきます。
いったい何が間違っているのかよく分かりません。
誰か知恵を貸していただけないでしょうか。
よろしくお願いします。
0718710
2006/10/10(火) 16:11:58ID:???連絡まで少し時間を置くかもしれません。一旦失礼します。
0721nobodyさん
2006/10/10(火) 17:21:25ID:???間違っているのは二番煎じで解答が貰えるとか思っているお前の脳味噌だ。
オリジナリティの欠片も無い2匹目のドジョウ狙い野郎は(゚∀゚)カエレ!!
と言いたいところだが、ちゃんとIDを出している点を評価してチャンスをやろう。
…で、エラーメッセージの内容は?
>>720
生`。
手を加えた場所を順次消したり戻したりしながら文法チェックを繰り返せば
そのうち問題がある場所が特定できるはずだ。まあ頑張りな。
0722nobodyさん
2006/10/10(火) 17:26:23ID:X5aWB0Euありがとうございます!メッセージは次のようなものでした。
Forbidden
You don't have permission to access /~mana/ on this server.
--------------------------------------------------------------------------------
Apache/1.3.33 Server at sugi.prv Port 80
0725nobodyさん
2006/10/10(火) 23:28:35ID:???IISなら日本語でエラーメッセージが出るから馬鹿でも理解しやすい。
NGワード:ビルダー
0726nobodyさん
2006/10/11(水) 01:41:54ID:???0727722
2006/10/11(水) 10:03:22ID:???404 File Not Found.
というメッセージでした。
にしようかとも思っていたんだが。
0728nobodyさん
2006/10/11(水) 14:36:53ID:???後で恥ずかしくなって最初から釣りだったという事にしたい気持ちは分かるが、
今更そんな事して取り繕ってもおまいの程度はもう明らかですからー!!
0730nobodyさん
2006/10/11(水) 15:08:19ID:???0733nobodyさん
2006/10/11(水) 16:03:27ID:???この自称「ネタ」とやらはぶっちゃけ糞詰まらん、
だからここはいっそネタを装って実はやっぱり本気でしたということにしておいた方が
いくらかはまだ面白いと言われてる事に気付こうよ。
すまないけど君のネタは>>721で一度ぶった切られた後に温情で延命されているんだ。
きつい言い方になってしまうけど、ネタとしては1レスで即退場するレベルだったんだよ。
0734722
2006/10/11(水) 16:41:54ID:???ぬけぬけとまあ「糞詰まらん」とかってもうアボガドw
もうちょっとプロファイリング能力に磨きをかけてから出直して来い。
すくなくとも、ネタはネタと見抜けるレベルでないと2chは難しいぞ?
きさまのようなやつには、「半年ROMってろ」という言葉がお似合いだw
0735nobodyさん
2006/10/11(水) 17:06:03ID:???オマエモナ-。
つーか質問スレでネタに走るなボケ。
0737nobodyさん
2006/10/11(水) 17:23:50ID:???0738nobodyさん
2006/10/11(水) 19:35:32ID:???次の質問ドゾー
0739nobodyさん
2006/10/11(水) 23:14:15ID:???0740nobodyさん
2006/10/11(水) 23:25:10ID:???0741722
2006/10/11(水) 23:35:52ID:???733を俺が書いたと勘違いしてるのか?違うんだがな。さすが低プロファイリング能力者。
733は俺を釣ろうとした書き込みだぞ。
733に引っかかって俺がマジレスしたら、それをプギャーする予定だったんだろうが、
結局は735がひっかかってしまった。
0742722
2006/10/11(水) 23:39:24ID:???「何だネタかよ。帰れ!」
みたいなレスを受けるとばかり思っていたんだが、
どうやらお前らの能力を過大評価していたようだ。俺が悪かったよ。
0743nobodyさん
2006/10/12(木) 00:05:59ID:???まあとりあえずだ、最初から二番煎じはカエレと言われてるんだからもう来るな。
0745nobodyさん
2006/10/12(木) 01:10:11ID:???彼はこれでも上出来な方なんだ…。
0746nobodyさん
2006/10/12(木) 01:35:40ID:???できない子にはできない子の教育をすれば良いのに、全員ができるようにしようとするのは無理が有る。
無理な物は無理。素質が無いと思って諦めた方が良いよ。他にできることが有るはずだから他でガンガレ。
0747nobodyさん
2006/10/12(木) 04:41:45ID:???俺には向いてないから無理ーで逃げられたらどんなに楽か。
プログラミングに関して以外でも同じことだと思うよ。
とりあえず人並みになるくらいは努力次第で何とかなる、と信じている。
0748nobodyさん
2006/10/12(木) 05:15:48ID:???0749nobodyさん
2006/10/12(木) 06:13:42ID:???0750nobodyさん
2006/10/12(木) 07:17:16ID:???転職汁って感じだが。
貧乏人がサラ金で入学金借りてまで、高額の私立学校に通わせるって無理し杉。
身の丈に有った公立学校でも通ってろよ。
0751nobodyさん
2006/10/12(木) 07:52:57ID:???0752nobodyさん
2006/10/12(木) 08:11:16ID:???0753nobodyさん
2006/10/12(木) 14:53:14ID:???0755nobodyさん
2006/10/12(木) 17:17:08ID:???誰も全ての国公立が悪いなんて言ってない罠。
0756nobodyさん
2006/10/12(木) 17:59:17ID:???駒場も「身の丈にあった公立」だろ。
0758nobodyさん
2006/10/12(木) 22:17:42ID:???あんな唐突に斜め後方大ジャンプみたいな意味不明な話題転換をするわけがない。
きっと>>750の真ん中の空白の一行にはその前後を有り余る説得力をもって結合する
常人には計り知れぬ脅威の文脈が隠れているんだよ!
…俺には読めないが。
0760nobodyさん
2006/10/12(木) 23:29:51ID:???0761nobodyさん
2006/10/13(金) 01:03:00ID:???0762nobodyさん
2006/10/13(金) 12:46:58ID:XqR5qXXX0763nobodyさん
2006/10/14(土) 10:16:46ID:???東大が身の丈に合う香具師も居るし、都立中学校が身の丈に合う香具師も居る。
私立の入学金すらローンで借りないと払えないような香具師が、私立に通うのは無理してるだろってこと。
0764nobodyさん
2006/10/14(土) 12:10:14ID:???他人様が無理しようが何しようが勝手だろう。お前には関係のないことだ。
とりあえず最善の良策は、まずお前が今すぐ氏んで消えることだ。
0765nobodyさん
2006/10/14(土) 14:19:34ID:???どんなに楽だろう、と、そっちが気になるなり。
0766nobodyさん
2006/10/14(土) 14:21:34ID:???0767nobodyさん
2006/10/14(土) 15:21:14ID:???array
database =>
array
real =>
array
adapter => mysql
host => localhost
database => phppro
username => asial
password => password
こんな配列があるんですが、例えばusernameのasialを取り出したいときってどうすればいいのでしょうか?
自分で試してみたんですが、こんな風になりました。
foreach ($array as $bb) {
foreach ($bb as $cc) {
foreach ($cc as $dd => $ee) {
if ($dd == 'username') {
echo $ee;
}
}
}
}
もっと簡単にできないでしょうか?
0768nobodyさん
2006/10/14(土) 15:35:07ID:???echo array['database']['real']['username'];
0769nobodyさん
2006/10/14(土) 16:10:48ID:???echo $array['database']['real']['username'];
としたらasialが表示されました。
0770nobodyさん
2006/10/14(土) 17:21:08ID:???と、Cからの移行組みの俺が触りたての時に感動した事。
0771nobodyさん
2006/10/14(土) 17:26:47ID:???phpはCで作られてるし。
0772nobodyさん
2006/10/14(土) 17:42:50ID:???0773nobodyさん
2006/10/14(土) 18:00:05ID:???0774nobodyさん
2006/10/14(土) 19:15:56ID:???教えていただきたいのですが、phpでデータを送信するスクリプトを書いたのですが、
inputでデータを送信するときに、submitではなく、imageを使ってデータを
送信したいのですが、上手く送信できません。
普通にsubmitにするとできるのですが、imageだと、というかIEだと送信されません。
Firefoxで送信できたのですが。
どうかやり方の程、教えてください。
<input type='image' src=aaa.gif' alt='aaa' value='aaa' name='aaa'>
0776nobodyさん
2006/10/14(土) 20:40:12ID:???それでみたところ、firefoxではvalueの値が受け取れていましたが、
IEではvalueの値が受け取れていませんでした。
これは、どうすれば解決できるでしょうか?お願いします。
0777nobodyさん
2006/10/14(土) 20:42:01ID:???0779nobodyさん
2006/10/15(日) 12:27:35ID:???0780nobodyさん
2006/10/15(日) 13:03:31ID:???0781nobodyさん
2006/10/15(日) 16:54:01ID:hzF42wCh代わりに<% %>をデフォルトオンにして、推奨しない理由って何?
0782nobodyさん
2006/10/15(日) 17:19:45ID:???0783nobodyさん
2006/10/15(日) 17:29:57ID:???0784nobodyさん
2006/10/15(日) 17:43:44ID:???0785nobodyさん
2006/10/15(日) 20:54:06ID:???0786nobodyさん
2006/10/16(月) 16:50:35ID:???マジですか?
PHPの変数はCOBOLの用にして使うものですか?
0788nobodyさん
2006/10/16(月) 17:23:04ID:???プログラマの良識であり常識であると思っていました。
本当にマジ?
0789nobodyさん
2006/10/16(月) 18:33:17ID:ecpKZqzB0790nobodyさん
2006/10/17(火) 09:12:48ID:???構造体みたいな雰囲気で使う。
0791nobodyさん
2006/10/17(火) 09:22:56ID:???これ無しではあり得ないなw
0792nobodyさん
2006/10/17(火) 09:32:14ID:???0793nobodyさん
2006/10/17(火) 19:37:35ID:???0794nobodyさん
2006/10/17(火) 22:18:19ID:???あれは、実質標準IO(のインプット側だけ)の役割果たしてるだろ。
0795nobodyさん
2006/10/18(水) 00:39:39ID:OoG98wMC例えばindex.php(本体となるページ)の中にフォーム部分だけを記述したform.phpを
includeで読込みました。(複数ページに同じフォームを設置したい為)
form.phpの中では
<form action="<?php echo( $_SERVER[ "PHP_SELF" ] )?>" method="post">
と記述しています。この状態で送信するとform.phpが単体で表示されてしまいます。
index.php(本体となるページ)にフォーム部分を直接記述しないでincludeで読込んだファイルから送信処理をした後もindex.php(本体となるページ)が表示されるようにする何かよい方法はないでしょうか?
0796nobodyさん
2006/10/18(水) 00:44:47ID:???$self = $_SERVER['PHP_SELF'];
include 'form.php';
-form.php-
<form action="<?php echo $self; ?>" method="post">
とか
0797nobodyさん
2006/10/18(水) 00:51:10ID:OoG98wMC0798nobodyさん
2006/10/18(水) 01:39:51ID:3inEdCG7$lines = file('bbs1.txt');
if ($_POST['write']) {
$name = htmlspecialchars($_POST['name']);
$contents = htmlspecialchars($_POST['contents']);
$reference = htmlspecialchars($_POST['reference']);
$contents = str_replace("\r\n", "<br>", $contents);
$contents = str_replace("\r", "<br>", $contents);
$contents = str_replace("\n", "<br>", $contents);
$time = date("Y/m/d H:i:s");
$data = "$name\t$contents\t$reference\t$time\n";
array_unshift($lines, $data);
}
foreach($lines as $line) {
$line = rtrim($line);
$items = explode("\t", $line);
print "<p>{$items[0]}{$items[1]}{$items[2]}{$items[3]}</p>\n";
}
$fp = fopen('bbs1.txt', 'w');
foreach($lines as $line) fputs($fp, $line);
fclose($fp);
?>
0799nobodyさん
2006/10/18(水) 01:41:50ID:3inEdCG7書き込みをなしにするにはどこをどういじればよいのでしょうか。
<form method="post" action="bbs1.php">
お名前: <input type="text" name="name">
<select name="reference">
<option selected>情報取得先</option>
<option>公式設定</option>
<option>遠い記憶</option>
</select>
<textarea name="contents" cols="60" rows="5"></textarea>
<input type="submit" name="write" value="送信">
</form>
<hr>
0801nobodyさん
2006/10/18(水) 02:04:00ID:???if( empty($_POST['name']) or $_POST['reference']==何たら or empty($_POST['contents']) ){
エラー処理
}
else{
書き込み処理
}
とか。
strlenでもいいけど。(参照:http://www.php.net/manual/ja/types.comparisons.php)
あとjavascriptとか。
0802799
2006/10/18(水) 02:10:38ID:3inEdCG7言われた事整理してみます。
0803nobodyさん
2006/10/18(水) 03:47:58ID:???同じインタプリタ。
0804nobodyさん
2006/10/18(水) 12:50:22ID:???なんでもないよね?
globalなんてなるべく使わないというのが経験則からも正しいと思うんだけど、
なぜかgloalを使うことにがんばっちゃってる人がいるなぁ。
PHPプログラマってのは他の言語経験の無い人の割合が高かったりするのかな?
0805nobodyさん
2006/10/18(水) 13:35:53ID:???0806nobodyさん
2006/10/18(水) 14:54:58ID:3inEdCG7書き込みを行わない処理と言うのはどう記述をすればいいのでしょうか?
0807nobodyさん
2006/10/18(水) 14:56:36ID:???書き込み処理
}
0809806
2006/10/18(水) 15:10:06ID:3inEdCG7$lines = file('bbs1.txt');
if ($_POST["reference"] == "0") {
$reference = "公式設定"; }
elseif ($_POST["reference"] == "1") {
$reference = "遠い"; }
else {
$reference = "情報取得先未回答"; }
if ($_POST['write']) {
$name = htmlspecialchars($_POST['name']);
if (!$name) {
$name = "名無しさん"; }
$reference = htmlspecialchars($_POST['reference']);
$contents = htmlspecialchars($_POST['contents']);
$contents = htmlspecialchars($_POST['contents']);
$contents = str_replace("\r\n", "<br>", $contents);
$contents = str_replace("\r", "<br>", $contents);
$contents = str_replace("\n", "<br>", $contents);
$time = date("Y/m/d H:i:s");
$data = "$name\t$contents\t$reference\t$time\n";
array_unshift($lines, $data); }
foreach ($lines as $line) {
$line = rtrim($line);
$items = explode("\t", $line);
print "<p>{$items[0]}{$items[1]}{$items[2]}{$items[3]}</p>\n"; }
if ($contents) {
$fp = fopen('bbs1.txt', 'w');
foreach($lines as $line) fputs($fp, $line);
fclose($fp); }
else {}
?>
0810806
2006/10/18(水) 15:11:19ID:3inEdCG7書き込まないようにしたいのですが
実際はコメントなしでボタン押しても
バンバン書き込みされるんです・・・・・・・・・・・・・
0811nobodyさん
2006/10/18(水) 15:12:18ID:???0812806
2006/10/18(水) 15:26:29ID:3inEdCG7if ($contents) {
に代入するんですよね?
今試したのですが書き込まれてしまいました。
0814806
2006/10/18(水) 15:38:40ID:3inEdCG7白紙ページに飛ばされてしまいました・・・・・・・・・・・
書き込みはされていなかったのですが・・・・・・・・
0816806
2006/10/18(水) 15:49:08ID:3inEdCG7ご協力感謝します。
0817806
2006/10/18(水) 17:49:45ID:3inEdCG7本当にありがとうございました。
0818nobodyさん
2006/10/18(水) 19:45:35ID:7mti2GK8どこか作り方がのってるお勧めのサイトはないでしょうか?
あとPHPはインストールしたんですがアパッチって必要ですか?
0819nobodyさん
2006/10/18(水) 20:00:25ID:???http://www.php.net/manual/ja/
アパッチは無しでもPHPがちゃんと動いてるんなら別にいいんじゃね?
…動くのならな。
0820nobodyさん
2006/10/19(木) 06:13:33ID:???「メールフォーム」として機能するかどうかは別だけど。
0821806
2006/10/19(木) 11:14:20ID:hbO6oYme$items = explode("$sep", $fname[0]);
$no = $items[0] + 1;
$name = htmlspecialchars($_POST["name"]);//$_POST["name"]に特殊文字があればhtmlで表記できるように,かつタグを無効化し$nameへ
if (!$name) {
$name = "名無しさん";
}
$reference = htmlspecialchars($_POST["reference"]);//$_POST["reference"]に特殊文字があればhtmlで表記できるように,かつタグを無効化し$referenceへ
if (!$reference) {
$reference = "未確定情報";
}
$message=htmlspecialchars($_POST["message"]);//$_POST["message"]に特殊文字があればhtmlで表記できるように,かつタグを無効化し$messageへ
if (get_magic_quotes_gpc()){
$name = stripslashes($name);
$reference = stripslashes($reference);
$message = stripslashes($message);
}
$message = str_replace("\r\n", "\r", $message);
$message = str_replace("\r", "\n", $message);
$message = str_replace("\n", "<br>", $message);
$string = $no.$sep.$name.$sep.$reference.$sep
.$message.$sep.date("Y:m:d: H:i:s")."\n";
$lines = file($fname);//$name(gbook.txt)を読み込み$lineへ
$file = fopen($fname, "w") or die("OPENエラー $fname");
flock($file, LOCK_EX);//ファイルを排他ロックする=この処理が終わるまでファイルのロックを継続
fputs($file, $string);//$fileに文字列バイナリモードで書き込む?
for($i=0; $i<10; $i++)
fputs($file, $lines[$i]);
flock($file, LOCK_UN);//ファイルのロックを解除する、この場合排他ロックを解除する
fclose($file);//$fileを閉じる
}
0822806
2006/10/19(木) 11:15:45ID:hbO6oYmeif(file_exists($fname)){//もし$fnameが存在するならば
$file = file($fname);//$fname(gbook.txt)を読み込み$fileへ
for($i=0; $i<8; $i++){
@list($no, $name, $reference, $message, $date)=explode($sep, $file[$i]);
echo $no;
echo $name;
echo " $reference";
echo " $date";
echo "$message".'<br>';
}
}
?>
0823806
2006/10/19(木) 11:17:35ID:hbO6oYme申し訳ないのですがお力添えいただけませんか?
0824nobodyさん
2006/10/19(木) 11:26:14ID:???0825nobodyさん
2006/10/19(木) 13:08:24ID:???0826nobodyさん
2006/10/19(木) 14:08:33ID:G4Zd3K8e$_SESSION["test"] = $_POST["test"];
とした$_SESSION["test"] の値を別のページで参照したいのですが
例えばindex.php(ベースとなるページ)の中にincludeで読み込んだaaa.phpでも参照できる方法はないでしょうか?
aaa.phpの表示内容の一部をisset($_SESSION["test"])で切替えたいのですが
$_SESSION["test"] の値がindex.php(ベースとなるページ)では参照できるのですがaaa.phpでは参照できません。
関係ないかもしれませんがsession_start();をaaa.phpに記述した場合、しなかった場合、記述位置等試してみましたがどうにもうまくいきません。
何かよい方法があればご指導お願い致します
0827nobodyさん
2006/10/19(木) 19:25:38ID:???いいか、落ち着いてソースを見るんだ。
aaa.php では $_SESSION['test'] じゃないものを参照してるだろう?
0828nobodyさん
2006/10/19(木) 19:49:15ID:G4Zd3K8e有難うございます。もう一度よく見直してみます。
0829nobodyさん
2006/10/20(金) 03:26:13ID:NpR8vlmiこのサイトのように記事の先頭のラジオボタンにチェックを入れて
下部に送信ボタンをつける場合、
このページの書き込みフォーム以降〜最後尾まで削除用フォームで囲まないと
いけないのでしょうか?
それともjavaなど以外で何かコツがあるのでしょうか?
0830nobodyさん
2006/10/20(金) 03:29:20ID:vHyympMEPHP以前の問題、HTML勉強してソース嫁
0831nobodyさん
2006/10/20(金) 04:39:06ID:???0832nobodyさん
2006/10/20(金) 06:56:53ID:BjlN/o9s有難うございます。落ち着いてソースを見直したおかげで解決しました。
実は$_SESSION['test'] は見直してもそこはなんとか正しく記述できてました。
その為にますますどうしたらいいかわからなくなって、ただただ見直して意味の無い変更を繰り返す事しかできなかったのですが、やっと見つける事ができました。
includeのファイル名の指定が絶対パスで指定してしまっていたところを相対パスに修正したら参照できるようになりました。
相対パスと絶対パスでこんなにも結果が違ってくるものなんですね。(初心者ですみません)勉強になりました。ソースを見直したおかげです。本当に有難うございます。
0834nobodyさん
2006/10/21(土) 10:04:19ID:???グローバル変数しか有りません。
socket_listen()で80番ポートを掴めば、phpだけでウェブサーバも作れるよね。
ttp://jp.php.net/sockets のサーバプログラムの$portを80にすればウェブサーバの出来上がり。
ブラウザでつなげてきたら、好きな文字列を返せばブラウザが表示してくれる。
ブラウザが送ってくる、GET /とかの文字列を読み込んで、返す文字列を変えればいろんなページが有るように見える。
0835nobodyさん
2006/10/21(土) 10:13:53ID:???そういう用途なら、rubyかperlの方がいいね。
0836nobodyさん
2006/10/21(土) 11:19:04ID:???0838nobodyさん
2006/10/22(日) 01:05:21ID:???まぁ、突然basicの話を振る所からしてお察し
0839nobodyさん
2006/10/24(火) 20:43:21ID:???0840nobodyさん
2006/10/24(火) 21:20:36ID:???0841nobodyさん
2006/10/24(火) 21:55:55ID:???0842nobodyさん
2006/10/25(水) 01:41:19ID:xzcKcppxPHP4 PHP5
信頼性 - -
速度 - -
簡単性 - -
将来性 - -
凡例
・すごく勝ってる ◎
・勝ってる ○
・引き分け -
・負けてる △
・すごく負けてる ×
あー、なんか相対評価と絶対評価があいまいですが、超スーパー素人なのでゆるしてくださいゆるしてください。
0843nobodyさん
2006/10/25(水) 07:31:16ID:???信頼性 △ △
速度 - -
簡単性 △ △
将来性 × △
0844842
2006/10/25(水) 11:17:33ID:???ありがとござますありがとござます。
・・・なんとゆーか・・・悩ましいです・・・この表で答えが決まると思ったのに・・・ぅぅ・・・
0845nobodyさん
2006/10/25(水) 13:39:01ID:???0846nobodyさん
2006/10/25(水) 13:55:40ID:???0847nobodyさん
2006/10/25(水) 14:37:09ID:???PHP4 PHP5 PHP6
信頼性 △ ○ ◎
速度 △ ○ ◎
簡単性 △ ○ ◎
将来性 △ ○ ◎
0848nobodyさん
2006/10/25(水) 16:57:31ID:???PHP4 PHP5
信頼性 - -
速度 ○ ?
簡単性 ◎ -
将来性 - ○
4は枯れてるので将来性はむしろ不要。
0849nobodyさん
2006/10/25(水) 19:24:34ID:???PHP4 PHP5 Ruby
信頼性 × × ◎
速度 × × ◎
簡単性 × × ◎
将来性 × × ◎
0851nobodyさん
2006/10/25(水) 20:11:23ID:???信頼性:大差なし
速度:自分でベンチマークとってください
簡単性:基本的に下位互換性あり
(5でオブジェクト関係等が強化され作り易くなったとも言えるし、使いたくなければ使わなくても・・)
将来性:>>848 もしくはPHP6に期待
まぁあれだ、PHP4とPHP5で比べてもそこまで大きな違いはないよな
0852842
2006/10/25(水) 20:24:10ID:xzcKcppx感動しますた。
ぅ私のあいまいフィルターをろ過した結果、ルビー・・・じゃないPHP5を選ぶこととしましとぅあ!!!
やっと先に進めるぜー!
0853nobodyさん
2006/10/25(水) 20:32:26ID:CtdvutIaあるいは検索のポインタを示していただけますか。
google先生は記号を無視なさるので検索できません。
phpマニュアルも言語リファレンスの章を読みましたが載っていませんでした。
0854nobodyさん
2006/10/25(水) 20:38:52ID:???php クラスの基礎
0857nobodyさん
2006/10/26(木) 06:21:20ID:???0858nobodyさん
2006/10/27(金) 16:50:44ID:if5gMbamたまに反映されないときがあります。
ログファイルには書き込まれててブラウザの更新を押せば
反映されるんですけど自動的に更新させるにはどうすればよいのでしょうか。
0859nobodyさん
2006/10/27(金) 17:17:35ID:???0860nobodyさん
2006/10/27(金) 18:24:46ID:???最初に&が付けられてる関数はどんな意味があってどういうときに役立つんですか?
0861nobodyさん
2006/10/27(金) 21:50:08ID:???0862nobodyさん
2006/10/27(金) 22:42:17ID:???でもそれだと引数の参照渡ししかヒットしません・・・
0863nobodyさん
2006/10/27(金) 22:49:16ID:???参照 戻り値 php
で一番上にまさにそれが出てきたぞ
0864nobodyさん
2006/10/28(土) 15:06:32ID:???ソースの中で制限を大きくしても、巨大なファイルのアップロードはできないみたいなんです。
こういった場合直接HDDにコピーできるような方法はないのでしょうか?
ちなみに鯖はwindowsなのでmod_uploaderが使えません・・。
0865nobodyさん
2006/10/28(土) 16:34:13ID:wEQaPP90処理をさせたいと思っています。URLで分岐すればいいと思うのですが、どうすればいいのでしょうか?
$url = $_SERVER[REQUEST_URI];
if ($url = ??) {
}
こういう感じだと思うのですが。
0866nobodyさん
2006/10/28(土) 17:05:13ID:???if (!$_GET) {}
0868中三
2006/10/28(土) 19:33:32ID:???$query_e = substr($_SERVER['QUERY_STRING'],0,1);
if($query_e == 'e'){おっぱい括弧}
0869nobodyさん
2006/10/28(土) 19:47:27ID:???case 0:
おまんこ;
break;
case 1:
おちんちん;
break;
}
0870865
2006/10/28(土) 23:13:08ID:???0871nobodyさん
2006/10/28(土) 23:24:46ID:???0872nobodyさん
2006/10/29(日) 03:00:59ID:???0873nobodyさん
2006/10/29(日) 07:38:47ID:???フレームワーク無しで書くなら、php5でもいいけど。
0874nobodyさん
2006/10/29(日) 22:34:07ID:???0875nobodyさん
2006/10/31(火) 00:37:34ID:5vaTIA8Wフォームなどを使わずにスクリプトを実行するだけで、送信するような
プログラムを書きたいのですが、どなたかアドバイスいただけませんか?
よろしくお願いします!
0876nobodyさん
2006/10/31(火) 00:55:42ID:???0878nobodyさん
2006/10/31(火) 01:51:38ID:5vaTIA8W下記を参照しましたができませんでした。
下記のプログラムでできますでしょうか?
http://otokunikim.seesaa.net/article/1631941.html
http://fstyle.ddo.jp/archives/2005/09/php_-_1.html
このプログラムを実行しても、エラーが出てしまい、トラックバックしてくれません。
なぜでしょうか?
0879nobodyさん
2006/10/31(火) 02:04:41ID:F9LjnucE文章中に含まれるカタカナの語句を全て抜き出し、コンマ区切りで別の
テキストファイルに書き出すということをしたいのですが、ちょっと
手詰まりな状態です。どうか、ご教授願えませんか?
こんな感じですが・・・
$text=fopen("bunsyou.txt","r");
$text2=fread($text,filesize("bunsyou.txt"));
//echo "$text2<br>\n";
for($i=1; i<=10; i++){
if(eregi("[ア-ン]",$text2));
}
fclose($text);
これからどうしたらよいのやらという感じでして。。。
他もあたったのですが、なんとも・・・
どうすればいいんでしょうか?
0880nobodyさん
2006/10/31(火) 03:15:53ID:???http://pc8.2ch.net/test/read.cgi/php/1161733546/486
http://pc8.2ch.net/test/read.cgi/php/1161733546/492
0881nobodyさん
2006/11/01(水) 18:11:40ID:???特定のタグの使用回数を求めるプログラムを作りたいんですけど
ソースとして読み込むってのはどうすれば良いのでしょうかね。。。
0882nobodyさん
2006/11/01(水) 18:55:55ID:???0883881
2006/11/02(木) 10:38:27ID:???ありがとう。
httpで始まるアドレスのソースは取得できました。
httpsが読み込めませんが、もうちょっと考えてみることにします。
でも、これでだいぶ先が見えてきました。
0884nobodyさん
2006/11/04(土) 17:56:24ID:???インストール時の設定がわからないんだ
どの本にもC:\Apache Group\Apache2\conf\httpd.conの内容を変えろと書いてあるんだが
httpd.txtかhttpd.txt.defaultしか見当たらない だれか助けてくれ
0885nobodyさん
2006/11/06(月) 09:42:59ID:???0886nobodyさん
2006/11/06(月) 11:16:32ID:???0887nobodyさん
2006/11/06(月) 11:24:42ID:???ApacheとPHPをやろうという人間が、
拡張子を表示するとかしないとかのことすら知らないということはないだろう。
あはははは。まさかなw
0889nobodyさん
2006/11/06(月) 14:37:16ID:???゚+.(・∀・)゚+.゚イイ!!
0890nobodyさん
2006/11/06(月) 23:37:27ID:???0891nobodyさん
2006/11/06(月) 23:51:51ID:???これは文法的に正しいのでしょうか?
プログラム例---------------------------
$a = 1;
$b = "1";
if ($a == $b) {
echo "aとbは同じです";
} else {
echo "aとbは異なります";
}
実行結果-----------------------------
aとbは同じです
-------------
数値を数字に変換したり、又はその逆を行ってからif文による
比較を行わないとだめなのかなぁとも思うのですが、、
みなさまの見解を教えていただけますでしょうか?
0892nobodyさん
2006/11/07(火) 00:26:17ID:???ttp://www.php.net/manual/ja/types.comparisons.php
0893nobodyさん
2006/11/07(火) 01:19:37ID:???例えば
aaa[] = 100;
aaa[] = 200;
aaa[] = 300;
としておいて、
配列aaaをクリアし、
aaa[] = 111;
aaa[] = 222;
aaa[] = 333;
というデータを新しく入れたい場合です。
0894nobodyさん
2006/11/07(火) 01:28:58ID:???0895nobodyさん
2006/11/07(火) 01:34:09ID:???ありがとうございます!unsetでクリアできましたー。
ちなみに、
aaa = "";
のようにしても、配列をクリアできるみたいですねー。
あまり、いいやりかたじゃないような気がしますが。。
0898881
2006/11/07(火) 10:22:51ID:???使用しているPHPは5.1.4でapacheは2.058、windows環境です。
PHP5であれば問題なく読めるという記述が散見されたのですが・・・。
現状で、単純にソースを読み込むということで
$url="https://www.xxx/yyy/zzz";//指定のURL
$source = file_get_contents($url);
print(htmlspecialchars($source));
という一番簡単な形にしているのですが、どなたか
設定等の見直しポイントなどをお教え願えないでしょうか。
よろしくお願いいたします。
0899nobodyさん
2006/11/07(火) 11:17:01ID:???0900nobodyさん
2006/11/09(木) 17:53:08ID:???また、サーバへの負荷はどちらが大きいんでしょうか?
Amazon Webサービスで利用するにはどちらがいいのかと思って。
XSLについてはよくわかりません。(利用したことがないので。)
恐らくXML_RSSの方が便利だとは思うのですが、負荷も大きいような気がします。どうなんでしょうか?
0901nobodyさん
2006/11/09(木) 18:57:26ID:pIp40KJ2$rows = mysql_num_rows($result);
echo $rows,
"件のレコードがあります。";
こんな感じでmysqlのテーブルに格納されているレコードの件数を表示する
プログラムを書いたんですが、これと同じような感じでテーブルに作られているカラム数を表示する
プログラムを書きたいんですけどどうすればいいでしょうか。誰か教えてください。
0902nobodyさん
2006/11/09(木) 19:00:23ID:???0903nobodyさん
2006/11/09(木) 19:07:46ID:???0904901
2006/11/09(木) 19:10:10ID:???0906nobodyさん
2006/11/09(木) 19:21:34ID:???何がやりたいかを基準に選べ
負荷的には XSL > XML_RSS だろうけど
この場合、伝送遅延が無視できなさそうな気はする。
0907nobodyさん
2006/11/10(金) 10:47:26ID:???作りたいのですが、可能でしょうか?
0908nobodyさん
2006/11/10(金) 10:54:24ID:???0909nobodyさん
2006/11/10(金) 11:33:35ID:???0910nobodyさん
2006/11/10(金) 20:22:47ID:???0911nobodyさん
2006/11/10(金) 22:40:54ID:???だろだろ。
0913nobodyさん
2006/11/10(金) 23:47:53ID:???0915nobodyさん
2006/11/14(火) 11:39:37ID:Ur4FtKPG$ans=$i%10;
1割る10の余りがどうして1になるんですか?
$i=11;
$ans=$i%10;
ならわかるんdすが
0916nobodyさん
2006/11/14(火) 11:52:59ID:???0917915
2006/11/14(火) 12:27:46ID:8CK2Abpk0918nobodyさん
2006/11/14(火) 12:29:01ID:???0919nobodyさん
2006/11/14(火) 13:23:25ID:???0922nobodyさん
2006/11/14(火) 15:34:55ID:???0923nobodyさん
2006/11/14(火) 18:01:14ID:Ur4FtKPGいま10歳の甥に聞いたら小ばかにされた。
吊ってくりゅ。。。
0924nobodyさん
2006/11/14(火) 21:09:19ID:???スレ違いだったら済みません。
ユーザー認証システムのようなものを作ってみたのですが、正しく動作しなくて困っています。
if($_POST['name'] && $_POST['pass']){
$sql = "SELECT name,pass FROM user WHERE name = '".$_POST['name']."' AND pass = '".$_POST['pass']."'";
$res = mysql_query($sql,$conn) or die('nullpo');
if($res){
print('認証成功');
}
}
といった感じに、$_POST(実際のソースでは生でクエリ文に入れませんが)と登録されている
ユーザーデータの照合をして存在した場合は次に進む、という動作をさせたいのですが、
上記のソースでは存在しようと存在しまいとチェックを通過してしまいます。
そこで以下のようにしてみたのですが、存在しないユーザーだった場合
MySQLのエラー文がぽろんと表示されてしまいます。
if($_POST['name'] && $_POST['pass']){
$sql = "SELECT name,pass FROM user WHERE name = '".$_POST['name']."' AND pass = '".$_POST['pass']."'";
$res = mysql_query($sql,$conn) or die('nullpo');
$num = mysql_num_rows($res)
if($num != '0'){
print('認証成功');
}
}
このようなシステムを作る場合、どのように書けば良いのでしょうか。
無い知恵絞って色々試してみたのですが結局八方塞になってしまいました。
宜しければご助言お願します。
0925nobodyさん
2006/11/15(水) 04:11:39ID:???↓エラー文を嫁。読めばどう扱えば良いか分かる筈
0926nobodyさん
2006/11/15(水) 07:17:33ID:???勃起しません!
0927nobodyさん
2006/11/15(水) 08:22:53ID:???0928nobodyさん
2006/11/15(水) 08:43:39ID:???・エラーが出ますで分かるわけがありません。どうでもいい擬音付けてないで内容を書いてください。
・nameカラムに存在しないユーザ名が$_POST['name']に入っていても0件ヒットするだけで
エラーは発生しないはずです。原因は複数推測できますがエラー内容が書かれてないので何とも言えません。
0929nobodyさん
2006/11/17(金) 05:36:54ID:???0930nobodyさん
2006/11/17(金) 16:37:09ID:XyuqYnXf<?phpinfo();?>
とテキストの内容が表示されるだけです
マニュアルどうり設定したはずなのですが・・
0932nobodyさん
2006/11/18(土) 06:20:48ID:hIHZ3hjv〇どおり
0934nobodyさん
2006/11/18(土) 14:31:00ID:KxRRk8/iimgタグ中に\マークが現れて画像が張れません
文字列を補正するような関数があったと思うんですが忘れてしまって……
誰か知っていたら教えてください
0935nobodyさん
2006/11/18(土) 15:08:04ID:???0936934
2006/11/18(土) 16:30:41ID:KxRRk8/iぉぉそうでした
感謝多謝
0937658
2006/11/18(土) 18:38:41ID:dtYeCOR7あらかじめ用意していたテキストの情報を
組み合わせて表示させたいのですが
どうすればよいのでしょうか?
0940nobodyさん
2006/11/18(土) 22:33:45ID:6DbfLQtM$配列=array_reverse($配列) のように代入しないと動かないものと
array_multisort($配列) のように関数だけで動くものがありますが、
何かの法則があるのでしょうか?
覚えづらくて・・・
0941nobodyさん
2006/11/19(日) 01:49:06ID:???0942nobodyさん
2006/11/19(日) 11:37:43ID:S6DpJ04Lまりがとう
0943nobodyさん
2006/11/19(日) 15:45:50ID:???HTMLでPHPのメニューを呼び出したいんだが
<?php include("menu.php"); ?>
じゃ表示されないんだ。調べてみてもこれであってると思うんだが、
0944nobodyさん
2006/11/19(日) 15:56:21ID:???iframeでいいんでないの?
0946nobodyさん
2006/11/19(日) 16:48:04ID:???サンクス
0947nobodyさん
2006/11/20(月) 17:39:11ID:y9nxJrBUselect count(*) from table
の結果を表示させるにはどうしたらよいのでしょうか?
$sql = "select count(*) from table";
$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count !=0){
$row=mysql_fetch_array($result);
ここからどうするのでしょうか?
すみません、よろしくお願いいたします。
0949947
2006/11/20(月) 18:22:39ID:???調べても、わからんです。
0951947
2006/11/20(月) 18:45:17ID:???$result = mysql_query($sql);
$count = mysql_num_rows($result);
if($count !=0){
$row=mysql_fetch_array($result);
}
echo $row[0];
こんな感じでいいのでしょうか?
もっと効率いい書き方あるのでしょうか?
超初心者なんで、すみません。
ヒントでもいいですので、よろしくお願いします。
0952nobodyさん
2006/11/20(月) 18:58:23ID:???いやだから>>948の下の方にmysql関数を使った簡単なサンプルが載ってるだろ?
それで分からないならあきらめましょう。
君はもっと別の分野で羽ばたいてください。
0953nobodyさん
2006/11/20(月) 22:12:35ID:vMGaJEQ5↑これなんて発音してますか?
0954nobodyさん
2006/11/21(火) 04:04:23ID:???0955nobodyさん
2006/11/21(火) 04:55:54ID:???0956nobodyさん
2006/11/21(火) 10:26:50ID:???0957nobodyさん
2006/11/21(火) 16:02:37ID:???いーれぐ
0958nobodyさん
2006/11/21(火) 21:03:49ID:???0959nobodyさん
2006/11/21(火) 23:31:03ID:VIydVpP60962nobodyさん
2006/11/22(水) 00:33:47ID:???0963nobodyさん
2006/11/22(水) 00:59:52ID:???>961
理系ギャグ キタ━━━━(゚∀゚)━━━━ッ!!
0964nobodyさん
2006/11/22(水) 01:29:56ID:???0965959
2006/11/22(水) 01:40:54ID:Inx/urH+0966nobodyさん
2006/11/22(水) 01:51:37ID:???もう少し何か言うことないの?
0967nobodyさん
2006/11/22(水) 06:21:17ID:???ttp://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-26,GGGL:ja&q=PHP%E3%81%A8Perl%E3%81%AE%E9%81%95%E3%81%84
0968nobodyさん
2006/11/22(水) 10:57:41ID:???0971nobodyさん
2006/11/22(水) 15:08:56ID:???書けないなら無理せんでもいいが。
0972nobodyさん
2006/11/22(水) 15:47:05ID:???CGI版PHPを使うのはfastcgiとかを利用するときくらいかと思ったけど
それでも
>大抵の機能が関数として用意されてるから便利だし
のレスの意味がわからない
CGI版PHPをコマンドラインから使うときの話のなのか?
0975nobodyさん
2006/11/24(金) 17:30:48ID:/pfTXisS一度カウントされると二度とカウントされないのです
今日カウントされても翌日にまた一度だけカウントされるような
うまい手立てってないですかね?
0976nobodyさん
2006/11/24(金) 17:36:08ID:???0977nobodyさん
2006/11/24(金) 17:36:39ID:???どうやって二重防止しれるかによるだろう・・・
IPとかで弾いてるなら、タイムスタンプつけて、
次アクセスした時に1日たったかチェックして判定したら?
0978nobodyさん
2006/11/24(金) 17:40:14ID:???簡単にやるならそのカウンタが最後に起動した日時を記録しておいて
日付が変わっていたら重複予防リストをクリアする。
もっと凝るなら重複予防リストにアクセス日時も併せて記録しておいて
重複アクセスが来たら前回からどれだけ時間が経っているかで判断させる。
まあ負荷と手間と効果のバランスを考えたら前者がお勧めだ。
0979nobodyさん
2006/11/24(金) 17:55:01ID:???みたいに IP<>タイムスタンプ でログを取ればおk
どこからかアクセスがあった場合、
2そのIPがロギングされて無いかを調らべ、
あるなら24時間内の判断を行い、24時間内ならスルー。
また24時間以上たっているレコードは全削除する。
カウントアップに該当するIPならIPとその時のタイムスタンプをロギング。
0981nobodyさん
2006/11/24(金) 23:16:24ID:???月曜→1
火曜→2
:
と毎日記録しておく。曜日とファイルの数字が一致しなければ日が変わったということで日付ファイルを更新する。その時ついでに何かのアクションがあれば起こす。
0982nobodyさん
2006/11/25(土) 07:31:04ID:???裏でDB動かすなら簡単。
0983nobodyさん
2006/11/26(日) 22:04:05ID:???include_path を
include_path = ".;C:php/includes;C:/php/PEAR"
と変更しろと書いてるんですが。
php.iniを見ると
; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
;include_path = ".;c:\php\includes"
と二つinclude_path が出てくるんですが
どちらを変更すればいいんでしょうか?
0984nobodyさん
2006/11/26(日) 22:08:31ID:???0986nobodyさん
2006/11/26(日) 23:54:27ID:???php4とphp5でphp.iniは互換性があるのでしょうか?
実はinclude_pathの設定をしようとphp.iniを探しているのですが
見つかりません。使用しているのはdebianでphpのバージョンは5.1.6-5です。
とりあえずinfo.phpでphp.iniの場所を調べたら次のようになっていました。
Configuration file (php.ini) /etc/php5/apache2
Scan this dir 〜 /etc/php5/apache2/conf.d
これらの場所を探したのですが見つかりません。
(Scan〜の方は上の場所にリンクされているだけそう)
そこで全てのフォルダを調べた結果
/etc/php4/apache2
にphp.iniがありました。この設定ファイルがphp5と互換性があるなら
コピーして使えるかなと思い質問しました。
どのような方法でもよいので
何かよい方法があれば教えてください。よろしくお願いします。
0987nobodyさん
2006/11/27(月) 01:03:21ID:???/usr/share/php5/
/usr/share/doc/php5-common/examples/
あたりにブツがあるみたいだから、コピーして使ったらいいんじゃないの
0989nobodyさん
2006/11/27(月) 02:15:44ID:???find / -name "php.ini*" -print してみ。
php.ini-dist
なんていうファイルが無い?
あれば-distを削除して中身を好きなように書き換えれ。
0990nobodyさん
2006/11/27(月) 06:42:29ID:???ls /etc/php*
してみて無いなら、/etc以下をfind程度だろう。
普通はlocate使うよな。
0992nobodyさん
2006/11/27(月) 07:35:09ID:???0993nobodyさん
2006/11/27(月) 08:02:20ID:???0994nobodyさん
2006/11/27(月) 11:47:06ID:???個人的には/etcに入れるのは好かんな。
0995nobodyさん
2006/11/27(月) 12:26:38ID:???0996nobodyさん
2006/11/27(月) 13:17:55ID:???/usr/loval
にいれるやつがいるのが困る
0997nobodyさん
2006/11/27(月) 13:19:12ID:???0998nobodyさん
2006/11/27(月) 17:23:36ID:IHpRXchw違うページの一部を引用したいのですがどうやったらいいのか教えてください。
条件としてたとえば
ファイル名”あああ.html”の
"こここ"の文字列が出てきたところから50文字だけ引用したい場合
どんなふうに書けばいいのでしょうか?
0999nobodyさん
2006/11/27(月) 17:34:18ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。