Nach der PHP-Authentifizierung konnte nicht erfolgreich in die MySQL-Datenbank geschrieben werden
P粉221046425
P粉221046425 2023-09-13 09:54:01
0
1
587

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粉221046425
P粉221046425

Antworte allen(1)
P粉517814372

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

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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage