0

送信という名前のボタンがある admin.php というファイルがあります。私がやりたいことは、それをクリックして、ユーザーのページ user.php にリンクを表示することです。これどうやってするの?

私は onSubmit($var); と呼ばれる関数を持っている functions.php と呼ばれるすべての関数を含むファイルを持っています。変数 $var is admin.php を値 $_POST['send'] で初期化しますが、ファイル user.php で関数を呼び出すと、変数 $var が誰であるかを彼に伝える方法がないため、「未定義」になります。索引'。

これを行う別の方法はありますか?

EDIT追加コード これはadmin.phpです

<input type="button" name="send" value="Submit" /><br/>      

require 'functions.php';  
$posted = $_POST['send'];  
onSubmit($posted);  

これはuser.phpです

require 'functions.php';  
onSubmit($var);  //here it says undefined index var because it doesn't know who the variable is
if($isSent == 1) { 

<a style="visibility:visible;" href="test3.html" id="test3">Test3</a> <br/>  

}  

これが functions.php です

global $isSent;  
function onSubmit($var) {  
if(isset($var)) {  
$isSent = 1;  
}  
}
4

3 に答える 3

2

基本的に、以下のようなセッションを使用する必要があります。

if(isset($_SESSION['makeVisible']) && $_SESSION['makeVisible'] == true){
    echo '<button>Button init</button>'; //you could also use html like the comment below.
}
/*
if(condition){?> <!-- this is now html --> <button>Button init</button><?}
*/

次に、管理ページでこの変数を設定するには、次を使用します。

if(isset($_POST['submitButton'])){
    $_SESSION['makeVisible'] == true;
}

この方法を機能させるにはフォームも必要ですが、他の方法もありますが、私はこれを好みます。

<form name="buttonMakerThing" method="POST">
    <input name="submitButton" value="Make button init Visible" type="submit"/>
</form>

フォームがない場合はaction、デフォルトでフォーム情報を現在のページに「投稿」します。条件if(isset($_POST))が true を返すようにします。これを機能させるには、サイトにあるすべての PHP ページの上部に宣言
を追加する必要があります。$_SESSIONすべてのページの最初の行に配置する必要があります。例えば:

01: | <?php session_start();
02: |//rest of script;

/あなたのセッションとそれらのその他の用途についてもっと$_SESSIONS調べてください:) http://php.net/manual/en/reserved.variables.session.phpunnsettingdestroying

于 2013-01-12T12:02:47.543 に答える
1

関数を定義する functions.php がある場合は、それを admin.php ファイルに含めるだけで、そこから関数を呼び出して値を渡すことができます。

于 2013-01-12T11:48:56.553 に答える
1

そうです、私はキャッシングについて少し調査しましたが、これが私が思いついたものです。100%正しいとは限りませんが、自分で試したことがないと言ったようなスタートです(笑)

あなたの admin.php に、この関数を入れます:

if(isset($_POST['send'])){
    if($enabled == true){
        $enabled == false;
    }
    else{
        $enabled == true;
    }
     apc_add('enabled',$enabled);
}

次に変数を「取得」します$enabled

$enabled = apc_fetch('enabled');

次に、クライアント ページ内の変数を確認します。

if($enabled == true){
    echo ' button';
}

私が完全に見ていない唯一のことは、apc_関数のセキュリティとクライアントの使用法です。サーバーのすべてのクライアントで機能すると思いますが、100%確実ではありません。ここでは、より良い例を提供するためのphp マニュアルを参照してください。

これが私が考えた方法です。しかし、やはりセキュリティについてはわかりませんが、安全に保つための何かを見つけることができると確信しています. このビデオは、実際にはYoutube APIのチュートリアルです。しかし、彼は変数をキャッシュテキストファイルに保存することをカバーしています。これはあなたに役立つはずです:)

于 2013-01-12T15:05:13.387 に答える