ホームページ  >  記事  >  バックエンド開発  >  PHP が form_PHP チュートリアルの送信に失敗した後に入力された情報を保持する方法

PHP が form_PHP チュートリアルの送信に失敗した後に入力された情報を保持する方法

WBOY
WBOYオリジナル
2016-07-20 11:12:17951ブラウズ

この記事では、PHP がフォームの送信に失敗した後に入力された情報を保持する方法を紹介します。最も一般的に使用される方法は、ネットワーク速度が遅い場合に問題が発生する可能性があります。アヤックス。

1.ヘッダー ヘッダーを使用して、キャッシュ コントロール ヘッダー Cache-control を設定します。

PHPコード
1.

コードは次のとおりです コードをコピー
header('Cache-control: private, must-revalidate') //ページバウンスをサポートします

2 . session_cache_limiter メソッドを使用します。

PHPコード

コードは以下の通りです コードをコピー
1.session_cache_limiter('private,must-revalidate') //session_startメソッドの前に書きます

紹介下のd session_cache_limiter パラメータは次のとおりです:

session_cache_limiter のいくつかのパラメータの意味は次のとおりです:
nocache: もちろんキャッシュされません (例: フォーム情報はクリアされます) ですが、パブリック変数はキャッシュできます
private: プライベート モード キャッシュ (例: : フォーム情報は保持されますが、存続期間中有効です)
private_no_cache: プライベートモードですが期限切れになりません (フォーム情報は保持されます)
publice: パブリックモード、(フォーム情報も保持されます)

キャッシュの有効期限を設定しますtime: session_cache_expire 関数の設定、デフォルトは 180 分です。

よく発生する問題:

1. session_cache_limiter("private"); フォーム情報は保持されますが、送信された情報を変更すると、フォーム ページに表示される情報はキャッシュ内の情報のままになり、時間内に自動的に更新されません。 ); は使用されていないため、フォーム情報を保持できません

解決策:

session_start の前に

を追加します コードは次のとおりです コードをコピーします


Ajaxを使用して


index.htmlテンプレートファイルの大きなコンテンツをインスタンス化する別の方法:

session_cache_limiter( "private、must-revalidate " ); 以上です

コードは次のとおりです コードをコピー


<頭>
jQuery Ajax デモ


< ; script type="text/javascript">
$(document).ready(function(){//これがjQueryreadyで、C言語のメインのようなもので、全ての操作がこの中に含まれています
$("#button_login" ) .mousedown(function(){
Login(); //ID が「button_login」のボタンをクリックした後に関数 login() がトリガーされます;
});

    function login(){ //函数 login();
        var username = $("#username").val();//取框中的用户名
        var password = $("#password").val();//取框中的密码
        $.ajax({ //一个Ajax过程
            type: "post", //以post方式与后台沟通
            url : "login.php", //与此php页面沟通
            dataType:'json',//从php返回的值以 JSON方式 解释
            data: 'username='+username+'&password='+password, //发给php的数据有两项,分别是上面传来的u和p
            success: function(json){//如果调用php成功
            //alert(json.username+'n'+json.password); //把php中的返回值(json.username)给 alert出来
            $('#result').html("姓名:" + json.username + "
密码:" + json.password); //把php中的返回值显示在预定义的result定位符位置
            }
        });
    }
    //$.post()方式:
    $('#test_post').mousedown(function (){
        $.post(
            'login.php',
            {
            username:$('#username').val(),
            password:$('#password').val()
            },
            function (data) //回传函数
            {
                var myjson='';
                eval_r('myjson=' + data + ';');
                $('#result').html("姓名1:" + myjson.username + "
密码1:" + myjson.password);
            }
        );
    });
    //$.get()方式:
    $('#test_get').mousedown(function (){
        $.get(
            'login.php',
            {
            username:$('#username').val(),
            password:$('#password').val()
            },
            function(data) //回传函数
            {
                var myjson='';
                eval_r("myjson=" + data + ";");
                $('#result').html("姓名2:" + myjson.username + "
密码2:" + myjson.password);
            }
        );
    });
});




入力名:


パスワードを入力してください:





< button id="test_get">get submit

元のソースコードにはバグがあるようですが、修正後は正常に動作します。

login.php ファイルの内容:

コードは次のとおりです コードをコピー
echo json_encode(array ('username'=>$_REQUEST['username'],'パスワード' =>$_REQUEST['パスワード']));
?>

この場合、送信に失敗した場合は、ページを更新する必要はありません。こうすることで、送信が失敗した後でもデータを 100% 保存できます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/444583.html技術記事この記事では、PHP フォームの送信が失敗した後に入力された情報を保持する方法についていくつかの概要を紹介します。最も一般的に使用される方法は、ネットワーク速度が遅い場合に使用できる可能性があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。