Review adder JavaS fix

This commit is contained in:
Paul Eisenbock 2026-03-18 15:34:07 +01:00
parent c13a3f62b3
commit 701245fafc

View File

@ -369,29 +369,28 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
<?php endif; ?> <?php endif; ?>
</div> </div>
<div class="review-add">
<h2 class="reviews-title">Füge deine Bewertung hinzu!</h2>
<?php <?php
// Prüfen, ob eine Bewertung abgeschickt wurde und der Nutzer eingeloggt ist // Die Logik bleibt hier unten im Block!
if ( if (
$_SERVER['REQUEST_METHOD'] === 'POST' && $_SERVER['REQUEST_METHOD'] === 'POST' &&
isset($_POST['submit_review']) && isset($_POST['submit_review']) &&
isset($_SESSION['user_id']) isset($_SESSION['user_id'])
) { ) {
// Daten aus dem Formular holen und absichern
$rating = (int)$_POST['rating']; $rating = (int)$_POST['rating'];
$comment = trim($_POST['comment']); $comment = trim($_POST['comment']);
$userID = $_SESSION['user_id']; $userID = $_SESSION['user_id'];
// Kleine Validierung: Ist das Rating gültig und der Kommentar nicht leer?
if ($rating >= 1 && $rating <= 5 && !empty($comment)) { if ($rating >= 1 && $rating <= 5 && !empty($comment)) {
// SQL-Statement vorbereiten (wie im Screenshot: userID, productID, rating, comment)
$stmtInsertRev = mysqli_prepare( $stmtInsertRev = mysqli_prepare(
$conn, $conn,
"INSERT INTO reviews (userID, productID, rating, comment) VALUES (?, ?, ?, ?)" "INSERT INTO reviews (userID, productID, rating, comment) VALUES (?, ?, ?, ?)"
); );
if ($stmtInsertRev) { if ($stmtInsertRev) {
// "iiis" steht für: Integer, Integer, Integer, String
mysqli_stmt_bind_param( mysqli_stmt_bind_param(
$stmtInsertRev, $stmtInsertRev,
"iiis", "iiis",
@ -404,17 +403,14 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
mysqli_stmt_execute($stmtInsertRev); mysqli_stmt_execute($stmtInsertRev);
mysqli_stmt_close($stmtInsertRev); mysqli_stmt_close($stmtInsertRev);
// WICHTIG: Die Seite neu laden, damit das Formular bei einem Refresh (F5) nicht doppelt gesendet wird // TRICK: JavaScript-Weiterleitung anstelle von PHP-Header!
header("Location: productpage.php?id=" . $productId); echo "<script>window.location.href = 'productpage.php?id=" . $productId . "';</script>";
exit; // Stoppt das Skript hier, da wir weiterleiten exit;
} }
} }
} }
?> ?>
<div class="review-add">
<h2 class="reviews-title">Füge deine Bewertung hinzu!</h2>
<div class="review-card"> <div class="review-card">
<?php if (isset($_SESSION['user_id'])): ?> <?php if (isset($_SESSION['user_id'])): ?>
<form class="review-input-form" method="post" autocomplete="off"> <form class="review-input-form" method="post" autocomplete="off">
@ -443,10 +439,12 @@ $productId = isset($_GET['id']) ? (int)$_GET['id'] : 0;
<input class="auth__submit" type="submit" value="Senden"> <input class="auth__submit" type="submit" value="Senden">
</form> </form>
<?php else: ?> <?php else: ?>
<p style="color: #cbd5e1; margin-bottom: 1rem;" >Du musst eingeloggt sein, um eine Bewertung abzugeben.</p> <div class="review-login-prompt">
<p class="review-login-msg">Du musst eingeloggt sein, um eine Bewertung abzugeben.</p>
<a href="login.php"> <a href="login.php">
<input class="auth__submit" type="button" value="Zum Einloggen"> <input class="auth__submit" type="button" value="Zum Einloggen">
</a> </a>
</div>
<?php endif; ?> <?php endif; ?>
</div> </div>
</div> </div>