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

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

    php覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    102 = :

    >>101
    同じくWindowsでちょっと試してみた
    原因はわからんが、アクセス元のセッションはGC対象にならない模様
    2つのブラウザで試すと確認できると思う。

    あとでubuntuでも試してみるわ

    103 = :

    >>102
    有り難う御座います
    仕様もしくはバグなのですね
    他の方法でセッション管理してみることにします

    105 = :

    PHPのPearフレームワークについて詳しい人にご質問なのですが、

    SQL インジェクション対策として下手にエスケープシーケンスなんかを

    やる位ならPearを使用しプレースホルダー経由でDBにアクセスをする様にした方が

    簡単で安全なのでしょうか?

    また、Pearフレームワークの驚きの機能、便利な機能等があればお教え下さい。

    106 = :

    コーディング規約はZendのやつが一番使われてるんですかね?

    メソッドの命名規則が小文字スタートのキャメルケースになってますが、PHPのビルトインは全部小文字のハイフン繋ぎですよね
    これってどうなんでしょう?

    109 = :

    >>68

    他人のサイトからパクって覚えるの繰り返しだと思う
    時間が経つにつれて一通りできるようになったら中の動きとか気になるようになって
    専門的知識を深めていくって感じだと思います。

    あと、Linuxは基本かと。パッケージ管理ソフトウェアが動かせて
    ミドルウェアのインストール、設定ができれば最初はいいんじゃないのかな。

    110 :

    1つの設定ファイルをincludeで参照して使ってますが、includeファイル自体に参照ファイルがあったりした場合は別階層から参照したりするとファイルがないと言われます。
    設定をひとつにまとめることで色々と便利なのですが、階層が違うと読めないので
    なにか回避方法か参照の仕方はこうしたほうがいいというのがあれば教えていただけないでしょうか。

    111 = :

    絶対パスで書くかファイル内で取得する

    113 = :

    111が言うように、絶対パスで指定するか、

    include_once realpath(dirname(__FILE__)).'/../includeFile.php';

    と相対パスを作るか。

    117 = :

    ifだけ書いてelseを書かなくてもいいじゃん。
    それと同じでしょ。

    119 = :

    ま、初歩的を初心とするならば、
    elseは書いておくほうがいいよ。
    予想外のifを、すりぬける場合が
    あるから。

    121 = :

    splitはexplodeのエイリアスじゃないですよ?

    122 = :

    >>120
    splitは正規表現を使うから
    $a = split("\.", "35.11.22.56");

    でも
    explode(".", "35.11.22.56");
    の方が良いかな

    123 :

    >>121
    >>122
    ありがとうございます。なるほど、そういうことでしたか。
    区切りが"."だと全ての文字が区切り文字になってしってしまってたのか

    124 = :

    phpのメールフォームの確認画面で
    記載内容のテーブルのいちばん外側の枠は表示されるんですが
    trやtdの枠が表示されず困っています。

    現在は下記のような内容です。
    どこがいけないのでしょうか、教えて頂ければとても助かります。

    <form action="<? echo $script; ?>" method="POST" >
    <table border="1" cellspacing="20" cellpadding="5" width="538">
    <? echo $err_message; ?>

    <?php
    foreach($_POST as $key=>$var) {
    $key = strtr($key, $string_from, $string_to);
    if(get_magic_quotes_gpc()) $var = stripslashes($var);
    $var = htmlspecialchars($var);
    print("<tr><td width=\"140\">".$key."</td><td>".$var."</td></tr>");
    ?>

    <input type="hidden" name="<?= $key ?>" value="<?= $var ?>" />
    <?php
    print("\n");
    }
    ?>
    </table>

    125 = :

    >>124
    それはHTMLの質問になっちゃうからスレ違い
    Web制作板あたりを探ってくれ

    126 = :

    >>125
    そうでしたか、すいません。
    なんとか自力で解決出来そうです。
    スレ違い失礼しました。

    127 = :

    PHPでリダイレクトを実現するには一般的にはどういう手段を使いますか?
    PearライブラリのHTTP::redirectという関数を見つけましたが、自分の環境にはPearをインストール出来ません。
    生でやろうとすると、headerを設定する方法があるようですが、
    この方法だと既にheaderが設定されてるページではエラーが出てしまいリダイレクトできませんでした。
    何か良い方法は無いでしょうか?

    128 = :

    とくにない

    131 = :

    >>130
    各行の長さが固定なら(行番号×行の長さ)の位置までシークできるけど、
    そうでなければ、一行ずつ抜いてカウントしていくしかないかな

    133 = :

    >>131-132
    ありがとうございます。
    配列に格納な感じでいってみます。

    134 = :

    【OS名】Windows
    【PHPのバージョン】5.2

    UTF-8(BOMつき)のHTMLを読み込み、加工して出力を行っているのですが
    どうやらBOMもしっかり文字として読み込んでしまっているようで、SJISなどに変換して出力した際'?'に化けてしまいます。

    ファイルからテキストを読み込んだが時に、自動的にBOMを削除してくれる機能はないのでしょうか?
    ざっとUTF-8 BOM PHP で探しまわったところ、先頭3バイトを調査してsubstrで削除しているところばかりだったのですが…。
    (つまり無さそう?)

    135 :

    IDを出し忘れましたので即レスです

    136 = :

    >>134
    http://jp.php.net/manual/ja/function.mb-substitute-character.php

    137 :

    すみません、phpで符号なし右シフト「>>>」と同じ結果を得るには
    どうすると良いでしょうか?

    138 = :

    >>137

    >>=

    139 = :

    右シフトしてから、最上位ビットを0にしちゃえばいいんじゃね?

    140 = :

    右シフトしてから、最上位からシフトした桁分だけ0埋め?

    141 = :

    【サーバーOS】Windows2003
    【Webページ接続OS】Windows7、vista、XP
    【phpバージョン】5.2
    phpのセッション管理に関する質問です
    ログイン管理にセッションを用いていて、認証フォーム→ログイン処理→ログイン後トップページという風に処理しています。
    認証フォームで入力したIDとパスワードを、ログイン処理ページで処理してセッション変数を格納し、トップページへと繋げて、以降セッション変数で管理しているのですが、ログイン処理の時点でセッション変数に値が格納出来ていません。

    もう一つ別のページでもセッション変数の格納を行っているのですが、そちらは特に問題なく動作しています。
    そしてもう一つ、これらの問題はWindowsVISTA、XPのPCで接続した場合に発生し、7で接続した場合は発生しておりません。
    まず、問題が発見されたほうのソースコードです。

    <?php
    $old_session_name=session_name('kaiin');
    session_start();
    //mysql接続クラス呼び出し
    require_once "../php/dbh.php";
    $dbh=new db();
    $con=$dbh->db_connect();
    if(!$result=mysql_query("select ~~~~~~ ")){
    header("Location:http://");
    }

    142 = :

    >>141
    質問時はIDを出してください

    そのコードだとセッションのセットはしてないみたいだよ?

    143 = :

    $row=mysql_fetch_array($result,MYSQL_ASSOC);
    $ent=hash_hmac(sha256,$_POST[post],2channel);
    if($row[]===$_2ch){
    $_SESSION[]='';
    $_SESSION[]="$row[]";
    $_SESSION[]="$row[]";
    header("Location:http://");
    }else{
    header("Location:http://");
    }

    mysql_close($con);
    ?>

    次に、問題が出なかった方のソースコードです

    <?php
    $old_session_name=session_name("php_exam");
    session_start();

    foreach($_POST as $key => $value){
    $_SESSION[$key]=$value;
    }
    print <<< EOD
    以下HTMLが続く
    EOD;
    ?>

    何故接続するPCの違い、ページの違いによって問題が発生するのかまるで分かりません。
    ブラウザはIE、火狐、クロームを試しましたがどれも同じ結果でした。
    ご教授お願い致します。

    145 = :

    >>141

    if($row[]===$_2ch){

    これは何してるかわかる?
    $row[]なので、$row配列の最後尾に追加される。
    たとえば、
    $row[0],$row[1]
    がある状態で$row[]とやると、$row[2]になる。
    ので
    $row[]===$_2ch
    というのは
    $_2chが「値無し」じゃないと当てはまらないはず。

    結果的に$_SESSION[]="$row[]";
    にはいらず、elseのほうに入ってしまっている。

    146 = :

    >>145
    失礼しました、説明が足りませんでしたね
    $_SESSION[]はや$row[]は2chに書く用に中の連想文字を消したもので、実際には
    $_SESSION[2ch]や$row[2ch]のように、中に連想文字が入っている状態です。
    分かりにくくて申し訳ないです;;

    147 = :

    >>146
    説明が足りないんじゃなくて再現するコードを出せてないことが問題なんだろ
    あとID出せよ


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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