[PR]当たる!無料占いで運命鑑定:プロの占い師による本格運命鑑定が無料で




第1章 準備


え〜、TruStudio1.1をお待ちの皆さんで、まだ我慢できない人に情報j一つ。
コロンブスの卵というか、きっと、みんなやってるかとも思うんですが、
WebSTudioでのWEBデバッグをセッション間でもできる方法を、
少々イカサマくさい手で行うことができます。
必要なのは、以下です。
1.WebStudio(組み込みWEBサーバーと組み込みPHP4.3.1)
2.Eclipse
3.MySQL

第2章 MySQLにデータベースを作成

以下のsqlダンプしたデータベース定義sqlをMySQLで実行してください。

--
-- Table structure for table `session_cur`
--

CREATE TABLE session_cur (
  ss_num int(11) NOT NULL auto_increment,
  cur int(11) default NULL,
  PRIMARY KEY  (ss_num)
) TYPE=MyISAM;


--
-- Table structure for table `ss_cookie`
--

CREATE TABLE ss_cookie (
  ss_num int(11) NOT NULL default '0',
  ss_name text,
  ss_val text,
  PRIMARY KEY  (ss_num)
) TYPE=MyISAM;


--
-- Table structure for table `ss_get`
--

CREATE TABLE ss_get (
  ss_num int(11) default NULL,
  ss_name text,
  ss_val text
) TYPE=MyISAM;


--
-- Table structure for table `ss_post`
--

CREATE TABLE ss_post (
  ss_num int(11) default NULL,
  ss_name text,
  ss_val text
) TYPE=MyISAM;


--
-- Table structure for table `ss_session`
--

CREATE TABLE ss_session (
  ss_num int(11) default NULL,
  ss_name text,
  ss_val text
) TYPE=MyISAM;



第3章 デバッグ用PHPスクリプトのインクルード



え〜、このデバッグ方法は、
1.PHPリンク元(GET,POSTとかする方)
2.PHPリンク先(WEB画面遷移先)
でのみ使用できます。

その上で、以下の手順でデバッグします。
1.まず、リンク元をEclipseで「実行」し、リンク先をクリックし、遷移させる。
2.次にリンク先をEclipseで「デバッグ」する。
この2つの手順で、リンク先のデバッグモードで、$_GET, $_POST, $_SESSION,
$_COOKIEがリンク元でセットされたかのように、値が代入されています。

通常、WebStudioでのデバッグは、画面遷移すると、変数が表示されませんが、
この方法ですと、少なくとも上記変数を保持したままデバッグできます。

後で、示しますが、私の用意したPHPスクリプトを、デバッグ対象のPHPスクリプトの、
頭のほうに、「include」命令で、インクルードしてください。

例1(リンク元の頭の方)
----------------
include "SSDBG_init.php";
----------------

例2(リンク先の頭の方)
----------------
include "SSDBG_after.php";
----------------

たったこれだけで、完了です。
あとは、上に述べた手順で、リンク先を「デバッグ」するだけです。

(注意しておきますが、WebStuioで日本語のデバッグを行うには、
文字コードは”EUC-JP”にしておかなければなりません。
そうしないと、デバッガがエラーを表示し、変数の値がみれません。
また、変数は”EUC-JP”にしないといけませんが、
逆に、Windowsでは、デバッグ中の変数表示領域はSJISであるものとされて
いますので、デバッグ中に日本語は文字化けすることになります。
これはどうしようもありません。)

このように、一つのPHPスクリプトファイルをデバッグするたびに、
上記手順を行わないという、面倒くささがありますが、
上記例1,2を全部のPHPスクリプトにコピーし貼り付けしておき、
必要なくなったら、コメントアウトしておく、などすると少しは楽です。


第4章 デバッグ用スクリプトの中身と、MySQLアカウント

「SSDBG_init.php」の中身は以下です。

<?php
 $_SESSION["SSDBG_go"]=1;
 $SSDBG_Query="insert into session_cur(cur) values(0)";
 $SSDBG_con = mysql_connect("localhost","root", "");
 mysql_select_db("SSDBG",$SSDBG_con);
 $SSDBG_rs = mysql_query( $SSDBG_Query,$SSDBG_con);
?>

「SSDBG_after.php」の中身は以下です。

<?php
if($_SESSION["SSDBG_go"] == 1 ){
    $SSDBG_query="select max(ss_num) from session_cur";
    $SSDBG_con = mysql_connect("localhost","root", "");
    mysql_select_db("SSDBG",$SSDBG_con);
    $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
    if( $SSDBG_rs != FALSE ){
        mysql_fetch_row($SSDBG_rs);
        $SSDBG_max = mysql_result($SSDBG_rs,0,0);
    }else{
        $SSDBG_max = 0;
    };
    
    if( $SSDBG_max > 0 ){
        foreach ( $_SESSION as $SSDBG_key => $SSDBG_val ){
            if( ereg("^[^\$]",$SSDBG_val) ){
                $SSDBG_query="insert into ss_session(ss_num,ss_name,ss_val) values($SSDBG_max,'" . $SSDBG_key . "','" . $SSDBG_val . "')";
                mysql_select_db("SSDBG",$SSDBG_con);
                $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
            };
        };
        foreach ( $_COOKIE as $SSDBG_key => $SSDBG_val ){
            if( ereg("^[^\$]",$SSDBG_val) ){
                $SSDBG_query="insert into ss_cookie(ss_num,ss_name,ss_val) values($SSDBG_max,'" . $SSDBG_key . "','" . $SSDBG_val . "')";
                mysql_select_db("SSDBG",$SSDBG_con);
                $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
            };
        };
        foreach ( $_GET as $SSDBG_key => $SSDBG_val ){
            if( ereg("^[^\$]",$SSDBG_val )){
                $SSDBG_query="insert into ss_get(ss_num,ss_name,ss_val) values($SSDBG_max,'" . $SSDBG_key . "','" . $SSDBG_val . "')";
                mysql_select_db("SSDBG",$SSDBG_con);
                $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
            };
        };
        foreach ( $_POST as $SSDBG_key => $SSDBG_val ){
            if( ereg("^[^\$]",$SSDBG_val )){
                $SSDBG_query="insert into ss_post(ss_num,ss_name,ss_val) values($SSDBG_max,'" . $SSDBG_key . "','" . $SSDBG_val . "')";
                mysql_select_db("SSDBG",$SSDBG_con);
                $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
            };
        };
    };
        
}else{
    $SSDBG_query="select max(ss_num) from session_cur";
    $SSDBG_con = mysql_connect("localhost","root", "");
    mysql_select_db("SSDBG",$SSDBG_con);
    $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
    if( $SSDBG_rs != FALSE ){
        mysql_fetch_row($SSDBG_rs);
        $SSDBG_max = mysql_result($SSDBG_rs,0,0);
    }else{
        $SSDBG_max = 0;
    };
    
    if( $SSDBG_max > 0 ){
        $SSDBG_query="select * from ss_session where ss_num = $SSDBG_max and ss_val != 'go'";
        mysql_select_db("SSDBG",$SSDBG_con);
        $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
        if( $SSDBG_rs !=FALSE ){
                $SSDBG_row_num = mysql_num_rows($SSDBG_rs);
                for( $i = 0; $i < $SSDBG_row_num; $i++ ){
                $SSDBG_row = mysql_fetch_row($SSDBG_rs);
                $SSDBG_name = $SSDBG_row[1];
                $SSDBG_val = $SSDBG_row[2];
                $_SESSION["$SSDBG_name"] = $SSDBG_val;
            };
        };        
 
        $SSDBG_query="select * from ss_cookie where ss_num = $SSDBG_max and ss_val != 'go'";
        mysql_select_db("SSDBG",$SSDBG_con);
        $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
        if( $SSDBG_rs !=FALSE ){
                $SSDBG_row_num = mysql_num_rows($SSDBG_rs);
                for( $i = 0; $i < $SSDBG_row_num; $i++ ){
                $SSDBG_row = mysql_fetch_row($SSDBG_rs);
                $SSDBG_name = $SSDBG_row[1];
                $SSDBG_val = $SSDBG_row[2];
                $_COOKIE["$SSDBG_name"] = $SSDBG_val;
            };
        };        
 
        $SSDBG_query="select * from ss_get where ss_num = $SSDBG_max";
        mysql_select_db("SSDBG",$SSDBG_con);
        $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
        if( $SSDBG_rs !=FALSE ){
                $SSDBG_row_num = mysql_num_rows($SSDBG_rs);
                for( $i = 0; $i < $SSDBG_row_num; $i++ ){
                $SSDBG_row = mysql_fetch_row($SSDBG_rs);
                $SSDBG_name = $SSDBG_row[1];
                $SSDBG_val = $SSDBG_row[2];
                $_GET["$SSDBG_name"] = $SSDBG_val;
            };
        };        
 
        $SSDBG_query="select * from ss_post where ss_num = $SSDBG_max";
        mysql_select_db("SSDBG",$SSDBG_con);
        $SSDBG_rs = mysql_query( $SSDBG_query,$SSDBG_con);
        if( $SSDBG_rs !=FALSE ){
                $SSDBG_row_num = mysql_num_rows($SSDBG_rs);
                for( $i = 0; $i < $SSDBG_row_num; $i++ ){
                $SSDBG_row = mysql_fetch_row($SSDBG_rs);
                $SSDBG_name = $SSDBG_row[1];
                $SSDBG_val = $SSDBG_row[2];
                $_POST["$SSDBG_name"] = $SSDBG_val;
            };
        };        
 
    };
        
        
}
?>

注意

上記2つのスクリプトでは、MySQLのSSDBGデータベースの
アカウントは、以下の様になっています。
ユーザー:root
パスワード:なし(空)
ホスト名:localhost

適宜変更してください。


第5章 前出ファイルのダウンロード


コチラからダウンロードしてください。




[PR]≪占い奇跡の恋愛術≫初回無料:幸せな結婚へ導きます。本格結婚鑑定