mySQLのログインページを設定しましたが、正しくログインします。ログインフォームには電子メールとパスワードがありますが、ログイン時です。ただし、最初に登録すると、mySQLレコードにも名前と名前が入力されます(フィールドは、名前、名前、電子メール、パスワードです)。
問題は、ログインに成功したときに、レコードから他の変数を取得していないことです。彼らが入力したのは、電子メールとパスワードを取得するだけです。すでに持っているデータ(ユーザー名、パスワード)に対応するmySQLの行の他の変数(名、姓)を取得するにはどうすればよいですか?これは一種のmySQL101である可能性があることは理解していますが、この質問を正確にグーグルで検索するのに問題があります。
いくつかのコードを添付しました。これは、すべてを検証する私のchecklogin.phpページです。これで、下部の変数は、フォームによって投稿されなかったため、名と姓を取得する方法ではないことがわかりました(前述したように、フォームには電子メールとパスワードしかありません)。
<?php
$mysqli = mysqli_connect("mysql_name","user_name","password", "db_name");
if (!$mysqli)
{
die('Could not connect: ' . mysqli_error($mysqli));
}
// username and password sent from form
//NEVER Remove the mysql_real_escape_string. Else there could be an Sql-Injection!
$email=$mysqli->real_escape_string($_POST['email']);
$password=$mysqli->real_escape_string($_POST['password']);
$sql="SELECT * FROM tbl_name WHERE email='$email' and password='$password'";
$result = $mysqli->query($sql);
if(is_object($result) && $result->num_rows == 1){
// Register variables and redirect to file "profile.php"
session_start();
$_SESSION['firstname']=$_POST['firstname'];
$_SESSION['lastname']=$_POST['lastname'];
$_SESSION['email']=$_POST['email'];
$_SESSION['password']=$_POST['password'];
header('location:profile.php');
} else {
echo "Wrong Username or Password";
}
?>
私の仮定では、変数はprofile.phpページで呼び出され、セッションの開始後にリダイレクトされます。問題は、$ _SESSION['firstname']と$_SESSION['lastname']がまだ宣言されていないため、機能しないことです。どんな助けでも(あるいは正しい方向に少しだけでも)大歓迎です。ありがとう!