Heim  >  Fragen und Antworten  >  Hauptteil

Nach der PHP-Authentifizierung konnte nicht erfolgreich in die MySQL-Datenbank geschrieben werden

Ich versuche, nach der Authentifizierung Daten in die Datenbank zu schreiben, aber es gelingt mir nicht.

Sobald ich mich erfolgreich angemeldet habe, leite ich zu index.php weiter

<?php
session_start();

if (isset($_SESSION["user_id"])) {
    $mysqli = require __DIR__ . "/database.php";
    $sql = "SELECT * FROM user
            WHERE id = {$_SESSION["user_id"]}";
    $result = $mysqli->query($sql);
    $user = $result->fetch_assoc();
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/water.css@2/out/water.css">
</head>
<body>
    <h1>Home</h1>
    <?php if (isset($user)): ?>
        <p>Hello <?= htmlspecialchars($user["name"]) ?></p>
        <form action="user-input.php" method="post" id="availDates">
            <label for="nickName">Nickname:</label>
            <input id="nickName" name="nickname" />
            
            <label for="startDate">Start Date:</label>
            <input type="date" id="startDate" name="startdate">
            <button type="submit">Submit</button>
        </form>
       
        <p><a href="logout.php">Log out</a></p>
    <?php else: ?>
        <p><a href="login.php">Log in</a> or <a href="signup.html">sign up</a></p>
    <?php endif; ?>
</body>
</html>

Von hier aus möchte ich einen Namen und ein Datum erfassen und absenden, aber nach jeder Übermittlung schaue ich in phpmyadmin nach und die Tabellenzellen sind leer. Ich verwende xampp zur lokalen Ausführung. Hier ist der Code, den ich versuche, die Eingabe aus dem Formular zu erfassen:

<?php

if (empty($_POST["nickname"])) {
    die("Name is required");
}

if (empty($_POST["date"])) {
   die("Name is required");
}

$mysqli = require __DIR__ . "/database.php";
$sql = "INSERT INTO user (nickname) VALUES (?)";
$stmt = $mysqli->stmt_init();

if ( ! $stmt->prepare($sql)) {
    die("SQL error: " . $mysqli->error);
}

$stmt->bind_param("sss", $_POST["name"]);
                  
if ($stmt->execute()) {
  echo "successful";
} else {
    if ($mysqli->errno === 1062) {
        die("error");
    } else {
        die($mysqli->error . " " . $mysqli->errno);
    }
}

Jede Hilfe wäre sehr dankbar

P粉221046425P粉221046425423 Tage vor573

Antworte allen(1)Ich werde antworten

  • P粉517814372

    P粉5178143722023-09-14 09:03:40

    表单数据具有带有值为“nickname”和“startdate”的name属性。我猜你应该正确使用它们来构建插入查询,例如$_POST["nickname"]$_POST["startdate"]

    如果你仍然遇到问题,请发布完整的错误日志进行调试。

    Antwort
    0
  • StornierenAntwort