のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,837人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 93

    php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    301 : nobodyさん - 2010/02/25(木) 01:54:40 ID:??? (+51,+30,+0)
    302 : nobodyさん - 2010/02/25(木) 02:13:12 ID:??? (+45,+27,+0)
    サナクス
    303 : nobodyさん - 2010/02/25(木) 02:24:52 ID:??? (+3,-29,-61)
    (C 言語で行われるように) 数値に変換することで 一つの文字のコードを取得できると期待してはいけません。 文字と文字コードを相互に変換するには ord() および chr() 関数を使用してください。
    305 : nobodyさん - 2010/02/25(木) 03:10:34 ID:??? (+77,+29,+0)
    >>304
    最後のだけ改行なしで終わってるんだろ
    >>279
    306 : nobodyさん - 2010/02/25(木) 03:37:54 ID:??? (+50,+17,-65)
    半角とEUC-jpが混在している文を、特定文字を置換すると
    本来、区切れない部分を置換してしまうことがあります。
    対処法はありますか。
    ユニコード文字列みたいなのが出来ればいいですが。
    一語が一つの配列入りしてれば
    307 : nobodyさん - 2010/02/25(木) 04:29:25 ID:??? (+31,-30,-250)
    >>304
    なんでforeachのブロックが終わったのに$tmp使ってるの?
    その$tmpはforeach内のみで使うローカル変数でしょ
    何やってるか理解できてないでしょ?
    答え書いても分かるとは思えないけど

    $data = file("ttttt.txt");
    $users = array();
    foreach ($data as $row) {
    $tmp = explode("<>", $row);
    $users[$tmp[0]] = $tmp[1];
    }

    この処理が終わった時点で
    $usersは
    $users['hoge'] = "geho";
    $users['aaaa'] = "bbbb';
    $users["1111"] = "2222";
    こうなってるでしょ

    セッション処理してるけど理解してないだろうしそこは省いて簡素化して続き書くと

    if (isset($_POST['username']) && isset($_POST['password'])) {
    if ($users[$_POST['username']] == $_POST['password']) {
    echo "認証成功";
    } else {
    echo "認証失敗";
    }
    }
    308 : 307 - 2010/02/25(木) 04:41:19 ID:??? (+57,+29,-7)
    と説教たれといてなんだが色々間違えてたわ
    ちょっと手直しする
    309 : nobodyさん - 2010/02/25(木) 05:13:07 ID:??? (+19,-30,-244)
    別に間違ってなかったか・・・他の人が指摘してる通りrtrim挟んでなかったんだね

    <form method="post" action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
    N<input type="text" name="username" value="">
    P<input type="text" name="password" value="">
    <input type="submit">
    </form>
    <?php
    $data = file("ttttttxt");
    $users = array();
    foreach ($data as $row) {
    $tmp = explode("<>", rtrim($row));
    $users[$tmp[0]] = $tmp[1];
    }

    if (isset($_POST['username']) && isset($_POST['password'])) {
    if ($users[$_POST['username']] == $_POST['password']) {
    echo "認証成功";
    } else {
    echo "認証失敗";
    }
    }
    ?>

    array_key_existsとか使ったほうがいいかもしれないがとりあえず簡素化したものなのでこれで
    あと本番ではエスケープ忘れずに
    310 : 309 - 2010/02/25(木) 05:20:07 ID:??? (+30,-30,-185)
    たびたびスマン・・・やっぱ>>309はよくない
    何も入れなくても認証されてしまう
    isset使ってるのが原因でもあるがやっぱarray_key_exists使って

    if (isset($_POST['username']) && isset($_POST['password'])) {
    if (array_key_exists($_POST['username'], $users)) {
    if ($users[$_POST['username']] == $_POST['password']) {
    echo "認証成功";
    } else {
    echo "認証失敗";
    }
    } else {
    echo "認証失敗";
    }
    }

    まぁ書き方は色々あるのでとごまかしつつ寝ます・・・
    311 : nobodyさん - 2010/02/25(木) 10:58:05 ID:??? (+22,+4,+0)
    これはヒドイ・・
    312 : 288 - 2010/02/25(木) 13:22:24 ID:??? (+11,-30,-61)
    >>296
    答えてくれてありがとう。
    普通ならバッチ処理でいいのですが、今回はGUIを作っていまして。。

    いろいろ試した結果
    proc_open()で時間が掛かるプログラムを起動
    proc_open()のオプションでbypass_shellをtrueにする
    終了時にproc_terminate()
    こんな感じでできました。
    313 : nobodyさん - 2010/02/25(木) 14:13:12 ID:??? (+22,-29,-21)
    textareaにデフォルト値入れたいんだけど、中に何が入るか分からない場合htmlspecialcharsすべき?
    315 : nobodyさん - 2010/02/25(木) 14:14:51 ID:??? (+33,+3,-2)
    >>313
    ×すべき?
    ○すべきですか?
    317 : nobodyさん - 2010/02/25(木) 14:35:00 ID:4W7DKvAc (+17,+27,-4)
    色々と構成をいじってしまったので、
    とりあえず、サーバーを再起動して見てみます。
    318 : nobodyさん - 2010/02/25(木) 14:40:41 ID:??? (+45,+2,-6)
    mysqlの拡張を読み込めてないだけやで
    319 : nobodyさん - 2010/02/25(木) 14:42:16 ID:4W7DKvAc (+0,+1,-47)
    再起動してみましたが、やっぱり症状変わらずです。

    MYSQL単体だとログインが出来て、テーブルも作れます。
    PHP5もphpinfo()で動作は確認しています。

    やっぱり、接続中に何らかしらのトラブルが発生しているようです。
    ネットワーク周りとかで、疑った方がいい設定値などありますか?
    320 : nobodyさん - 2010/02/25(木) 14:44:51 ID:4W7DKvAc (+30,+29,-27)
    >>318
    mysqlが原因ですか・・・
    DBサーバー関係が疎いので、色々やっているうちに、どこかの設定を間違っていじっていたかもしれません。
    今から、再インストールしてみます。
    ありがとうございます。
    321 : nobodyさん - 2010/02/25(木) 14:50:22 ID:??? (+2,-29,-54)
    >>320
    mysqlではなくphpのmysql用のモジュールが読み込めてないだけ
    phpinfo()にMySQLの項目がでてこないと使えない
    322 : nobodyさん - 2010/02/25(木) 15:12:09 ID:??? (+0,-29,-61)
    >>319
    PHP5(2系3系)とMySQL5.xはdllの相性が悪い
    5.2なら「php mysql 修正版 dll」でググレ
    王道的な解決策は>>6のブログに書いてある
    323 : nobodyさん - 2010/02/25(木) 16:07:01 ID:??? (+4,-29,-82)
    【OS名】linux
    【PHPのバージョン】php5
    環境は特に限定せず、普通のレンタル鯖等での動作を想定。

    数値での++的な事をアルファベットでやりたいです。
    a,b,c....と事前に配列で定義することなく、プログラム的にa,b,c....をループの中などで出力する方法はないでしょうか?
    324 : nobodyさん - 2010/02/25(木) 16:08:22 ID:??? (-6,-29,+0)
    >>323
    suretai
    325 : nobodyさん - 2010/02/25(木) 16:36:52 ID:??? (+0,-29,-58)
    WindowsXPにPHPを入れてるのですが
    PHPからウィンドウズのアプリ(.exe)を起動するにはどんな関数を使えばいいのですか?
    アプリはPHPソースと同じ場所にあります。
    326 : nobodyさん - 2010/02/25(木) 16:37:13 ID:??? (-6,-29,+0)
    >>325
    suretai
    327 : nobodyさん - 2010/02/25(木) 16:39:28 ID:gV6UoPDq (-26,-29,-59)
    おっと、これは失礼。

    WindowsXPにPHPを入れてるのですが
    PHPからウィンドウズのアプリ(.exe)を起動するにはどんな関数を使えばいいのですか?
    アプリはPHPソースと同じ場所にあります。
    328 : nobodyさん - 2010/02/25(木) 16:39:52 ID:??? (+14,-29,+0)
    `hoge.exe`;
    329 : nobodyさん - 2010/02/25(木) 16:51:08 ID:gV6UoPDq (+34,+29,-31)
    >>328
    いやそうやって書いてたんですがエラーでて(´・ω・`)
    っておもってたんですがスペルマミスでしたwwwwwwwwwwwwwwwwwサーセンwwww
    そして直して再度やってみたら、なんかブラウザが読み込み中のままで
    サーバー側でアプリが起動してないんですが
    他に何か気をつける点があったら教えてください
    330 : nobodyさん - 2010/02/25(木) 17:02:02 ID:??? (+15,-29,-14)
    `GUIなアプリ.exe`; とかしてない?
    331 : nobodyさん - 2010/02/25(木) 17:02:30 ID:??? (+15,-25,-5)
    サーバー側のログは?
    332 : nobodyさん - 2010/02/25(木) 17:10:15 ID:gV6UoPDq (+27,+27,-22)
    >>330
    えっと普通のWinアプリなのでGUI的な感じですが・・・
    >>331
    ログどこにありますかログ。みてみます
    333 : nobodyさん - 2010/02/25(木) 17:24:18 ID:??? (+24,-29,-97)
    GUIかよ
    `~` は文字出力して戻ってくるのが前提のコマンドだ。
    もしサーバー側で実行が成功してるなら
    そのphp、つまりhttpdの実行ユーザーで実行されている
    デスクトップがそのユーザーのものじゃないからそのままじゃ出ないだろう
    サービスの設定でデスクトップとの対話を許可するとかやれば出るかもしれない

    実行してphpkら切り離すのは、、、&使えたっけ?forkしてexecとかか
    334 : nobodyさん - 2010/02/25(木) 17:31:33 ID:gV6UoPDq (+36,+29,-55)
    >>333
    すごいありがとうございます。
    確かに画面には出ていませんでした。。。
    んでタスクマネージャみてみたらボタン押した回数分起動してましたww
    すみません、サービスの設定はどうやってやるのですか?><
    んで、サイトに書いてるようにexecやったらphpが抜けてこないっぽいので
    切り離すやりかたを><
    335 : nobodyさん - 2010/02/25(木) 17:34:16 ID:??? (+19,-29,-46)
    サービスは、、、マイコンピュータの右クリックから管理でサービス選んで
    Apacheのプロパティ出してログオンのとこにあるデスクトップ~をチェック
    336 : nobodyさん - 2010/02/25(木) 17:56:54 ID:gV6UoPDq (+35,+29,-82)
    >>335
    できました!!!
    タスクトレイのアイコン右クリのサービスでもOKでした。
    おかげでアプリは見事に表示されました!!

    で、これやっぱりアプリ終了させるまでexecで止まってるみたいですね。
    アプリは起動されたら一連の動作を終えたら終了するようにするので
    これはこれでOKかなとおもいました。

    いろいろありがとうございました。
    ほんと助かりました。。。
    337 : nobodyさん - 2010/02/25(木) 19:13:45 ID:??? (+1,-29,-25)
    >>313
    htmlspecialcharsは表示のタイミングで使うものなので
    受け取った値をどう使うかによる
    表示するのなら(そのタイミングで)使うべき
    内部で処理するために使うだけならいらない
    338 : nobodyさん - 2010/02/26(金) 00:44:43 ID:??? (+50,+29,-2)
    何言ってんだこの馬鹿は
    339 : nobodyさん - 2010/02/26(金) 01:11:20 ID:??? (+52,+29,+0)
    スーパーチンピラタイム
    340 : nobodyさん - 2010/02/26(金) 02:35:11 ID:L4Bq0Atm (-9,+29,-22)
    >>305
    rtrimを使わないといけないのは分かりましたが理解が出来ない・・・。

    >>307
    なんとなくでしか分かってないですorz
    issetで書いた方がいいのでしょうか・・・?

    >>310
    一つ一つ理解して頑張っていきたいと思います・・・。
    これで動きました。

    ありがとうございます。
    341 : nobodyさん - 2010/02/26(金) 03:25:21 ID:??? (+57,+29,-16)
    まぁはじめからうまくいくようなもんじゃないしガンガレ
    342 : nobodyさん - 2010/02/26(金) 07:56:53 ID:??? (+18,-30,-88)
    >>340
    http://jp.php.net/manual/ja/function.file.php
    注意: FILE_IGNORE_NEW_LINES を指定しない限り、 配列に取り込まれた各行は行末文字も含みます。
    行末文字を取り除きたい場合には rtrim() を使用する必要があります。

    fileで配列に入った1行ずつの最後には改行が入ってるよってこと。
    だからexplodeした最後の配列の中は
    "geho[行末文字]"になっていて比較する"geho"とは違う文字列となってしまう。

    こういうときは自分なら
    hoge<>geho<>
    aaaa<>bbbb<>
    1111<>2222<>
    と余分に<>を付けとく
    347 : nobodyさん - 2010/02/26(金) 12:35:10 ID:??? (-7,-30,-18)
    $videotitle = $_POST["videotitle"];
    if ($videotitle == "") {
    348 : nobodyさん - 2010/02/26(金) 12:35:36 ID:L4Bq0Atm (+23,+25,-2)
    >>342
    ふむふむ。
    file関数をバカにしてました・・・。

    勉強になります。
    349 : 346 - 2010/02/26(金) 13:40:42 ID:OgECULN1 (-17,+29,-28)
    >>347
    やってみましたが、やはり動画のアップがされた後確認画面が出ます。
    仮に値を入れても、動画ファイルの容量が大きいと空の状態の確認画面が出て来てしまいます。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について