-1

各フィールドの入力を順番にチェックする Web サイトの登録スクリプト (合計で 9 つ) を書いてい"{//9"ます"}// close9"

ただし、いずれかのチェックが失敗した場合、スクリプトは変数に「失敗」の値を割り当てることになっているため$GLOBALS['fail']、ページの下部に「登録に失敗しました」というエコーが返されます。

しかし、$GLOBALS['fail']変数に値が割り当てられていても、 passed「登録に失敗しました」というメッセージが表示され、すべて試しても停止しません。

関数が呼び出される直前echo $GLOBALS['fail'];割り当てられた値を確認するために入力しました。if($GLOBALS['fail'] = "failed")

以下はコードです:

<?php 
//first visit
if(isset($_POST['submit']))
{//first visit

if(isset($_POST['firstname'])&&(!empty($_POST['firstname'])))
{//1
$firstname = $_POST['firstname'];
echo $firstname . "<br/>";

if(isset($_POST['surname'])&&(!empty($_POST['surname'])))
{//2
$surname = $_POST['surname'];
echo $surname. "<br/>";

if(isset($_POST['username'])&&(!empty($_POST['username'])))
{//3
$username = $_POST['username'];
echo $username. "<br/>";

if(isset($_POST['password1'])&&(!empty($_POST['password1'])))
{//4
$pass1 = $_POST['password1'];
echo $pass1. "<br/>";

if(isset($_POST['password2'])&&(!empty($_POST['password2'])))
{//5
$pass2 = $_POST['password2'];
echo $pass2. "<br/>";

if(isset($_POST['day'])&&(!empty($_POST['day'])))
{//6
$day = $_POST['day'];
echo $day. "<br/>";

if(isset($_POST['month'])&&(!empty($_POST['month'])))
{//7
$month = $_POST['month'];
echo $month. "<br/>";

if(isset($_POST['year'])&&(!empty($_POST['year'])))
{//8
$year = $_POST['year'];
echo $year. "<br/>";

if(isset($_POST['email'])&&(!empty($_POST['email'])))
{//9
$email = $_POST['email'];
echo $email. "<br/>" ."well done";
$GLOBALS['fail'] = "passed";
echo $GLOBALS['fail'];

} //close9

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close8

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close7

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close6

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close5

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close4

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close3

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close2

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //close1

else {$GLOBALS['fail']="failed"; echo "Please fill in <b>All</b> fields " ;}

} //firstvisit

else echo "stupidity";

echo $GLOBALS['fail'];

if(isset($GLOBALS['fail'])){
if($GLOBALS['fail']="failed"){
echo "registration failed";
}
else echo $GLOBALS['fail'];
}
else echo "no fail set";
?>

登録を押してフォーム全体が完成したときの画面の出力はよくできていますpassedpassedregistration failed

誰でも私を助けてもらえますか?

4

1 に答える 1

2

使用する:

if($GLOBALS['fail'] === "failed"){}

または:

if($GLOBALS['fail'] == "failed"){}

1 つの "=" で比較することはできません。値を比較するには 2 を使用し、タイプも比較する場合は 3 を使用する必要があります。

于 2013-03-17T19:17:23.760 に答える