0

PHPファイルに値を送信しようとしていますが、確認すると、この値はになりましnullた。

次の方法で値を送信します:user_login.php?p_action = New_User

user_login.phpのコードは次のとおりです。

require("include/session_inc.php");
require("include/user_handling_inc.php");
require("include/db_inc.php");

start_Session(false, false);

switch ($p_action) {
case 'Login': {
 $l_flag = verify_User($p_in_username, $p_in_password);
 if ($l_flag == "Not_Found") {
     $l_flag = "New_User";
 }
 break; 
}
case 'Save_Profile': {
$l_flag = "Save_Profile";
    break;
}
case 'New_User':
$l_flag = "New_User";
    break;
case 'Create_New_User':
$l_flag = "Create_New_User";
}

switch ($l_flag) {
    case 'New_User': {
    include "include/user_new_inc.php";
    break;
  }
case 'Save_Profile': {
    load_User_Data(" username = '$p_in_username' ", false);
    include "include/user_profile_save_inc.php";
    break;
  }
case 'Wrong_Password': 
    echo "Wrong Pass";
    break;
case 'OK': 
    load_User_Data(" username = '$p_in_username' ", true);
    store_User_Cookie($g_userdata->user_id);
    include "include/user_profile_inc.php";
    break;
case 'Create_New_User':
$l_user_id = create_New_User ($p_in_username, $p_in_email, 'Y');
    if ($l_user_id != -1) {
        store_User_Cookie($l_user_id);
        echo "Success !! <br><br> \n";
        echo "<a href\"/index.php\"> Back to Main </a>";
     }
break;
}
4

3 に答える 3

1

この友達のようなコードを作る必要があります

switch ($_GET["p_action"]) {
case 'Login': {
 $l_flag = verify_User($p_in_username, $p_in_password);
 if ($l_flag == "Not_Found") {
     $l_flag = "New_User";
 }

それはあなたにgetの価値をよく与えます!!!

于 2013-01-27T22:26:02.017 に答える
1

まず、コードが正しくありません。Switchの使用について詳しくはこちらをご覧ください

URLから取得した変数にアクセスするために、グローバル変数$_GETまたは$_REQUESTを使用できます。

そして、あなたはここここからそれらについてもっと読むことができます

これは修正後のコードです。実行してみてください

  <?php
require("include/session_inc.php");
require("include/user_handling_inc.php");
require("include/db_inc.php");

start_Session(false, false);
$p_action=$_GET["p_action"];

switch ($p_action) {
case 'Login':
 $l_flag = verify_User($p_in_username, $p_in_password);
 if ($l_flag == "Not_Found") {
     $l_flag = "New_User";
}
 break; 

case 'Save_Profile': 
$l_flag = "Save_Profile";
    break;

case 'New_User':
$l_flag = "New_User";
    break;
case 'Create_New_User':
$l_flag = "Create_New_User";
 break;
}

switch ($l_flag) {
    case 'New_User': 
    include "include/user_new_inc.php";
    break;

case 'Save_Profile': 
    load_User_Data(" username = '$p_in_username' ", false);
    include "include/user_profile_save_inc.php";
    break;

case 'Wrong_Password': 
    echo "Wrong Pass";
    break;
case 'OK': 
    load_User_Data(" username = '$p_in_username' ", true);
    store_User_Cookie($g_userdata->user_id);
    include "include/user_profile_inc.php";
    break;
case 'Create_New_User':
$l_user_id = create_New_User ($p_in_username, $p_in_email, 'Y');
    if ($l_user_id != -1) {
        store_User_Cookie($l_user_id);
        echo "Success !! <br><br> \n";
        echo "<a href\"/index.php\"> Back to Main </a>";
     }
break;
 }
?>
于 2013-01-27T22:51:57.280 に答える
0

$_GETを使用してパラメーターを取得します。

$ _REQUESTは、データの取得と投稿の両方にアクセスするため、望ましい場合があります。

2つ目は、ユーザー入力を信頼しないため、addslashes()を使用する必要があります。またはreal_escape_string()関数を使用して、システムへの攻撃を防ぎます。

したがって、コードは次のようになります。

$var = addslashes($_GET['p_action']);

switch($p) {
   case 'Login':
    $l_flag = verify_User($p_in_username, $p_in_password);
    if ($l_flag == "Not_Found") {
        $l_flag = "New_User";
    }
    break;

   "OTHER CASES HERE"
}

注意:CASEに{}を追加しないでください。ここでスイッチの構文を読ん でください。

于 2013-01-27T22:38:09.200 に答える