@odecember1205
Q&A

PHPでエラーが出ていて困っています

解決したいこと

PHPと MySQLを利用して勤怠管理システムを作成しております。システムの構成としましては、ログイン機能と出退勤登録機能を持たせます。ログイン機能では、従業員番号とパスワードをログイン画面へ入力し、ログイン操作を行います。ログインした情報をデータベースに保存します。出退勤登録機能では、出勤ボタンまたは退勤ボタンを押したら、日付と時刻を記録し、データベースに保存します。最終的にデータベースに保存したものを一覧に表示させます。ここで、出退勤登録機能を実装中にエラーが発生しました。解決方法を教えて下さい。

発生している問題・エラー

Notice: Undefined variable: user_no in /Applications/XAMPP/xamppfiles/htdocs/timecard1/begin.php on line 15

Notice: Undefined variable: password in /Applications/XAMPP/xamppfiles/htdocs/timecard1/begin.php on line 15

Notice: Undefined variable: pdo in /Applications/XAMPP/xamppfiles/htdocs/timecard1/begin.php on line 24

Fatal error: Uncaught Error: Call to a member function prepare() on null in /Applications/XAMPP/xamppfiles/htdocs/timecard1/begin.php:24 Stack trace: #0 {main} thrown in /Applications/XAMPP/xamppfiles/htdocs/timecard1/begin.php on line 24

該当するソースコード

if(isset($_POST['begin'])){
    echo "出勤しました。";
    echo "";
};

$db_user = "kintai";
$db_pass = "password";
$db_host = "localhost";
$db_name = "mydb";

$dsn = "mysql:host=$db_host; dbname=$db_name; charset=utf8";

try {
    $dbh = new PDO($dsn, $user_no, $password);
} catch (PDOException $Exception) {
    die('エラー:'.$Exception->getMessage());
}

try{
    $date = new DateTime();
    $date = $date->format('Y-m-d H:i:s');
    $sql = 'INSERT INTO users(use_no,password) VALUES(:use_no, :password)';
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':use_no', $_SESSION['use_no'], PDO::PARAM_STR);
    $stmt->bindValue(':password', $_SESSION['password'], PDO::PARAM_STR);
    $stmt->execute();

}catch (PDOException $Exception) {
    die('エラー:'.$Exception->getMessage());
}

?>

以下のプログラムは、ログイン機能です。

<?php
//ログイン状態を確認
session_start();

//ログインされていない場合はログイン画面へ
if(!isset($_SESSION['id'])){
    $link = '<a href = "login.php"ログイン画面へ</a>';
    exit;
}

//ログインユーザ番号の情報をセッションから取得
$use_no = $_SESSION['use_no'];

//もし出勤ボタンを押したら、begin.phpへ遷移する。その際、出勤ボタンを押した日付と時刻をセッションする。
//もし退勤ボタンを押したら、finish.phpへ遷移する。その際、出勤ボタンを押した日付と時刻をセッションする。

?>


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>出退勤登録</title>
</head>
<body>
<h1>出退勤登録画面</h1>
<p id="RealdateTime"></p>
<script src = "timecard.js"></script>

<div class = "kinmu">
    <form name = "form1" method = "post" action = "begin.php">
        <input type = "submit" name = "begin" value = "出勤">
    </form>

    <from>
        <form name = "form2" method = "post" action = "finish.php">
        <input type = "submit" name = "finish" value = "退勤">
    </form>
</div>
</body>
</html>

下図はログイン機能の画面です。

スクリーンショット 2021-07-11 11.28.18.png

0
2
件の回答

エラーメッセージが示している通り、user_no password pdo という定義されていない変数を参照しているという単純な問題のようですが。

0

こちらで質問されていた内容は解決したのでしょうか。
解決したのであれば、新しい質問をする前に回答してくれた方にレスポンスを返すなりしましょう。

0
あなたも回答してみませんか :)
ユーザー登録
すでにアカウントを持っている方はログイン