0
ログインしてニックネームまたはパスワードを変更できるページを作成しようとしていました。 mySQLデータベースのすべてですが、IDをセッション変数に保存しようとすると機能しません。助言がありますか?現在のユーザーのIDを取得していない
私はXAMPPを使用していますが、ユーザーはデータベースユーザーの私のテーブルです。私はログインフォームコードを投稿していません。
すべてが接続されていますが、コードは警告またはエラーを表示しません。
login.php(フラグメント):
$sql = "SELECT * FROM users WHERE nickname = '$myusername' and pass = '$mypassword' and confirmed = 1";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count == 1) {
$logged = true;
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"];
$_SESSION['currentId'] = $row["id"];
echo 'Id: ' . $_SESSION['currentId'];
}
}else {
$error = "Your Login Name or Password is invalid";
}
}
change.php(全体):助けを
<?php
session_start();
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "Users";
$currentId = $_SESSION['currentId'];
if($currentId<1){echo 'No Id.';}
else {echo 'CurrentId: ';
echo $currentId;}
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully <br>";
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$aCUname = mysqli_real_escape_string($conn,$_POST['CUname']);
$aCUpass = mysqli_real_escape_string($conn,$_POST['CUpass']);
$sql = "UPDATE users SET nickname = '$aCUname', pass = '$aCUpass' WHERE id = '$currentId';";
$result = mysqli_query($conn,$sql);
echo 'Updated successfully.';
}
?>
感謝。
私は1つのため、どんな種類のエラー処理も表示されません。 –
エラーメッセージを表示してください。 –
login.phpコードでmysql_fetchを2回実行しています。行ポインタは、1回のmysqlフェッチを実行した後に1回終了します。最初のものを削除して試してみてください。 –