
| え〜、TruStudio1.1をお待ちの皆さんで、まだ我慢できない人に情報j一つ。 コロンブスの卵というか、きっと、みんなやってるかとも思うんですが、 WebSTudioでのWEBデバッグをセッション間でもできる方法を、 少々イカサマくさい手で行うことができます。 必要なのは、以下です。 1.WebStudio(組み込みWEBサーバーと組み込みPHP4.3.1) |
-- -- 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; |
え〜、このデバッグ方法は、1.PHPリンク元(GET,POSTとかする方)でのみ使用できます。 その上で、以下の手順でデバッグします。 1.まず、リンク元を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スクリプトにコピーし貼り付けしておき、 必要なくなったら、コメントアウトしておく、などすると少しは楽です。 |
| <?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); ?> |
<?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;
};
};
};
}
?> |