M
mustermen
Gast
Hallo bei mir kommt der Fehler: "Notice: Undefined index: timestamp in C:\xampp\htdocs\cjw\gbsend.php on line 18
Der Eintrag konnte nicht hinzugefügt werden."
Ich habe ein Formular, das heißt gbinsert.php und dort drinne ist eine php Anweisung die die Zeit misst wie lange der User braucht es Auszufüllen, ich will damit Spam abwehren:
und hier ist gbsend.php Zeile 18 ist gekennzeichnet. Ich glaube PHP findet "timestamp" nicht, obwohl ich isset hinzugefügt habe?
Ich bin ein Anfänger was PHP betrifft bitte sehr einfache Antworten geben danke!
Der Eintrag konnte nicht hinzugefügt werden."
Ich habe ein Formular, das heißt gbinsert.php und dort drinne ist eine php Anweisung die die Zeit misst wie lange der User braucht es Auszufüllen, ich will damit Spam abwehren:
PHP:
<form action="gbsend.php" method="post">
<input type="text" name="name" placeholder="Dein Name" required><br>
<input type="email" name="email" placeholder="Deine Email" required><br>
<textarea name="text" placeholder="Deine Nachricht…" required></textarea><br>
<input class="submit" type="submit" name="submit" value="Eintragen"><br>
<?php
echo "<input type=\"hidden\" name=\"timestamp\" value=\"" . time() ."\">";
?>
</form>
und hier ist gbsend.php Zeile 18 ist gekennzeichnet. Ich glaube PHP findet "timestamp" nicht, obwohl ich isset hinzugefügt habe?
PHP:
<?php
if (isset( $_POST['submit'] ))
{
// Maskierende Slashes aus POST Array entfernen
if (get_magic_quotes_gpc()) { $_POST = array_map( 'stripslashes', $_POST ); }
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
// Neues Datenbank-Objekt erzeugen
$db = @new mysqli( 'localhost', 'root', '', 'gb' );
// Pruefen ob die Datenbankverbindung hergestellt werden konnte
if (mysqli_connect_errno() == 0)
{
//Pruefen ob das Eintragen laenger als 60 Sekunden gedauert hat
if (isset($_GET['timestamp'])) echo $_GET['timestamp']; //>>>>>>>>>>Zeile 18
if (time() - $_GET['timestamp'] > 60){
//Eintrag verarbeiten
$datum = date("d.m.Y");
$sql = 'INSERT INTO `gb` (`name`, `email`, `text`, `datum`) VALUES (?, ?, ?, ?)';
$eintrag = $db->prepare( $sql );
$eintrag->bind_param( 'ssss', $name, $email, $text, $datum );
$eintrag->execute();
// Pruefen ob der Eintrag efolgreich war
if ($eintrag->affected_rows == 1)
{
echo 'Der neue Eintrage wurde hinzugefügt.';
header("Location: gb.php");
}
else
{
echo 'Der Eintrag konnte nicht hinzugefügt werden.';
}
} else {
//Spam-Alarm!
echo 'Nicht Spammen!';
}
}
else
{
// Es konnte keine Datenbankverbindung aufgebaut werden
echo 'Die Datenbank konnte nicht erreicht werden. Folgender Fehler trat auf: <span class="hinweis">' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</span>';
}
// Datenbankverbindung schliessen
$db->close();
}
?>