ホームページ >バックエンド開発 >PHPチュートリアル >今日の筆記試験の問題
1. 注文システム ショッピングでは、ネットワークが遅いため、システムにより顧客が送信を複数回クリックすることがあります。何か良い解決策はありますか。 ?
1. クリックした後、「送信中...」というプロンプトを表示してボタンをクリックできないようにし、結果が返されるまで元に戻します
2. 少し
3. 使ったことはありません..
4. ...本当にこれまで使ったことがありません
カーン、面接のリズムに乗れません
どれも比較的基本的な質問で、あまり内容がありません言う。
1. 送信ボタンを一度クリックすると、送信ボタンがグレー表示になり(クリックできなくなり)、数秒後に元に戻ります(または対応するコールバック関数)。これにより、繰り返しの送信を防ぐだけでなく、サーバーへの影響も防ぐことができます。多数の繰り返し投稿のため。
4. 再帰的に処理します。 Linux システムの場合は、. ディレクトリと .. ディレクトリの繰り返しのループ検索を避ける必要があることに注意してください。
2番目を誰も書いていないので、2番目を書きます
function maopao($arr){ $len = count($arr); for($i=1; $i<$len; $i++)//最多做n-1趟排序 { $flag = false; //本趟排序开始前,交换标志应为假 for($j=$len-1;$j>=$i;$j--) { if($arr[$j]<$arr[$j-1])//交换记录 {//如果是从大到小的话,只要在这里的判断改成if($arr[$j]>$arr[$j-1])就可以了 $x=$arr[$j]; $arr[$j]=$arr[$j-1]; $arr[$j-1]=$x; $flag = true;//发生了交换,故将交换标志置为真 } } if(! $flag)//本趟排序未发生交换,提前终止算法 return $arr; }}$shuz = array('2','4','1','8','5');$bb = maopao($shuz);print_r($bb);
私のレベルに合っていて、気に入っています。
3. トランザクション処理のいくつかのポイント
まず、データエンジンが innoDB の場合
トランザクション処理とは、SQL コマンドをまとめて実行することです。すべての SQL ステートメントが正常に実行されれば、トランザクションは成功します。
SQL コマンドが失敗すると、今度はトランザクションが失敗するため、ロールバック メソッドを呼び出して以前の操作をすべて元に戻すことができます
トランザクション処理プロセス
まずトランザクションを開きます
autocommit=0 を設定します。 .....
SQL
....
if(true)
commit();
else
rollback();
function travelPath(&$fileItem,$path) {
if (is_dir($path)) {
if($handle = opendir($path)) {
foreach ($item as $handle) {
if($item == '.' || $item == '.. ')
リターン ;
if(!is_dir($item)) {
$fileItem[] = $item;
}
travelPath($fileItem, $item);
}
}
}
私のレベルに合っていて、気に入りました。 ... 使ったことがないです
面接のリズムに乗れません
ネットワークが遅いと言われていますが、それでも提出しています。送信中は表示されません。
フォームトークンを使用すると思います。重複提出を防ぐことができます。
フォームトークンを使用すると思います。重複提出を防ぐことができます。
では、長い待機プロセス中にユーザーにどのようなメッセージが伝えられるのでしょうか? もう一度クリックしても応答がありません。これを「送信中...」に変更してから送信する方が良いでしょうか。結果を受け取ってから戻ってきてください
これは PHP の面接の場合ですか?だったらもっと勉強したほうがいいよ!
フォームトークンを使用すると思います。重複提出を防ぐことができます。
では、長い待機プロセス中にユーザーにどのようなメッセージが伝えられるのでしょうか? もう一度クリックしても応答がありません。これをクリックした後、「送信中...」に変更してから送信する方が良いでしょうか。結果を受け取ってから戻ってきてください
フォームトークンを使用すると思います。重複提出を防ぐことができます。
では、長い待機プロセス中にユーザーにどのようなメッセージが伝えられるのでしょうか? もう一度クリックしても応答がありません。これを「送信中...」に変更してから送信する方が良いでしょうか。結果を受け取ってから戻ってきてください
私が言いたいのは、これで繰り返しの送信を防ぐことができるということですが、ネットワークが接続されていない場合、フォームのページは変更されません。自由に提出することに変わりはありません。それに、JS を使用して変更すると言うのであれば、誰も JS を変更し続けられない場合はどうなるかを教えてください。ユーザーがそんなことをしないとは言わないが、もしハッカーがそうしたことをしたらどうするか教えてほしい。
フォーム トークンは便利ですが、元の投稿者の「ネットワークが遅いため複数の送信が発生する」という状態に注意してください。この場合、ユーザーはフォーム トークンが一致して期限切れになる前に送信ボタンを複数回クリックした可能性があります。制御には JS を使用する方が適切です
さらに、この 2 つは競合せず、両方を使用できます。