現在、電子メールアドレスとパスワードの2つのテキストフィールドを持つhtmlログインページがあります。 HTMLにはフォームと、データ入力を確認するためにJavaScriptをトリガーするボタンが含まれています。データが有効な場合、データはPHPアプリケーションに送信されます。HTML、Javascript、PHPログインページ
このphpアプリケーションは、ログインの詳細が有効か無効かによって応答が異なります。ここで
は私のPHPです:
if(isset($_POST['username']) && isset($_POST['password'])){
//connect to database
$dbh = connect();
$user = mysql_real_escape_string($_POST['username']);
$usertype = mysql_real_escape_string($_POST['usertype']);
$pass = md5($_POST['password']);
$query = "";
if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $user)) {
if($usertype == "SupportStaff"){
$query = "SELECT staffId, fName, lName, gender, email FROM SupportStaff WHERE email = '$user' AND password = '$pass'";
}else{
$date = $_POST['currdate'];
$query = "SELECT athleteId, fName, lName, gender, email FROM Athletes WHERE email = '$user' AND password = '$pass'";
}
//make query
$result = mysql_query($query) or die ("didn't query");
//see if there's an EXACT match
$num = mysql_num_rows($result);
if ($num == 1){
$row = mysql_fetch_assoc($result);
if($usertype == "Athlete"){
$user = str_replace("@","at",$user);
$user = str_replace(".","dot",$user);
$user .= "Entries";
$query = mysql_query("SELECT * FROM $user WHERE date = '$date'");
$exists = false;
if(mysql_num_rows($query) == 1){
$exists = "true"; //to see if questionnaire is complete
}else{
$exists = "false";
}
$row['complete'] = $exists;
}
echo json_encode($row);
} else {
echo ($user." ");
echo ($pass);
echo ("&result=invalid");
}
}else{
mysql_close($dbh);
echo ("&result=false"); //invalid e-mail address
}
mysql_close($dbh);
}
?>
それは&result=false
OR &result=invalid
をエコー表示した場合、それが成功した場合、私は、エラーメッセージまたは類似した何かを表示し、再びログインページにアップサービスされるユーザーをしたいと思います( echo json_encode($row)
)それはhome.html(すなわち、ホームページ)にかかるべきです...これを達成する最良の方法は何ですか?
参照[PHPログインスクリプト](http://php-login-script.com/)を使用して提出されているかどうかをテストすることができます
を持つべきですコードを読んで、その仕組みを理解してください。がんばろう! – CuriousMind
あなたの質問をコードで更新する前に私の答えを提出しましたが、私の提案はまだ解決策の1つです。コードを効果的に書くと、純粋に手続き型コードの代わりに関数(または完全なOOコード)を書くことによって、PHPファイルが大きくなりすぎたり/乱雑になるのを防ぐことができます。 – ChrisW