みなさん、私の調査を行ったのですが、変数の前に@記号を付けると言われている多くの人がまだ立ち往生していることがわかりましたが、機能していないようです。そのため、私のコードでこのエラーが発生します。
Notice: Undefined index: 2 in login.php on line 20
私のコードは
if( isset($_REQUEST['email']) || isset($_REQUEST['pwd']) || $_REQUEST['email'] != "" || $_REQUEST['pwd'] != "" )
{
$inputFile = fopen("members.txt", "r");
$found = false;
$i =0;
//read the read.txt until the end of file
while(!feof($inputFile) && $found == false)
{
$line = fgets($inputFile);
// replace the special charater within the lines by there proper entity code
$lineArray = preg_split("/\,/", (string)$line);
if ($_REQUEST['email'] === $lineArray['2'] && $_REQUEST['pwd'] === $lineArray['4'])
{
session_start();
$found = true;
$useremail=$_REQUEST['email'];
$password= $_REQUEST['pwd'];
//time to set sessions and stuff
$_SESSION['useremail'] = $useremail;
$_SESSION['password'] = $password;
//send the redirect header
header('Location: index.php');
exit();
}
}
fclose($inputFile);
}
したがって、それが参照している行は
if ($_REQUEST['email'] === $lineArray['2'] && $_REQUEST['pwd'] === $lineArray['4'])
iveは、一重引用符を削除して$ lineArrayの前に@を追加し、両方を実行するなど、他の多くのバリエーションを試しました。印刷時に値が存在することを誰かが助けてくれますが、このifステートメントに到達しても変換されません。等しくすると、このエラーが発生します。
また試した場合
if ($_REQUEST['email'] === $lineArray[2] && $_REQUEST['pwd'] === $lineArray[4])
と
if ($_REQUEST['email'] === @$lineArray[2] && $_REQUEST['pwd'] === @$lineArray[4])