0

このように URL のリンクを介して次のページに文字列値を渡します<a href="ApplicationRegister.php?plan=trial"> ApplicationRegister.php ページでは、この値をこのように取得し、これをこの $plan = $_GET["plan"]; ようにセッション変数に入れます$_SESSION['plans'] = $plan; ここで値を取得しています。しかし、ifステートメントの後、セッション変数を使用した後でも、この計画の値を取得していません。

私の完全なコードはこのようなものです

 $plan = $_GET["plan"];
    echo $plan;
    $_SESSION['plan'] = $plan;
$plans = $_SESSION['plan'];
    echo $_SESSION['plans'];

    include('connect.php');


        If (isset($_POST['submit']))
        {
            $CompanyName = $_POST['CompanyName'];

            $CompanyEmail = $_POST['CompanyEmail'];
            $CompanyContact = $_POST['CompanyContact'];
            $CompanyAddress = $_POST['CompanyAddress']; 
            $StoreName = $_POST['StoreName'];
            echo $plans;

      $myURL ="$_SERVER[HTTP_HOST]";
                $myURL =$StoreName.'.'.$myURL;

        if (stripos($myURL, 'www.') !== 0) {
           $myURL = 'www.' . $myURL;

        }
        if (stripos($myURL, 'http://') !== 0) {
           $myURL = 'http://' .$myURL;

        }

        if(stripos($myURL, '.com') !== 0) {
            $myURL = $myURL . '.com';

        }
        echo $plans;

            $RegistrationType = $_POST['RegistrationType'];

            $Status = "Active";
            $sql = "select * from plans where planname = '$plans'";
            echo $sql;
            mysql_query($sql) or die (mysql_error());
            $planID = $row['planid'];


            $query1 = "select count(CompanyEmail) from ApplicationRegister where CompanyEmail = '$CompanyEmail'" ;

            $result1 = mysql_query($query1) or die ("ERROR: " . mysql_error());

            $msg = "";
             while ($row = mysql_fetch_array($result1))
             {

                if($row['count(CompanyEmail)'] > 0)
                {
                    $msg = "<font color='red'> <b>This E-mail id is already registered </b></font> ";
                    break;
                }
            }
            if($msg == "")
            {


                $query2 = "select count(URL) from ApplicationRegister where URL = '$myURL' ";
                $result2 = mysql_query($query2) or die ("ERROR: " . mysql_error());
                $msg = "";
                while ($row = mysql_fetch_array($result2))
                {

                    if($row['count(URL)'] > 0)
                    {
                        $msg = "<font color='red'> <b>This Stroename is already registered </b></font> ";
                        break;
                    }
                }
                if($msg == "")
                {
                    $sql = "INSERT INTO ApplicationRegister(planid, CompanyName, CompanyEmail, CompanyContact, CompanyAddress, RegistrationType,                        ApplicationPlan, ApplicationStatus, URL, CreatedDate) VALUES ('$planID', '$CompanyName', '$CompanyEmail', '$CompanyContact',                    '$CompanyAddress', '$RegistrationType', '$plans', '$Status', '$myURL', NOW() )";

                    mysql_query($sql) or die(mysql_error());
                    $id = mysql_insert_id();
                    $_SESSION['application_id'] = $id;

                    if($plans == "trail")
                    {
                        header("Location: userRegister.php");
                        exit();
                    } 
                    else
                    {
                        header("Location : PaymentGateway.php");
                        exit();
                    }
                }
            }
        }

?>

(isset($_POST['submit']))値を保持するのは最初だけで、計画の空白の値を表示する場合に表示しようとします。何をすればいいか分からない。提案してください

EDITED このように使用した後でも、同じです。何が問題なのかわかりません:(

    $plan = $_GET["plan"];
    echo $plan;
    $_SESSION['plans'] = $plans;
    echo $_SESSION['plans'];
  // $plan = +$plan; 
    include('connect.php');


        If (isset($_POST['submit']))
        {
            $CompanyName = $_POST['CompanyName'];

            $CompanyEmail = $_POST['CompanyEmail'];
            $CompanyContact = $_POST['CompanyContact'];
            $CompanyAddress = $_POST['CompanyAddress']; 
            $StoreName = $_POST['StoreName'];
            echo $_SESSION['plans'];

編集済み

ApplicationRegister.php で、\m 前のページから取得した hiddenvalue を次のように渡しました

<input type="hidden" name="plan" value="<?php echo $plan ?>"/>

次に、これを使用した POST メソッド。今、私はそれの価値を得ています。ありがとうございます

編集済み

if($PlanName == "trail")
                    {

                        header("Location: userRegister.php");
                        exit();
                    } 
                    else
                    {
                        header("Location : PaymentGateway.php");
                        exit();
                    }
4

3 に答える 3

3

session_start()それは、ページの上部で呼び出しを行っていないためです。セッションがリクエスト間で持続するために必要です(これがセッションのポイントです)

于 2012-07-27T01:59:19.573 に答える
0

誰かがリンクをクリックすると、変数が適切に設定されます。ただし、$_POST['submit']投稿ではなく、単なる取得であるため、ロジックにヒットすることはありません。次に、後で実際にそのページに投稿すると仮定すると、何かにアクセスしようと$_GETすると null になり、セッション変数が null にリセットされます。

最初のページには、次のようなコードが必要です

<form action="ApplicationRegister.php" method="post">
    <select name="plan">
        <option value="trial">Trial</option>
    </select>
<input type="submit"/>
</form>

次に、チェックして$_POST['plan']$_POST['submit']

于 2012-07-27T02:06:40.480 に答える
0

を呼び出さないだけでなくsession_start();、このコードは間違っています。

$plan = $_GET["plan"];
echo $plan;
$_SESSION['plan'] = $plan;
$plans = $_SESSION['plan'];
echo $_SESSION['plans'];

そのはず:

$plan = $_GET["plan"];
echo $plan;
$_SESSION['plan'] = $plan;
$plans = $_SESSION['plans'];
echo $_SESSION['plans'];

設定して アクセス$_SESSION['plan']しようとしています。 $_SESSION['plans']

また、リンクをクリックしていformますか? あなたはリンクを持っていると言いますが、あなたのコードは から渡された値にアクセスしようとしますform

を使用している場合はform、リンクを使用しないでください。代わりに、select要素を使用してプランを選択してから、 に変更$plan = $_GET["plan"];$plan = $_POST["plan"];ます。

編集:

リダイレクトの問題については、次のコードを試してください。

echo "<pre>** Plan Name: **\n";
var_dump($PlanName);
echo "</pre>";
if($PlanName == "trail")
    {
        header("Location: userRegister.php");
        exit();
    } 
    else
    {
        header("Location: PaymentGateway.php");
        exit();
}

そしてそれが出力するものを見てください。

于 2012-07-27T02:07:15.830 に答える