私はプログラミング全体にかなり慣れていないので、これがばかげた質問である場合はご容赦ください。今まで遭遇したことがないのは奇妙に思えます。
ケーキの注文書を作ろうとしています。フォームに入力して送信すると、注文が新しいウィンドウに表示されます。[送信] をクリックして、データベースにアップロードします。フォームを送信する前に、フォームのエラーをチェックするための一連の If ステートメントがあります。これは、コードの簡略化されたバージョンです。書き込みはケーキに書きたいことを意味し、Name はあなたの名前、cake は希望するケーキの種類です (デフォルトは「なし」です)。
try {
$name = trim($params->name);
$cake = trim($params->cake);
$writing = trim($params->writing);
if (strlen($name) < 3){
throw new Exception("Please enter Your name.");
}
if ($cake = "None") {
throw new Exception("Please select a Cake"
}
if ($cake = "Caramel Apple Pie" or $cake = "Pumpkin Pie" or $cake = "Eggnog Pie" and strlen($writing) > 1) {
throw new Exception("We are sorry, but you can't write on any of our specialty pies.");
}
} catch(Exception $x) {
$error = $x->getmessage();
}
何が起こっているのかというと、最初に送信すると正しいケーキの種類が表示されますが、2 回目に送信すると、「なし」が選択されているというエラーが表示されます。他のすべての値はそこにあり、同じままです。問題は、最初の "IF" ステートメント ("If($cake = "None")) が自動的に $cake を "None" に変更していることだと思います。これは、そのステートメントだけをコメントアウトしようとしたためです。ケーキを「Caramel Apple Pie」に変更します。これは、次の IF ステートメントの先頭にあります。
なぜこれを行っているのか誰にも分かりますか?そして、それを修正する方法は?