• 締切済み

PHPコードの解読

korota-xpの回答

回答No.5

同じく、本とネットで調べながら、見よう見まねでPHPを勉強して 1ヶ月半になるものです。 $uを取り出したいのか、 そこに入れられた$GLOBALS['AUTH']->uid()を取り出したいのか、にもよると思いますが、 別ファイルで$uを取り出したい場合について。 合っているかどうか分かりませんが、気になることをいくつか。 1.uid()が、別ファイルで実行できる状況にあるでしょうか 2.$GLOBALS['AUTH']が定義されているプログラムも、別ファイルで実行できる状況にあるでしょうか 3.他にも、$uのために使われている変数や関数、クラスを全て、別ファイルで実行できる状況にあるでしょうか($requestsなど) 4.pc_page_testクラスのスーパークラスを、別ファイルで使える状況にあるでしょうか 5.pc_page_testクラスを、別ファイルで使える状況にあるでしょうか 6.pc_page_testのインスタンスを、別ファイルで作成していますか 7.pc_page_testのfunctionを、別ファイルで実行していますか 以上の元で、 $u = $GLOBALS['AUTH']->uid() ↓ $this->u = $GLOBALS['AUTH']->uid() にすれば、クラス外から変数を使えるようになるみたいです。 $● = new pc_page_test; //pc_page_testクラスのインスタンスを作成 $●->execute($requests); //executeメソッドを実行 print_r($●->u); //$this->uの中身を、試しに表示して確認

関連するQ&A

  • テキスト等のコードの置換方法

    テキスト等のコードの置換方法 viewthread.php?tid=171266&page=11#pid120622 上記のようなコードを下記のように書き換えたいです redirect.php?goto=findpost&pid=120622 既存のコードは下記のように数列はバラバラです viewthread.php?tid=171266&page=11#pid12063 viewthread.php?tid=17126&page=21#pid12001 viewthread.php?tid=191266&page=15#pid12422 viewthread.php?tid=1715&page=1#pid220622 viewthread.php?tid=211269&page=21#pid32062 (1)viewthread.php?tid=(数列1)&page=(数列2)#pid(数列3) (2)redirect.php?goto=findpost&pid=(数列3) (1)を(2)のような形式に直していきたいのですが 置換などでうまく変換できません 正規表現などでどう記載すればよいかも教えて頂きたいです ご教授いただければ幸いです。

  • PHPコードのクラス化と呼び出し方

    以前にも同じ質問をしましたが、回答を締め切ったため再度質問します。 現在、タイトルの通り「クラス化と呼び出し方」について奮闘しています。 内容としては、[index.php]から[Message.php]へパラム値を渡し、値によってメッセージ文字列を表示するという簡単な処理をクラス化したいのですが、どうも期待する動作をしてくれません。 値は返ってきているように見えますが、なぜか「Object」となっています。本当は「test」じゃないといけないのですが・・・ 何が悪いのかご指摘を頂ければ嬉しいです。 以下に現在作成中のコードを載せます。 --------------------------------------------------------------- [index.php] -<?php - include_once("message.php"); - class test extends message { - } - - $index = new test("1"); - print $index; - ?> ------------------------ [Message.php] -<?php - class Message { - public function _construct($ErrorID) { - $this -> ErrorID = $ErrorID; - } - - function ErrorMessage() { - switch($ErrorID) { - case 1: - $str = "test"; - return $str; - default: - print("Error:予期せ-ぬエラーです。管理者へ連絡して下さい。"); - exit; - } - } - } -?> ---------------------------------------------------------------

    • ベストアンサー
    • PHP
  • PHPで定義されている関数のコードが見たい

    PHPでコードを記述するとき、関数を定義することがあります。 function test($name){ : : } しかし、最初から定義されている関数がありますよね。 isset()やfile_get_contents()などの関数です。 こういった関数の中身をみたいのですが、PHPのどの部分を見ればいいのでしょうか。 関数の中身とは、たとえばfile_get_contentsなら function file_get_contents($name){ : //この部分のことです。 : } PEARだったら、たとえばDB.phpならばDB,phpの中身を見ればいいのですが、fopen()などの最初から定義されている関数はどこを見れいいのかがわかりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • php session_start()

    いつもお世話になっております PHP session_start()について質問させていただきます。 ブラウザで確認すると以下のワーニングが表示されます。 Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at ファイル名) in ファイル名 過去の質問を参考にしてphpinfo()を使用してサーバの設定を確認したところ、Session Supportはenabledとなっております。 また、余分なスペースなどが無いよう、コードを1行にまとめて試してみましたが同じ結果でした。 コードは以下のとおりです。ちなみにサーバはレンタルサーバを使用しております。 ■index.php <?php  $documentroot = dirname( __FILE__) . '/';  require_once $documentroot . '../php_libs/config/config.inc.php';  require_once("Auth/Auth.php");  require_once("HTML/QuickForm.php");  require_once("HTML/QuickForm/Renderer/ArraySmarty.php");  require_once( _SMARTY_LIBS_DIR . "Smarty.class.php");  require_once( _MODULE_DIR . "build_screen.inc.php");  require_once( _MODULE_DIR . "menu.inc.php");  require_once( _MODULE_DIR . "MYDB.inc.php");  require_once( _MODULE_DIR . "sub.inc.php");  main(_MEMBER_FLG);  exit; ?> ■main関数 <?php  function main($systemflg){   // セッション名の設定   $sess_name = ($systemflg) ? _SYSTEM_SESSNAME : _MEMBER_SESSNAME;   session_name($sess_name);   // セッション開始   session_start(); ~以下省略~ どこに問題があるかお分かりの方いらっしゃいましたら、ご回答のほどよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • actionscript2.0 とphp を用いてブラウザでswfファ

    actionscript2.0 とphp を用いてブラウザでswfファイルを表示しています。 actionscript側では、 以下のようにsendAndLoadメソッドを用いて var send1 = new LoadVars(); test1.page = 1; test1.sendAndLoad("test.php",test1); send1.onLoad = function() {  ロードした際の処理 } test.phpに値を送信しています。細かく言えば flash上のボタンが押された後にsendAndLoad し,1を送信しています。 それに対しphpでは、 <html> <head> </head> <frameset rows="55%,*"> <frame name='bottom1' src="test.php"> <?php // Action ScriptからのPOSTデータの取得 $page = $_POST['page']; print("<frameset cols='62%,*'>"); if ($page == 1){ print("<frame name='bottom2' src='test1.php'>"); }else{ print("<frame name='bottom2' src='test2.php'>"); } ?> </frameset> </frameset> </html> 上記のようにPhp側では$pageを受け取り、1であればフレームで指定されているファイルを test1.phpとします。$pageが空であればtest2.phpを下フレームに表示しています。 そしてメインとなるtest.phpではswfファイルを表示していて、そのFLASHのボタンをクリックして、test.phpにsendAndLoadしています。 動作なのですが、sendAndLoadして、testp.phpで値は取得しているのですが、 ページがロード(更新)されません。なので下フレームがtest1.phpからtest2.phpに 遷移しません。試しにsendのみしてみると、新しくブラウザが開き、そのページが更新されています。 新しくブラウザを開かないでframeによるページ更新をする方法はないのでしょうか? ご教授願います。 以下はsendのみの場合です。 var send1 = new LoadVars(); send1.page = 1; send1.send("***.php", "bottom", "POST");

    • ベストアンサー
    • Flash
  • phpコードの戻り値をhtmlファイルに入れるには

    こんばんは。 質問は.htmlファイルからphp関数を直接呼べるか否か、 呼べないとしたら.cgiなどを利用すればよい? 引数なしのphp関数の戻り値を.htmlの一部に出力させるにはどうしたら よいかです。 phpで作成したfunction fnc_test(){return "aaa";}の値を aaa.html内に出力させたいのです。 aaa.phpファイルにだったらecho fnc_test();で表示されると思うのですが、 aaa.htmlに<body>fuc_test();</body>とやってももちろんphpが起動せず、表示されませんよね。 同じ事をさせたいときにaaa.htmlを新しく作成すれば(phpにて"aaa"と書いたaaa.htmlと言う名前のファイルを作成)できると思うのですが、 動的に一部だけ変更するためにはjavascriptを利用するとか、cgiを利用(cgiでラップする?)しなければやっぱり駄目なのでしょうか? .htmlファイルにサーバ上でphpの関数の戻り値(テキスト)を組み込むのにはどうしたらよいですか?できたらjavascriptは使いたくないのですが。 乱文すみません。ご回答宜しく御願いします。

    • 締切済み
    • PHP
  • globalと$GLOBALSの違いは?

    globalと$GLOBALSの違いは、連想配列かそうでないかしかないのでしょうか。 大量に使う場合、どちらを使っても動作には差はでないでしょうか。 <?php $s = "グローバルスコープ"; //グローバルスコープ function scope_test0(){ echo $s; // 何も表示されない(ローカルスコープ) } scope_test0(); /* globalを使う */ $a = "スコープの違い"; function scope_test1(){ global $a; //ここでglobalを宣言、スコープが違う変数を参照可能に echo $a; //スコープの違い }; scope_test1(); /* $GLOBALSを使う */ $b = 3; $c = 4; function scope_test2(){ $GLOBALS["c"] = $GLOBALS["b"] + $GLOBALS["c"]; } scope_test2(); echo $c; //7 ?>

    • ベストアンサー
    • PHP
  • 一つのコードで何ページも表示するとき

    いつも、疑問に答えてくれてありがとうございます。 下に書いたコードのように、getをつかってページが変わるようにした場合で疑問を持ちました。 何人もの人が一度にアクセスしてきても、下に書いたコードで誤作動を起こしたり、動作が遅くなったりはしないのでしょうか。 もし誤作動を起こすのであれば、copy関数をつかって見ようかと思っているのですが。 よろしくお願いいたします。 --test.php--------------------------------------- <?php if($_GET['page']==1){ $content="ほにゃららページ"; }elseif($_GET['page']==2){ $contentテストですページ"; }else{ $content="トップページ"; } echo<<<test <table> <tr> <td>${content}</td> </tr> <tr> <td> <a href=test.php?page=1>ほにゃららページ</a> <a href=test.php?page=2>テストページ</a> <a href=test.php>トップページ</a> </td> </tr> </table> test;

    • ベストアンサー
    • PHP
  • PHPの文字コードについて

    PHPとmysqlの文字コードの関係について 1.データベースは文字コード utf8_unicode_ci で作成しています。 2.以下のようにテーブルを作成しました。 CREATE TABLE `test` ( `qid` varchar(10) NOT NULL, `qtitle` varchar(255) default NULL, PRIMARY KEY (`qid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 3.show.phpの中で以下のように 出力しようとすると文字化けします。 show.phpファイルは文字コードutf8で保存しています。 <?php print($qTitle); ?> ブラウザの文字コードの設定はShift-Jisです。 ブラウザの文字コードを変えずに正しく表示させるためには どうすればいいのですか? ご教授よろしくおねがいします。

    • 締切済み
    • PHP
  • PHPのIF文で条件の記述の仕方について

    PHPのIFを用いて、データベースから取り出した特定のレコードが 変数に入っている値と一致する場合とそうでない場合で処理を分けたいと考えています。 変数に入っている値と一致する場合は 指定したURLへリダイレクトされるようにしたいです。 以下のようにIF分を書いても条件に引っかからず 次の処理に進んでしまいます。 ※testレコードに入っている値はredirectです。 ------------ $db = mysql_query('SELECT * FROM redirect_records WHERE user_id='.$userid, $connect); $db = mysql_fetch_array($db); $Comparison1=$db['test']; $Comparison2='redirect'; if ($Comparison1 == $Comparison2){ $url = '/redirect/test'; $form_state['redirect'] = $url; } ------------ 記述の仕方が間違っているのでしょうか。 PHPに関してはまだまだ初心者で原因がわかりません。 具体的には上記のIF分はIF分の中に入れ子になっています。 ボタンをクリックした時にtestレコードに入っている値がredirectなら/redirect/testへ それ以外は次の処理へと進んでほしいです。 ------------ function form_submit($form, &$form_state) { global $user,$order,$item; if ($_SESSION['checkout_valid'] === FALSE) { $url = '/checkout'; } elseif ($_SESSION['checkout_valid'] !== FALSE) { $db = mysql_query('SELECT * FROM redirect_records WHERE user_id='.$userid, $connect); $db = mysql_fetch_array($db); $Comparison1=$db['test']; $Comparison2='redirect'; if ($Comparison1 == $Comparison2){ $url = '/redirect/test'; $form_state['redirect'] = $url; } } ------------ このようにelseifの中の処理でさらにtestレコードにredirectが入っている場合は <URL>/redirect/testに飛ぶようにしたいです。 「環境」 PHP 5.2.17 MySQL 5.1.59 どうかお助けください。 よろしくお願いします。

    • ベストアンサー
    • PHP