私はlogin.php用のこのコードを持っており、データベースに接続しています。コード自体は機能しますが、ユーザーがログインしているかどうかを確認しても機能していません。 (私はログインフォームを作っておきたいと思うのですが、domain.com/welcome.phpと入力するだけです)とにかく、login.phpコードがあります。間違ったユーザー名やパスワードを入力すると、エラーが表示されますが、正しいものを入力すると、ログインフォームのindex.phpに戻ってきます。PHPセッションのMySQLチェック
<?php
// Get values from form
$username = $_POST ['username'];
$password = $_POST ['password'];
// Prevent MySQL injection
$username = stripcslashes($username);
$password = stripcslashes($password);
// Connect to database
mysql_connect("domain.com", "sqlusername", "sqlpassword");
mysql_select_db("database");
// Query the database for user
if (($username != null || $username != "") && ($password != null || $password != "")) {
$result = mysql_query("SELECT * FROM members WHERE username = '$username' AND password = '$password'")
or die("Failed to query members " .mysql_error());
if (mysql_num_rows($result) == 1) {
$_SESSION['user'] = $username;
header("location:/welcome.php");
} else {
header("location:/?error=true&msg=2");
}
} else {
// Handle empty entries
header("location:/?error=true&msg=1");
}
?>
そして、ここに私のページには、ユーザー名とパスワードを持つユーザーがログインすることです。
<?php
session_start();
var_dump($_SESSION);
if (isset ($_SESSION['user'])){
$username = $_SESSION['user'];
} else {
header("Location: index.php");
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Loged in</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div>
WELCOME <?php $username /?>
</div>
</body>
</html>
ありがとうございます。
のようなものである必要がありますか? –
2016年に来て、mysqlを使用しないでください。ところで、あなたはあなたのログイン時にセッションを開始しないようです。 – Mattia
そのvar_dumpは私に入れてくれと言われた人です。それはうまくいくはずです。彼が言ったのは... Matti - MySQLiを使いますか? If文中の – Tommy